Skip to content

json-schema-org/website

Repository files navigation

JSON Schema logo - Build more, break less, empower others.


πŸ‘‹ Welcome to the JSON Schema website

This repository contains the sources of JSON Schema website:

  • It's powered by Next.js,
  • It uses Tailwind CSS framework,
  • It's build and deployed with Netlify.

Run locally

Requirements

Use the following tools to set up the project:

Node.js v20.9.0+

Cloning the repository

This project uses git submodules, so you will need to run the following commands to fully clone the repo.

git submodule init
git submodule update

Install dependencies

Install dependencies

yarn

Run the development server

Run the development server on http://localhost:3000

yarn dev

Build static files

Build static files on /out folder

yarn build

Testing

Formatting

you can check code formatting using the following command:

yarn run format:check

you can format the code using the following command:

yarn run format:fix

Linting

you can check linting issues using the following command:

yarn run lint

you can fix linting issues using the following command:

yarn run lint:fix

Husky for git hooks

This project uses Husky to run checks for the formatting, linting, typecheck and build commands before committing the code.

pre-commit hook will run the following commands:

yarn run lint
yarn run typecheck
yarn run build

Run locally using Docker

If you are a Docker lover, you have the option to use it following these instructions.

Prerequisites:

After cloning repository to your local, perform the following steps from the root of the repository.

Steps:

  1. Build the Docker image:

      make install
  2. Start the container:

      make run

Now you're running JSON Schema website in a development mode. Container is mapped with your local copy of the website. Whenever you make changes to the code, the website will refresh and changes visible in localhost:3000.

Project structure

This repository has the following structure:

  β”œβ”€β”€ .github                     # Definitions of GitHub workflows, pull request and issue templates
  β”œβ”€β”€ components                  # Various generic components such as "Button", "Figure", etc.
  β”œβ”€β”€ data                        # JSON Schema Implementations.
  β”œβ”€β”€ styles                      # Various CSS files
  β”œβ”€β”€ lib                         # Various JS code for preparing static data to render in pages
  β”œβ”€β”€ pages                       # Website's pages source. It includes raw markdown files and React page templates.
  β”‚    β”œβ”€β”€ overview               # JSON Schema initiative docs
  β”‚    β”œβ”€β”€ blog                   # Blog posts
  β”‚    β”œβ”€β”€ learn                  # JSON Schema docs
  β”‚    └── implementations        # Various pages to describe tools
  β”œβ”€β”€ public                      # Data for site metadata and static blog such as images
  β”œβ”€β”€ next.config.js              # Next.js configuration file

Contribute

Here are some areas where you can contribute to the website:

  • Blogs posts
  • Case Studies
  • Design
  • Documentation
  • Website enhancements
  • Add a new JSON Schema Implementation
  • JSON Schema Landscape

To figure out a good first issue to work on, join our Slack workspace and visit the #contribute channel. This channel is specifically designed for onboarding and supporting new contributors.

You should also check out our Contributing guidelines.

Contributors

Thanks goes to these wonderful people who contributed to this website:

Made with contributors-img.

Sponsors

Sponsors

Backers

Thank you to all our backers! Backers

Connect with the JSON Schema Community

JSON Schema Slack JSON Schema Twitter JSON Schema LinkedIn JSON Schema YouTube

Inspired by

This document has been inspired by AsyncAPI website README.md.

License

The contents of this repository are licensed under either the BSD 3-clause license or the Academic Free License v3.0.