JSON Schema is a declarative language for validating JSON documents' structure, constraints, and data types. It provides a way to standardize and define expectations for JSON data.
JSON Schema is adopted by several reputed orgs. to validate the JSON Data in their internals some of them include Github, Microsoft, Zapier, Schema Store, Postman, etc... a landscape of all orgs. using them can be found here.
JSON Schema website which is the website from where users can learn more about JSON Schema specifications, documentation, tools, community, and blogs written by JSON Schema developers.
The mentorship program for me was mainly divided into 4 parts which included
- Finish off while reviewing and debugging the latest release 3 of the website and merge it into production without breaking any existing features.
- Implementation of suggested features and fixing bugs
- To collaborate with the docs team and implement new features in the website supporting the technical writing work done by them.
- To develop the JSON Schema Conf'24 website.
Web release 3 was the third major release of the website in which a lot of new features needed to be implemented, several developers were working on the it, link to epic issue
Features like newsletter and resources page were initially planned to be implemented in release 3 but later on it got dropped as of which my work started by consolidating these two features in two separate branches and and removing them from web-release-3 branch. Below are the PR links for the same.
- Feat: Removing resources and newsletter from web-release-3 branch
- WEB-R-3: Moving newsletter to new branch
- WEB-R-3: Moving resources to new branch
There are several issues like Next hydration issues, dev console errors, and warnings, UI bugs in the epic pull request of web release these issues, which were identified while doing PR review and resolved in different commits by me. Link to epic PR merging web-release-3 in main production.
JSON Schema website uses custom styled components, where data from yml files and markdown is rendered. Table of component is one of them that needed to be a major design renewal other than that the component was also buggy on other pages like blogs page and last but not least when ToC was rendered on screen it was printing several errors and warnings in the dev console for fixing so below PRs were opened.
- Feat: Table of component design change
- Feat: Refactoring toc styles
- Fix: ToC blog page fix
- Fix: Removing warnings from console due to ToC
JSON Schema Blogs page has tags which on click filters the blogs according to the tags assigned, it was expected to update the query string according to the tags selected so that it gets easy to share the filtered blogs links.
Development of the keywords page which is the new page added in the docs section provides a list of keywords present in JSON Schema ecosystem along with that it also has redirecting links to the detailed reference of keywords in the docs.
Link to Keywords page on JSON Schema website PR merging keywords page
Other than these components the side table of contents and next-previous tabs are created to increase user experience in navigation through different pages (currently these components are planned to be released in the upcoming release of the website).
After discussions it was decided to develop a getting started component to help new developers learning JSON Schema in a more effective as well as practical way.
As of which I developed a component that renders the JSON Schema upon selection from the dropdown box and validates its against different examples, user can also download the example JSON files so that they can test and tweak the JSON Schema according to their usage.
The component can be found here in the website LINK Link to PR where getting started component is developed
Later on, I collaborated with the tech writers helping them to resolve any kind of technical issues and implementing new components in their Pull Requests.
JSON Schema Conf'24 which is planned to be organized in the month of December '24 needed a website as of that I started developing the website in a new repo initially in my locally later on after testing and reviews the codebase was later transferred to a separate repo within JSON Schema Org. Website Link
I plan to continue contributing in JSON Schema org. while developing new features for upcoming releases of the website and maintaining the project while taking part in PR review and helping new contributors.
The support and guidance I got from the JSON Schema community is invaluable. A big thanks to my mentor Benjamin for always having faith in me and guiding me through a lot of new things that will play a key role in my future career. It was amazing working with the docs technical writers team comprising of Valeria and Blessing.
Overall it was a wonderful experience contributing in JSON Schema org. and collaborating with the amazing community and for me its not the end but start of something great.