# Website

This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.

## Information Architecture

We try to **keep routes consistent** to maintain SEO.

- `/guides`: Guides on how to use the Jan application, with GIFs. For end users who are directly using Jan. Always assume users are not technical.

- `/developer`: Developer docs on how to extend Jan. These pages are about what people can build with our software. We must hide the complexity of HOW the app is built, but explain just enough of the high level architecture so devs know enough to build on top of it.

- `/api-reference`: Reference documentation, written in Swagger/OpenAPI format.

- `/docs`: Engineering specs and product specs, i.e. HOW the app is built. Mostly for internal reference and for our core contributors who are building the SDK itself.

### Sidebar Autogeneration

The order of each page is either explicitly defined in `sidebar.js` or follows the [Docusaurus autogenerated](https://docusaurus.io/docs/next/sidebar/autogenerated) naming format, `##-path-name.md`.

Important slugs are hardcoded at the document level (and shouldn't be rerouted):

```md
---
title: Overview
slug: /docs
---
```

## Contributing

### Installation

```
$ yarn
```

### Local Development

```
$ cp .env.example .env
$ yarn start
```

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.

### Build

```
$ yarn build
```

This command generates static content into the `build` directory and can be served using any static contents hosting service.

### Deployment

Using SSH:

```
$ USE_SSH=true yarn deploy
```

Not using SSH:

```
$ GIT_USER=<Your GitHub username> yarn deploy
```

If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.

### Preview URL, Pre-release and Publishing Documentation

When a PR is created, the preview URL will be automatically commented on the PR.

The documentation will then be published to [https://jan.ai/](https://jan.ai/) when the PR is merged to `main`.

### Additional Plugins

- @docusaurus/theme-live-codeblock
- [Redocusaurus](https://redocusaurus.vercel.app/): manually upload swagger files at `/openapi/OpenAPISpec.json`
