├── README.md ├── api-reference ├── endpoint │ ├── create.mdx │ ├── delete.mdx │ └── get.mdx ├── introduction.mdx └── openapi.json ├── development.mdx ├── essentials ├── code.mdx ├── images.mdx ├── markdown.mdx ├── navigation.mdx ├── reusable-snippets.mdx └── settings.mdx ├── favicon.svg ├── images ├── checks-passed.png ├── hero-dark.svg └── hero-light.svg ├── introduction.mdx ├── logo ├── dark.svg └── light.svg ├── mint.json ├── quickstart.mdx └── snippets └── snippet-intro.mdx /README.md: -------------------------------------------------------------------------------- 1 | # Mintlify Starter Kit 2 | 3 | Click on `Use this template` to copy the Mintlify starter kit. The starter kit contains examples including 4 | 5 | - Guide pages 6 | - Navigation 7 | - Customizations 8 | - API Reference pages 9 | - Use of popular components 10 | 11 | ### Development 12 | 13 | Install the [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command 14 | 15 | ``` 16 | npm i -g mintlify 17 | ``` 18 | 19 | Run the following command at the root of your documentation (where mint.json is) 20 | 21 | ``` 22 | mintlify dev 23 | ``` 24 | 25 | ### Publishing Changes 26 | 27 | Install our Github App to autopropagate changes from youre repo to your deployment. Changes will be deployed to production automatically after pushing to the default branch. Find the link to install on your dashboard. 28 | 29 | #### Troubleshooting 30 | 31 | - Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies. 32 | - Page loads as a 404 - Make sure you are running in a folder with `mint.json` 33 | -------------------------------------------------------------------------------- /api-reference/endpoint/create.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Create Plant' 3 | openapi: 'POST /plants' 4 | --- 5 | -------------------------------------------------------------------------------- /api-reference/endpoint/delete.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Delete Plant' 3 | openapi: 'DELETE /plants/{id}' 4 | --- 5 | -------------------------------------------------------------------------------- /api-reference/endpoint/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Get Plants' 3 | openapi: 'GET /plants' 4 | --- 5 | -------------------------------------------------------------------------------- /api-reference/introduction.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Introduction' 3 | description: 'Example section for showcasing API endpoints' 4 | --- 5 | 6 | 7 | If you're not looking to build API reference documentation, you can delete 8 | this section by removing the api-reference folder. 9 | 10 | 11 | ## Welcome 12 | 13 | There are two ways to build API documentation: [OpenAPI](https://mintlify.com/docs/api-playground/openapi/setup) and [MDX components](https://mintlify.com/docs/api-playground/mdx/configuration). For the starter kit, we are using the following OpenAPI specification. 14 | 15 | 20 | View the OpenAPI specification file 21 | 22 | 23 | ## Authentication 24 | 25 | All API endpoints are authenticated using Bearer tokens and picked up from the specification file. 26 | 27 | ```json 28 | "security": [ 29 | { 30 | "bearerAuth": [] 31 | } 32 | ] 33 | ``` 34 | -------------------------------------------------------------------------------- /api-reference/openapi.json: -------------------------------------------------------------------------------- 1 | { 2 | "openapi": "3.0.1", 3 | "info": { 4 | "title": "OpenAPI Plant Store", 5 | "description": "A sample API that uses a plant store as an example to demonstrate features in the OpenAPI specification", 6 | "license": { 7 | "name": "MIT" 8 | }, 9 | "version": "1.0.0" 10 | }, 11 | "servers": [ 12 | { 13 | "url": "http://sandbox.mintlify.com" 14 | } 15 | ], 16 | "security": [ 17 | { 18 | "bearerAuth": [] 19 | } 20 | ], 21 | "paths": { 22 | "/plants": { 23 | "get": { 24 | "description": "Returns all plants from the system that the user has access to", 25 | "parameters": [ 26 | { 27 | "name": "limit", 28 | "in": "query", 29 | "description": "The maximum number of results to return", 30 | "schema": { 31 | "type": "integer", 32 | "format": "int32" 33 | } 34 | } 35 | ], 36 | "responses": { 37 | "200": { 38 | "description": "Plant response", 39 | "content": { 40 | "application/json": { 41 | "schema": { 42 | "type": "array", 43 | "items": { 44 | "$ref": "#/components/schemas/Plant" 45 | } 46 | } 47 | } 48 | } 49 | }, 50 | "400": { 51 | "description": "Unexpected error", 52 | "content": { 53 | "application/json": { 54 | "schema": { 55 | "$ref": "#/components/schemas/Error" 56 | } 57 | } 58 | } 59 | } 60 | } 61 | }, 62 | "post": { 63 | "description": "Creates a new plant in the store", 64 | "requestBody": { 65 | "description": "Plant to add to the store", 66 | "content": { 67 | "application/json": { 68 | "schema": { 69 | "$ref": "#/components/schemas/NewPlant" 70 | } 71 | } 72 | }, 73 | "required": true 74 | }, 75 | "responses": { 76 | "200": { 77 | "description": "plant response", 78 | "content": { 79 | "application/json": { 80 | "schema": { 81 | "$ref": "#/components/schemas/Plant" 82 | } 83 | } 84 | } 85 | }, 86 | "400": { 87 | "description": "unexpected error", 88 | "content": { 89 | "application/json": { 90 | "schema": { 91 | "$ref": "#/components/schemas/Error" 92 | } 93 | } 94 | } 95 | } 96 | } 97 | } 98 | }, 99 | "/plants/{id}": { 100 | "delete": { 101 | "description": "Deletes a single plant based on the ID supplied", 102 | "parameters": [ 103 | { 104 | "name": "id", 105 | "in": "path", 106 | "description": "ID of plant to delete", 107 | "required": true, 108 | "schema": { 109 | "type": "integer", 110 | "format": "int64" 111 | } 112 | } 113 | ], 114 | "responses": { 115 | "204": { 116 | "description": "Plant deleted", 117 | "content": {} 118 | }, 119 | "400": { 120 | "description": "unexpected error", 121 | "content": { 122 | "application/json": { 123 | "schema": { 124 | "$ref": "#/components/schemas/Error" 125 | } 126 | } 127 | } 128 | } 129 | } 130 | } 131 | } 132 | }, 133 | "components": { 134 | "schemas": { 135 | "Plant": { 136 | "required": [ 137 | "name" 138 | ], 139 | "type": "object", 140 | "properties": { 141 | "name": { 142 | "description": "The name of the plant", 143 | "type": "string" 144 | }, 145 | "tag": { 146 | "description": "Tag to specify the type", 147 | "type": "string" 148 | } 149 | } 150 | }, 151 | "NewPlant": { 152 | "allOf": [ 153 | { 154 | "$ref": "#/components/schemas/Plant" 155 | }, 156 | { 157 | "required": [ 158 | "id" 159 | ], 160 | "type": "object", 161 | "properties": { 162 | "id": { 163 | "description": "Identification number of the plant", 164 | "type": "integer", 165 | "format": "int64" 166 | } 167 | } 168 | } 169 | ] 170 | }, 171 | "Error": { 172 | "required": [ 173 | "error", 174 | "message" 175 | ], 176 | "type": "object", 177 | "properties": { 178 | "error": { 179 | "type": "integer", 180 | "format": "int32" 181 | }, 182 | "message": { 183 | "type": "string" 184 | } 185 | } 186 | } 187 | }, 188 | "securitySchemes": { 189 | "bearerAuth": { 190 | "type": "http", 191 | "scheme": "bearer" 192 | } 193 | } 194 | } 195 | } -------------------------------------------------------------------------------- /development.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Development' 3 | description: 'Learn how to preview changes locally' 4 | --- 5 | 6 | 7 | **Prerequisite** You should have installed Node.js (version 18.10.0 or 8 | higher). 9 | 10 | 11 | Step 1. Install Mintlify on your OS: 12 | 13 | 14 | 15 | ```bash npm 16 | npm i -g mintlify 17 | ``` 18 | 19 | ```bash yarn 20 | yarn global add mintlify 21 | ``` 22 | 23 | 24 | 25 | Step 2. Go to the docs are located (where you can find `mint.json`) and run the following command: 26 | 27 | ```bash 28 | mintlify dev 29 | ``` 30 | 31 | The documentation website is now available at `http://localhost:3000`. 32 | 33 | ### Custom Ports 34 | 35 | Mintlify uses port 3000 by default. You can use the `--port` flag to customize the port Mintlify runs on. For example, use this command to run in port 3333: 36 | 37 | ```bash 38 | mintlify dev --port 3333 39 | ``` 40 | 41 | You will see an error like this if you try to run Mintlify in a port that's already taken: 42 | 43 | ```md 44 | Error: listen EADDRINUSE: address already in use :::3000 45 | ``` 46 | 47 | ## Mintlify Versions 48 | 49 | Each CLI is linked to a specific version of Mintlify. Please update the CLI if your local website looks different than production. 50 | 51 | 52 | 53 | ```bash npm 54 | npm i -g mintlify@latest 55 | ``` 56 | 57 | ```bash yarn 58 | yarn global upgrade mintlify 59 | ``` 60 | 61 | 62 | 63 | ## Deployment 64 | 65 | 66 | Unlimited editors available under the [Startup 67 | Plan](https://mintlify.com/pricing) 68 | 69 | 70 | You should see the following if the deploy successfully went through: 71 | 72 | 73 | 74 | 75 | 76 | ## Troubleshooting 77 | 78 | Here's how to solve some common problems when working with the CLI. 79 | 80 | 81 | 82 | Update to Node v18. Run `mintlify install` and try again. 83 | 84 | 85 | Go to the `C:/Users/Username/.mintlify/` directory and remove the `mint` 86 | folder. Then Open the Git Bash in this location and run `git clone 87 | https://github.com/mintlify/mint.git`. 88 | 89 | Repeat step 3. 90 | 91 | 92 | 93 | Try navigating to the root of your device and delete the ~/.mintlify folder. 94 | Then run `mintlify dev` again. 95 | 96 | 97 | 98 | Curious about what changed in a CLI version? [Check out the CLI changelog.](/changelog/command-line) 99 | -------------------------------------------------------------------------------- /essentials/code.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Code Blocks' 3 | description: 'Display inline code and code blocks' 4 | icon: 'code' 5 | --- 6 | 7 | ## Basic 8 | 9 | ### Inline Code 10 | 11 | To denote a `word` or `phrase` as code, enclose it in backticks (`). 12 | 13 | ``` 14 | To denote a `word` or `phrase` as code, enclose it in backticks (`). 15 | ``` 16 | 17 | ### Code Block 18 | 19 | Use [fenced code blocks](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) by enclosing code in three backticks and follow the leading ticks with the programming language of your snippet to get syntax highlighting. Optionally, you can also write the name of your code after the programming language. 20 | 21 | ```java HelloWorld.java 22 | class HelloWorld { 23 | public static void main(String[] args) { 24 | System.out.println("Hello, World!"); 25 | } 26 | } 27 | ``` 28 | 29 | ````md 30 | ```java HelloWorld.java 31 | class HelloWorld { 32 | public static void main(String[] args) { 33 | System.out.println("Hello, World!"); 34 | } 35 | } 36 | ``` 37 | ```` 38 | -------------------------------------------------------------------------------- /essentials/images.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Images and Embeds' 3 | description: 'Add image, video, and other HTML elements' 4 | icon: 'image' 5 | --- 6 | 7 | 11 | 12 | ## Image 13 | 14 | ### Using Markdown 15 | 16 | The [markdown syntax](https://www.markdownguide.org/basic-syntax/#images) lets you add images using the following code 17 | 18 | ```md 19 | ![title](/path/image.jpg) 20 | ``` 21 | 22 | Note that the image file size must be less than 5MB. Otherwise, we recommend hosting on a service like [Cloudinary](https://cloudinary.com/) or [S3](https://aws.amazon.com/s3/). You can then use that URL and embed. 23 | 24 | ### Using Embeds 25 | 26 | To get more customizability with images, you can also use [embeds](/writing-content/embed) to add images 27 | 28 | ```html 29 | 30 | ``` 31 | 32 | ## Embeds and HTML elements 33 | 34 | 44 | 45 |
46 | 47 | 48 | 49 | Mintlify supports [HTML tags in Markdown](https://www.markdownguide.org/basic-syntax/#html). This is helpful if you prefer HTML tags to Markdown syntax, and lets you create documentation with infinite flexibility. 50 | 51 | 52 | 53 | ### iFrames 54 | 55 | Loads another HTML page within the document. Most commonly used for embedding videos. 56 | 57 | ```html 58 | 59 | ``` 60 | -------------------------------------------------------------------------------- /essentials/markdown.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Markdown Syntax' 3 | description: 'Text, title, and styling in standard markdown' 4 | icon: 'text-size' 5 | --- 6 | 7 | ## Titles 8 | 9 | Best used for section headers. 10 | 11 | ```md 12 | ## Titles 13 | ``` 14 | 15 | ### Subtitles 16 | 17 | Best use to subsection headers. 18 | 19 | ```md 20 | ### Subtitles 21 | ``` 22 | 23 | 24 | 25 | Each **title** and **subtitle** creates an anchor and also shows up on the table of contents on the right. 26 | 27 | 28 | 29 | ## Text Formatting 30 | 31 | We support most markdown formatting. Simply add `**`, `_`, or `~` around text to format it. 32 | 33 | | Style | How to write it | Result | 34 | | ------------- | ----------------- | --------------- | 35 | | Bold | `**bold**` | **bold** | 36 | | Italic | `_italic_` | _italic_ | 37 | | Strikethrough | `~strikethrough~` | ~strikethrough~ | 38 | 39 | You can combine these. For example, write `**_bold and italic_**` to get **_bold and italic_** text. 40 | 41 | You need to use HTML to write superscript and subscript text. That is, add `` or `` around your text. 42 | 43 | | Text Size | How to write it | Result | 44 | | ----------- | ------------------------ | ---------------------- | 45 | | Superscript | `superscript` | superscript | 46 | | Subscript | `subscript` | subscript | 47 | 48 | ## Linking to Pages 49 | 50 | You can add a link by wrapping text in `[]()`. You would write `[link to google](https://google.com)` to [link to google](https://google.com). 51 | 52 | Links to pages in your docs need to be root-relative. Basically, you should include the entire folder path. For example, `[link to text](/writing-content/text)` links to the page "Text" in our components section. 53 | 54 | Relative links like `[link to text](../text)` will open slower because we cannot optimize them as easily. 55 | 56 | ## Blockquotes 57 | 58 | ### Singleline 59 | 60 | To create a blockquote, add a `>` in front of a paragraph. 61 | 62 | > Dorothy followed her through many of the beautiful rooms in her castle. 63 | 64 | ```md 65 | > Dorothy followed her through many of the beautiful rooms in her castle. 66 | ``` 67 | 68 | ### Multiline 69 | 70 | > Dorothy followed her through many of the beautiful rooms in her castle. 71 | > 72 | > The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. 73 | 74 | ```md 75 | > Dorothy followed her through many of the beautiful rooms in her castle. 76 | > 77 | > The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. 78 | ``` 79 | 80 | ### LaTeX 81 | 82 | Mintlify supports [LaTeX](https://www.latex-project.org) through the Latex component. 83 | 84 | 8 x (vk x H1 - H2) = (0,1) 85 | 86 | ```md 87 | 8 x (vk x H1 - H2) = (0,1) 88 | ``` 89 | -------------------------------------------------------------------------------- /essentials/navigation.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Navigation' 3 | description: 'The navigation field in mint.json defines the pages that go in the navigation menu' 4 | icon: 'map' 5 | --- 6 | 7 | The navigation menu is the list of links on every website. 8 | 9 | You will likely update `mint.json` every time you add a new page. Pages do not show up automatically. 10 | 11 | ## Navigation syntax 12 | 13 | Our navigation syntax is recursive which means you can make nested navigation groups. You don't need to include `.mdx` in page names. 14 | 15 | 16 | 17 | ```json Regular Navigation 18 | "navigation": [ 19 | { 20 | "group": "Getting Started", 21 | "pages": ["quickstart"] 22 | } 23 | ] 24 | ``` 25 | 26 | ```json Nested Navigation 27 | "navigation": [ 28 | { 29 | "group": "Getting Started", 30 | "pages": [ 31 | "quickstart", 32 | { 33 | "group": "Nested Reference Pages", 34 | "pages": ["nested-reference-page"] 35 | } 36 | ] 37 | } 38 | ] 39 | ``` 40 | 41 | 42 | 43 | ## Folders 44 | 45 | Simply put your MDX files in folders and update the paths in `mint.json`. 46 | 47 | For example, to have a page at `https://yoursite.com/your-folder/your-page` you would make a folder called `your-folder` containing an MDX file called `your-page.mdx`. 48 | 49 | 50 | 51 | You cannot use `api` for the name of a folder unless you nest it inside another folder. Mintlify uses Next.js which reserves the top-level `api` folder for internal server calls. A folder name such as `api-reference` would be accepted. 52 | 53 | 54 | 55 | ```json Navigation With Folder 56 | "navigation": [ 57 | { 58 | "group": "Group Name", 59 | "pages": ["your-folder/your-page"] 60 | } 61 | ] 62 | ``` 63 | 64 | ## Hidden Pages 65 | 66 | MDX files not included in `mint.json` will not show up in the sidebar but are accessible through the search bar and by linking directly to them. 67 | -------------------------------------------------------------------------------- /essentials/reusable-snippets.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Reusable Snippets 3 | description: Reusable, custom snippets to keep content in sync 4 | icon: 'recycle' 5 | --- 6 | 7 | import SnippetIntro from '/snippets/snippet-intro.mdx'; 8 | 9 | 10 | 11 | ## Creating a custom snippet 12 | 13 | **Pre-condition**: You must create your snippet file in the `snippets` directory. 14 | 15 | 16 | Any page in the `snippets` directory will be treated as a snippet and will not 17 | be rendered into a standalone page. If you want to create a standalone page 18 | from the snippet, import the snippet into another file and call it as a 19 | component. 20 | 21 | 22 | ### Default export 23 | 24 | 1. Add content to your snippet file that you want to re-use across multiple 25 | locations. Optionally, you can add variables that can be filled in via props 26 | when you import the snippet. 27 | 28 | ```mdx snippets/my-snippet.mdx 29 | Hello world! This is my content I want to reuse across pages. My keyword of the 30 | day is {word}. 31 | ``` 32 | 33 | 34 | The content that you want to reuse must be inside the `snippets` directory in 35 | order for the import to work. 36 | 37 | 38 | 2. Import the snippet into your destination file. 39 | 40 | ```mdx destination-file.mdx 41 | --- 42 | title: My title 43 | description: My Description 44 | --- 45 | 46 | import MySnippet from '/snippets/path/to/my-snippet.mdx'; 47 | 48 | ## Header 49 | 50 | Lorem impsum dolor sit amet. 51 | 52 | 53 | ``` 54 | 55 | ### Reusable variables 56 | 57 | 1. Export a variable from your snippet file: 58 | 59 | ```mdx snippets/path/to/custom-variables.mdx 60 | export const myName = 'my name'; 61 | 62 | export const myObject = { fruit: 'strawberries' }; 63 | ``` 64 | 65 | 2. Import the snippet from your destination file and use the variable: 66 | 67 | ```mdx destination-file.mdx 68 | --- 69 | title: My title 70 | description: My Description 71 | --- 72 | 73 | import { myName, myObject } from '/snippets/path/to/custom-variables.mdx'; 74 | 75 | Hello, my name is {myName} and I like {myObject.fruit}. 76 | ``` 77 | 78 | ### Reusable components 79 | 80 | 1. Inside your snippet file, create a component that takes in props by exporting 81 | your component in the form of an arrow function. 82 | 83 | ```mdx snippets/custom-component.mdx 84 | export const MyComponent = ({ title }) => ( 85 |
86 |

{title}

87 |

... snippet content ...

88 |
89 | ); 90 | ``` 91 | 92 | 93 | MDX does not compile inside the body of an arrow function. Stick to HTML 94 | syntax when you can or use a default export if you need to use MDX. 95 | 96 | 97 | 2. Import the snippet into your destination file and pass in the props 98 | 99 | ```mdx destination-file.mdx 100 | --- 101 | title: My title 102 | description: My Description 103 | --- 104 | 105 | import { MyComponent } from '/snippets/custom-component.mdx'; 106 | 107 | Lorem ipsum dolor sit amet. 108 | 109 | 110 | ``` 111 | -------------------------------------------------------------------------------- /essentials/settings.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Global Settings' 3 | description: 'Mintlify gives you complete control over the look and feel of your documentation using the mint.json file' 4 | icon: 'gear' 5 | --- 6 | 7 | Every Mintlify site needs a `mint.json` file with the core configuration settings. Learn more about the [properties](#properties) below. 8 | 9 | ## Properties 10 | 11 | 12 | Name of your project. Used for the global title. 13 | 14 | Example: `mintlify` 15 | 16 | 17 | 18 | 19 | An array of groups with all the pages within that group 20 | 21 | 22 | The name of the group. 23 | 24 | Example: `Settings` 25 | 26 | 27 | 28 | The relative paths to the markdown files that will serve as pages. 29 | 30 | Example: `["customization", "page"]` 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | Path to logo image or object with path to "light" and "dark" mode logo images 39 | 40 | 41 | Path to the logo in light mode 42 | 43 | 44 | Path to the logo in dark mode 45 | 46 | 47 | Where clicking on the logo links you to 48 | 49 | 50 | 51 | 52 | 53 | Path to the favicon image 54 | 55 | 56 | 57 | Hex color codes for your global theme 58 | 59 | 60 | The primary color. Used for most often for highlighted content, section 61 | headers, accents, in light mode 62 | 63 | 64 | The primary color for dark mode. Used for most often for highlighted 65 | content, section headers, accents, in dark mode 66 | 67 | 68 | The primary color for important buttons 69 | 70 | 71 | The color of the background in both light and dark mode 72 | 73 | 74 | The hex color code of the background in light mode 75 | 76 | 77 | The hex color code of the background in dark mode 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | Array of `name`s and `url`s of links you want to include in the topbar 86 | 87 | 88 | The name of the button. 89 | 90 | Example: `Contact us` 91 | 92 | 93 | The url once you click on the button. Example: `https://mintlify.com/contact` 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | Link shows a button. GitHub shows the repo information at the url provided including the number of GitHub stars. 103 | 104 | 105 | If `link`: What the button links to. 106 | 107 | If `github`: Link to the repository to load GitHub information from. 108 | 109 | 110 | Text inside the button. Only required if `type` is a `link`. 111 | 112 | 113 | 114 | 115 | 116 | 117 | Array of version names. Only use this if you want to show different versions 118 | of docs with a dropdown in the navigation bar. 119 | 120 | 121 | 122 | An array of the anchors, includes the `icon`, `color`, and `url`. 123 | 124 | 125 | The [Font Awesome](https://fontawesome.com/search?s=brands%2Cduotone) icon used to feature the anchor. 126 | 127 | Example: `comments` 128 | 129 | 130 | The name of the anchor label. 131 | 132 | Example: `Community` 133 | 134 | 135 | The start of the URL that marks what pages go in the anchor. Generally, this is the name of the folder you put your pages in. 136 | 137 | 138 | The hex color of the anchor icon background. Can also be a gradient if you pass an object with the properties `from` and `to` that are each a hex color. 139 | 140 | 141 | Used if you want to hide an anchor until the correct docs version is selected. 142 | 143 | 144 | Pass `true` if you want to hide the anchor until you directly link someone to docs inside it. 145 | 146 | 147 | One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" 148 | 149 | 150 | 151 | 152 | 153 | 154 | Override the default configurations for the top-most anchor. 155 | 156 | 157 | The name of the top-most anchor 158 | 159 | 160 | Font Awesome icon. 161 | 162 | 163 | One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" 164 | 165 | 166 | 167 | 168 | 169 | An array of navigational tabs. 170 | 171 | 172 | The name of the tab label. 173 | 174 | 175 | The start of the URL that marks what pages go in the tab. Generally, this 176 | is the name of the folder you put your pages in. 177 | 178 | 179 | 180 | 181 | 182 | Configuration for API settings. Learn more about API pages at [API Components](/api-playground/demo). 183 | 184 | 185 | The base url for all API endpoints. If `baseUrl` is an array, it will enable for multiple base url 186 | options that the user can toggle. 187 | 188 | 189 | 190 | 191 | 192 | The authentication strategy used for all API endpoints. 193 | 194 | 195 | The name of the authentication parameter used in the API playground. 196 | 197 | If method is `basic`, the format should be `[usernameName]:[passwordName]` 198 | 199 | 200 | The default value that's designed to be a prefix for the authentication input field. 201 | 202 | E.g. If an `inputPrefix` of `AuthKey` would inherit the default input result of the authentication field as `AuthKey`. 203 | 204 | 205 | 206 | 207 | 208 | Configurations for the API playground 209 | 210 | 211 | 212 | Whether the playground is showing, hidden, or only displaying the endpoint with no added user interactivity `simple` 213 | 214 | Learn more at the [playground guides](/api-playground/demo) 215 | 216 | 217 | 218 | 219 | 220 | Enabling this flag ensures that key ordering in OpenAPI pages matches the key ordering defined in the OpenAPI file. 221 | 222 | This behavior will soon be enabled by default, at which point this field will be deprecated. 223 | 224 | 225 | 226 | 227 | 228 | 229 | A string or an array of strings of URL(s) or relative path(s) pointing to your 230 | OpenAPI file. 231 | 232 | Examples: 233 | 234 | ```json Absolute 235 | "openapi": "https://example.com/openapi.json" 236 | ``` 237 | ```json Relative 238 | "openapi": "/openapi.json" 239 | ``` 240 | ```json Multiple 241 | "openapi": ["https://example.com/openapi1.json", "/openapi2.json", "/openapi3.json"] 242 | ``` 243 | 244 | 245 | 246 | 247 | 248 | An object of social media accounts where the key:property pair represents the social media platform and the account url. 249 | 250 | Example: 251 | ```json 252 | { 253 | "x": "https://x.com/mintlify", 254 | "website": "https://mintlify.com" 255 | } 256 | ``` 257 | 258 | 259 | One of the following values `website`, `facebook`, `x`, `discord`, `slack`, `github`, `linkedin`, `instagram`, `hacker-news` 260 | 261 | Example: `x` 262 | 263 | 264 | The URL to the social platform. 265 | 266 | Example: `https://x.com/mintlify` 267 | 268 | 269 | 270 | 271 | 272 | Configurations to enable feedback buttons 273 | 274 | 275 | 276 | Enables a button to allow users to suggest edits via pull requests 277 | 278 | 279 | Enables a button to allow users to raise an issue about the documentation 280 | 281 | 282 | 283 | 284 | 285 | Customize the dark mode toggle. 286 | 287 | 288 | Set if you always want to show light or dark mode for new users. When not 289 | set, we default to the same mode as the user's operating system. 290 | 291 | 292 | Set to true to hide the dark/light mode toggle. You can combine `isHidden` with `default` to force your docs to only use light or dark mode. For example: 293 | 294 | 295 | ```json Only Dark Mode 296 | "modeToggle": { 297 | "default": "dark", 298 | "isHidden": true 299 | } 300 | ``` 301 | 302 | ```json Only Light Mode 303 | "modeToggle": { 304 | "default": "light", 305 | "isHidden": true 306 | } 307 | ``` 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | A background image to be displayed behind every page. See example with 317 | [Infisical](https://infisical.com/docs) and [FRPC](https://frpc.io). 318 | 319 | -------------------------------------------------------------------------------- /favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /images/checks-passed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliezzahn/mintlify-docs/cd1ec9f90eacbf46e728f158bf8fe10fadd78ff6/images/checks-passed.png -------------------------------------------------------------------------------- /images/hero-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | -------------------------------------------------------------------------------- /images/hero-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | -------------------------------------------------------------------------------- /introduction.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Introduction 3 | description: 'Welcome to the home of your new documentation' 4 | --- 5 | 6 | Hero Light 11 | Hero Dark 16 | 17 | ## Setting up 18 | 19 | The first step to world-class documentation is setting up your editing environments. 20 | 21 | 22 | 27 | Get your docs set up locally for easy development 28 | 29 | 34 | Preview your changes before you push to make sure they're perfect 35 | 36 | 37 | 38 | ## Make it yours 39 | 40 | Update your docs to your brand and add valuable content for the best user conversion. 41 | 42 | 43 | 48 | Customize your docs to your company's colors and brands 49 | 50 | 55 | Automatically generate endpoints from an OpenAPI spec 56 | 57 | 62 | Build interactive features and designs to guide your users 63 | 64 | 69 | Check out our showcase of our favorite documentation 70 | 71 | 72 | -------------------------------------------------------------------------------- /logo/dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /logo/light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /mint.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://mintlify.com/schema.json", 3 | "name": "Starter Kit", 4 | "logo": { 5 | "dark": "/logo/dark.svg", 6 | "light": "/logo/light.svg" 7 | }, 8 | "favicon": "/favicon.svg", 9 | "colors": { 10 | "primary": "#0D9373", 11 | "light": "#07C983", 12 | "dark": "#0D9373", 13 | "anchors": { 14 | "from": "#0D9373", 15 | "to": "#07C983" 16 | } 17 | }, 18 | "topbarLinks": [ 19 | { 20 | "name": "Support", 21 | "url": "mailto:hi@mintlify.com" 22 | } 23 | ], 24 | "topbarCtaButton": { 25 | "name": "Dashboard", 26 | "url": "https://dashboard.mintlify.com" 27 | }, 28 | "tabs": [ 29 | { 30 | "name": "API Reference", 31 | "url": "api-reference" 32 | } 33 | ], 34 | "anchors": [ 35 | { 36 | "name": "Documentation", 37 | "icon": "book-open-cover", 38 | "url": "https://mintlify.com/docs" 39 | }, 40 | { 41 | "name": "Community", 42 | "icon": "slack", 43 | "url": "https://mintlify.com/community" 44 | }, 45 | { 46 | "name": "Blog", 47 | "icon": "newspaper", 48 | "url": "https://mintlify.com/blog" 49 | } 50 | ], 51 | "navigation": [ 52 | { 53 | "group": "Get Started", 54 | "pages": [ 55 | "introduction", 56 | "quickstart", 57 | "development" 58 | ] 59 | }, 60 | { 61 | "group": "Essentials", 62 | "pages": [ 63 | "essentials/markdown", 64 | "essentials/code", 65 | "essentials/images", 66 | "essentials/settings", 67 | "essentials/navigation", 68 | "essentials/reusable-snippets" 69 | ] 70 | }, 71 | { 72 | "group": "API Documentation", 73 | "pages": [ 74 | "api-reference/introduction" 75 | ] 76 | }, 77 | { 78 | "group": "Endpoint Examples", 79 | "pages": [ 80 | "api-reference/endpoint/get", 81 | "api-reference/endpoint/create", 82 | "api-reference/endpoint/delete" 83 | ] 84 | } 85 | ], 86 | "footerSocials": { 87 | "x": "https://x.com/mintlify", 88 | "github": "https://github.com/mintlify", 89 | "linkedin": "https://www.linkedin.com/company/mintsearch" 90 | } 91 | } -------------------------------------------------------------------------------- /quickstart.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Quickstart' 3 | description: 'Start building awesome documentation in under 5 minutes' 4 | --- 5 | 6 | ## Setup your development 7 | 8 | Learn how to update your docs locally and and deploy them to the public. 9 | 10 | ### Edit and preview 11 | 12 | 13 | 14 | During the onboarding process, we created a repository on your Github with 15 | your docs content. You can find this repository on our 16 | [dashboard](https://dashboard.mintlify.com). To clone the repository 17 | locally, follow these 18 | [instructions](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) 19 | in your terminal. 20 | 21 | 22 | Previewing helps you make sure your changes look as intended. We built a 23 | command line interface to render these changes locally. 1. Install the 24 | [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the 25 | documentation changes locally with this command: ``` npm i -g mintlify ``` 26 | 2. Run the following command at the root of your documentation (where 27 | `mint.json` is): ``` mintlify dev ``` 28 | 29 | 30 | 31 | ### Deploy your changes 32 | 33 | 34 | 35 | 36 | Our Github app automatically deploys your changes to your docs site, so you 37 | don't need to manage deployments yourself. You can find the link to install on 38 | your [dashboard](https://dashboard.mintlify.com). Once the bot has been 39 | successfully installed, there should be a check mark next to the commit hash 40 | of the repo. 41 | 42 | 43 | [Commit and push your changes to 44 | Git](https://docs.github.com/en/get-started/using-git/pushing-commits-to-a-remote-repository#about-git-push) 45 | for your changes to update in your docs site. If you push and don't see that 46 | the Github app successfully deployed your changes, you can also manually 47 | update your docs through our [dashboard](https://dashboard.mintlify.com). 48 | 49 | 50 | 51 | 52 | ## Update your docs 53 | 54 | Add content directly in your files with MDX syntax and React components. You can use any of our components, or even build your own. 55 | 56 | 57 | 58 | 59 | Add flair to your docs with personalized branding. 60 | 61 | 62 | 67 | Implement your OpenAPI spec and enable API user interaction. 68 | 69 | 70 | 75 | Draw insights from user interactions with your documentation. 76 | 77 | 78 | 83 | Keep your docs on your own website's subdomain. 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /snippets/snippet-intro.mdx: -------------------------------------------------------------------------------- 1 | One of the core principles of software development is DRY (Don't Repeat 2 | Yourself). This is a principle that apply to documentation as 3 | well. If you find yourself repeating the same content in multiple places, you 4 | should consider creating a custom snippet to keep your content in sync. 5 | --------------------------------------------------------------------------------