Skip to content

Instantly share code, notes, and snippets.

@DhairyaMajmudar
Last active February 1, 2025 12:59
Show Gist options
  • Save DhairyaMajmudar/4f4bead48318cf341119915ce98d16ab to your computer and use it in GitHub Desktop.
Save DhairyaMajmudar/4f4bead48318cf341119915ce98d16ab to your computer and use it in GitHub Desktop.
GSoD'24 final report at JSON Schema Org.

Google Season of Docs'24 - JSON Schema

What is JSON Schema?

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.

Deliverables

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

  1. Finish off while reviewing and debugging the latest release 3 of the website and merge it into production without breaking any existing features.
  2. Implementation of suggested features and fixing bugs
  3. To collaborate with the docs team and implement new features in the website supporting the technical writing work done by them.
  4. To develop the JSON Schema Conf'24 website.

Getting Release 3 into production

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.

  1. Feat: Removing resources and newsletter from web-release-3 branch
  2. WEB-R-3: Moving newsletter to new branch
  3. 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.

New features implementation and bug fixes

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.

  1. Feat: Table of component design change
  2. Feat: Refactoring toc styles
  3. Fix: ToC blog page fix
  4. 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.

  1. Feat: Adding query string to blog tags.

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).

  1. Feat: Adding next-prev component
  2. Feat: Adding Side ToC

Collaborating with Docs Team

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.

Developing the JSON Schema Conf'24 website.

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

What’s Next?

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.

Acknowledgement

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment