# Random component references
URL: /docs/empty
***
title: Random component references
description: These are random components
----------------------------------------
# Frame of Work: Quick Start
Getting Started with Frame of Work
Frame of Work has different parts:
Browse and buy from our collection of professionally designed quote templates that integrate seamlessly with HubSpot.
Create an account and connect your HubSpot portal to access your purchased templates.
Our templates are built for easy installation with your HubSpot portal, with minimal technical knowledge required.
Use your new templates directly in HubSpot to create beautiful, professional quotes that impress clients and close deals.
Read our in-depth What is Frame of Work introduction.
### Terminology
**Markdown/MDX:** Markdown is a markup language for creating formatted text. Fumadocs supports Markdown and MDX (superset of Markdown) out-of-the-box.
Although not required, some basic knowledge of Next.js App Router would be useful for further customisations.
## Automatic Installation
A minimum version of Node.js 18 required, note that Node.js 23.1 might have problems with Next.js production build.
```bash tab="npm"
npm create fumadocs-app
```
```bash tab="pnpm"
pnpm create fumadocs-app
```
```bash tab="yarn"
yarn create fumadocs-app
```
```bash tab="bun"
bun create fumadocs-app
```
It will ask you:
* the React.js framework to use (the docs is only written for Next.js).
* the content source to use.
A new fumadocs app should be initialized. Now you can start hacking!
You can follow the [Manual Installation](/docs/ui/manual-installation) guide to get started.
### Enjoy!
Create your first MDX file in the docs folder.
```mdx title="content/docs/index.mdx"
---
title: Hello World
---
## Yo what's up
```
Run the app in development mode and see [http://localhost:3000/docs](http://localhost:3000/docs).
```bash
npm run dev
```
```bash
pnpm run dev
```
```bash
yarn dev
```
```bash
bun run dev
```
## Explore
In the project, you can see:
* `lib/source.ts`: Code for content source adapter, [`loader()`](/docs/headless/source-api) provides the interface to access your content.
* `app/layout.config.tsx`: Shared options for layouts, optional but preferred to keep.
| Route | Description |
| ------------------------- | ------------------------------------------------------ |
| `app/(home)` | The route group for your landing page and other pages. |
| `app/docs` | The documentation layout and pages. |
| `app/api/search/route.ts` | The Route Handler for search. |
### Writing Content
For authoring docs, make sure to read:
Fumadocs has some additional features for authoring content.
Learn how to customise navigation links and sidebar items.
Learn how to organise content.
### Content Source
Content source handles all your content, like compiling Markdown files and validating frontmatter.
A `source.config.ts` config file has been included, you can customise different options like frontmatter schema.
Read the [Introduction](/docs/mdx) for further details.
Fumadocs is not Markdown-exclusive. For other sources like Sanity, you can build a [custom content source](/docs/headless/custom-source).
### Customise UI
See [Customisation Guide](/docs/ui/customisation).
## FAQ
Some common questions you may encounter.
You can change the base route of docs (e.g. from `/docs/page` to `/info/page`).
Since Fumadocs uses Next.js App Router, you can simply rename the route:
And tell Fumadocs to use the new route in `source.ts`:
```ts title="lib/source.ts"
import { loader } from 'fumadocs-core/source';
export const source = loader({
baseUrl: '/info',
// other options
});
```
Next.js turns dynamic route into static routes when `generateStaticParams` is configured.
Hence, it is as fast as static pages.
You can enable Static Exports on Next.js to get a static build output. (Notice that Route Handler doesn't work with static export, you have to configure static search)
Same as managing layouts in Next.js App Router, remove the original MDX file from content directory (`/content/docs`).
This ensures duplicated pages will not cause errors.
Now, You can add the page to another route group, which isn't a descendant of docs layout.
For example, to replace `/docs/test`:
For `/docs`, you need to change the catch-all route to be non-optional:
Use a separate deployment for each version.
On Vercel, this can be done by creating another branch for a specific version on your GitHub repository.
To link to the sites of other versions, use the Links API or a custom navigation component.
We recommend to use [Sidebar Tabs](/docs/ui/navigation/sidebar#sidebar-tabs).
\##Ready to Get Started?
Browse our template collection today and transform your HubSpot quotes into professional, deal-closing assets.
## Learn More
New to here? Don't worry, we are welcome for your questions.
If you find anything confusing, please give your feedback on [Github Discussion](https://github.com/fuma-nama/fumadocs/discussions)!