diff --git a/docs/.editorconfig b/docs/.editorconfig
new file mode 100644
index 00000000..16398870
--- /dev/null
+++ b/docs/.editorconfig
@@ -0,0 +1,59 @@
+[*]
+cpp_indent_braces=false
+cpp_indent_multi_line_relative_to=innermost_parenthesis
+cpp_indent_within_parentheses=indent
+cpp_indent_preserve_within_parentheses=false
+cpp_indent_case_labels=false
+cpp_indent_case_contents=true
+cpp_indent_case_contents_when_block=false
+cpp_indent_lambda_braces_when_parameter=true
+cpp_indent_goto_labels=one_left
+cpp_indent_preprocessor=leftmost_column
+cpp_indent_access_specifiers=false
+cpp_indent_namespace_contents=true
+cpp_indent_preserve_comments=false
+cpp_new_line_before_open_brace_namespace=ignore
+cpp_new_line_before_open_brace_type=ignore
+cpp_new_line_before_open_brace_function=ignore
+cpp_new_line_before_open_brace_block=ignore
+cpp_new_line_before_open_brace_lambda=ignore
+cpp_new_line_scope_braces_on_separate_lines=false
+cpp_new_line_close_brace_same_line_empty_type=false
+cpp_new_line_close_brace_same_line_empty_function=false
+cpp_new_line_before_catch=true
+cpp_new_line_before_else=true
+cpp_new_line_before_while_in_do_while=false
+cpp_space_before_function_open_parenthesis=remove
+cpp_space_within_parameter_list_parentheses=false
+cpp_space_between_empty_parameter_list_parentheses=false
+cpp_space_after_keywords_in_control_flow_statements=true
+cpp_space_within_control_flow_statement_parentheses=false
+cpp_space_before_lambda_open_parenthesis=false
+cpp_space_within_cast_parentheses=false
+cpp_space_after_cast_close_parenthesis=false
+cpp_space_within_expression_parentheses=false
+cpp_space_before_block_open_brace=true
+cpp_space_between_empty_braces=false
+cpp_space_before_initializer_list_open_brace=false
+cpp_space_within_initializer_list_braces=true
+cpp_space_preserve_in_initializer_list=true
+cpp_space_before_open_square_bracket=false
+cpp_space_within_square_brackets=false
+cpp_space_before_empty_square_brackets=false
+cpp_space_between_empty_square_brackets=false
+cpp_space_group_square_brackets=true
+cpp_space_within_lambda_brackets=false
+cpp_space_between_empty_lambda_brackets=false
+cpp_space_before_comma=false
+cpp_space_after_comma=true
+cpp_space_remove_around_member_operators=true
+cpp_space_before_inheritance_colon=true
+cpp_space_before_constructor_colon=true
+cpp_space_remove_before_semicolon=true
+cpp_space_after_semicolon=false
+cpp_space_remove_around_unary_operator=true
+cpp_space_around_binary_operator=insert
+cpp_space_around_assignment_operator=insert
+cpp_space_pointer_reference_alignment=left
+cpp_space_around_ternary_operator=insert
+cpp_wrap_preserve_blocks=one_liners
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 00000000..a0e77169
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,32 @@
+# Mintlify Starter Kit
+
+Click on `Use this template` to copy the Mintlify starter kit. The starter kit contains examples including
+
+- Guide pages
+- Navigation
+- Customizations
+- API Reference pages
+- Use of popular components
+
+### Development
+
+Install the [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command
+
+```
+npm i -g mintlify
+```
+
+Run the following command at the root of your documentation (where docs.json is)
+
+```
+mintlify dev
+```
+
+### Publishing Changes
+
+Install our Github App to auto propagate changes from your 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.
+
+#### Troubleshooting
+
+- Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies.
+- Page loads as a 404 - Make sure you are running in a folder with `docs.json`
diff --git a/docs/development.mdx b/docs/development.mdx
new file mode 100644
index 00000000..fc3fec15
--- /dev/null
+++ b/docs/development.mdx
@@ -0,0 +1,107 @@
+---
+title: 'Development'
+description: 'Preview changes locally to update your docs'
+---
+
+
+ **Prerequisite**: Please install Node.js (version 19 or higher) before proceeding.
+ Please upgrade to ```docs.json``` before proceeding and delete the legacy ```mint.json``` file.
+
+
+Follow these steps to install and run Mintlify on your operating system:
+
+**Step 1**: Install Mintlify:
+
+
+
+ ```bash npm
+ npm i -g mintlify
+ ```
+
+```bash yarn
+yarn global add mintlify
+```
+
+
+
+**Step 2**: Navigate to the docs directory (where the `docs.json` file is located) and execute the following command:
+
+```bash
+mintlify dev
+```
+
+A local preview of your documentation will be available at `http://localhost:3000`.
+
+### Custom Ports
+
+By default, Mintlify uses port 3000. You can customize the port Mintlify runs on by using the `--port` flag. To run Mintlify on port 3333, for instance, use this command:
+
+```bash
+mintlify dev --port 3333
+```
+
+If you attempt to run Mintlify on a port that's already in use, it will use the next available port:
+
+```md
+Port 3000 is already in use. Trying 3001 instead.
+```
+
+## Mintlify Versions
+
+Please note that each CLI release is associated with a specific version of Mintlify. If your local website doesn't align with the production version, please update the CLI:
+
+
+
+```bash npm
+npm i -g mintlify@latest
+```
+
+```bash yarn
+yarn global upgrade mintlify
+```
+
+
+
+## Validating Links
+
+The CLI can assist with validating reference links made in your documentation. To identify any broken links, use the following command:
+
+```bash
+mintlify broken-links
+```
+
+## Deployment
+
+
+ Unlimited editors available under the [Pro
+ Plan](https://mintlify.com/pricing) and above.
+
+
+If the deployment is successful, you should see the following:
+
+
+
+
+
+## Code Formatting
+
+We suggest using extensions on your IDE to recognize and format MDX. If you're a VSCode user, consider the [MDX VSCode extension](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) for syntax highlighting, and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for code formatting.
+
+## Troubleshooting
+
+
+
+
+ This may be due to an outdated version of node. Try the following:
+ 1. Remove the currently-installed version of mintlify: `npm remove -g mintlify`
+ 2. Upgrade to Node v19 or higher.
+ 3. Reinstall mintlify: `npm install -g mintlify`
+
+
+
+
+ Solution: Go to the root of your device and delete the \~/.mintlify folder. Afterwards, run `mintlify dev` again.
+
+
+
+Curious about what changed in the CLI version? [Check out the CLI changelog.](https://www.npmjs.com/package/mintlify?activeTab=versions)
diff --git a/docs/docs.json b/docs/docs.json
new file mode 100644
index 00000000..8811f9dc
--- /dev/null
+++ b/docs/docs.json
@@ -0,0 +1,95 @@
+{
+ "$schema": "https://mintlify.com/docs.json",
+ "theme": "mint",
+ "name": "Sourcebot",
+ "colors": {
+ "primary": "#851EE7",
+ "light": "#851EE7",
+ "dark": "#851EE7"
+ },
+ "favicon": "/fav.svg",
+ "styling": {
+ "eyebrows": "section"
+ },
+ "navigation": {
+ "anchors": [
+ {
+ "anchor": "Docs",
+ "icon": "book-open",
+ "groups": [
+ {
+ "group": "General",
+ "pages": [
+ "docs/overview",
+ "docs/getting-started"
+ ]
+ },
+ {
+ "group": "Connections",
+ "pages": [
+ "docs/connections/overview",
+ "docs/connections/github",
+ "docs/connections/gitlab"
+ ]
+ },
+ {
+ "group": "Access Tokens",
+ "pages": [
+ "docs/access-tokens/overview",
+ "docs/access-tokens/secrets"
+ ]
+ }
+ ]
+ },
+ {
+ "anchor": "Self Hosting",
+ "icon": "server",
+ "groups": [
+ {
+ "group": "Getting Started",
+ "pages": [
+ "self-hosting/overview"
+ ]
+ },
+ {
+ "group": "Deployment",
+ "pages": [
+ "self-hosting/deployment/source"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "logo": {
+ "light": "/logo/light.png",
+ "dark": "/logo/dark.png"
+ },
+ "navbar": {
+ "links": [
+ {
+ "label": "Support",
+ "href": "mailto:team@sourcebot.dev"
+ }
+ ],
+ "primary": {
+ "type": "button",
+ "label": "Login",
+ "href": "https://sourcebot.dev/login"
+ }
+ },
+ "footer": {
+ "socials": {
+ "github": "https://github.com/sourcebot-dev/sourcebot"
+ }
+ },
+ "integrations": {
+ "posthog": {
+ "apiKey": "phc_DBGufjG0rkj3OEhuTcZ04xfeZB6eDhO7dP8ZCnqH7K7"
+ }
+ },
+ "appearance": {
+ "default": "dark",
+ "strict": true
+ }
+}
\ No newline at end of file
diff --git a/docs/docs/access-tokens/overview.mdx b/docs/docs/access-tokens/overview.mdx
new file mode 100644
index 00000000..036766a4
--- /dev/null
+++ b/docs/docs/access-tokens/overview.mdx
@@ -0,0 +1,31 @@
+---
+title: Access Tokens
+sidebarTitle: Access Tokens
+---
+
+In order to search your private repos, you'll need to provide Sourcebot with an access token. Access tokens are provided as [secrets](/docs/access-tokens/secrets), which are encrypted at rest and in transit using [AES-256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
+
+
+
+
+ Navigate to the [personal access token (PAT) creation page](https://github.com/settings/tokens/new) (or the equivelent page if you're
+ self hosting)
+
+ Ensure that the `repo` scope is enabled. This gives the PAT access to fetch your repos
+
+ 
+
+ Once you've created your GitHub PAT, add it as a [secret](access-tokens/secrets) in Sourcebot to use it within your connections
+
+
+
+ Navigate to the [personal access token (PAT) creation page](https://gitlab.com/-/user_settings/personal_access_tokens) (or the equivelent page if you're
+ self hosting), and press `Add new token`
+
+ Ensure that the `read_api` scope is enabled. This gives the PAT **read-only** access to fetch your repos
+
+ 
+
+ Once you've created your GitLab PAT, add it as a [secret](access-tokens/secrets) in Sourcebot to use it within your connections
+
+
\ No newline at end of file
diff --git a/docs/docs/access-tokens/secrets.mdx b/docs/docs/access-tokens/secrets.mdx
new file mode 100644
index 00000000..3d6234f2
--- /dev/null
+++ b/docs/docs/access-tokens/secrets.mdx
@@ -0,0 +1,22 @@
+---
+title: Secrets
+subtitle: Secrets
+---
+
+Secrets are used to store sensitive data (ex. GitHub/GitLab access tokens), and can be referenced in [Connections](/connections/overview). The main use of secrets is to provide a connection with a personal access token to fetch private repositories.
+
+### Create a secret
+
+To create a secret, navigate to the `Secrets` page within `Settings`. Under `Import a new secret`, select the code host you're importing a secret for and follow the instructions presented.
+
+
+
+
+
+### Referencing a secret
+
+After creating a secret, it'll be available to reference within a [connection](/connections/overview). On the connection creation page, **press the secret selection drop down to reference your secret**. This will automatically add the secret reference to the
+configuration schema:
+
+
+
\ No newline at end of file
diff --git a/docs/docs/connections/github.mdx b/docs/docs/connections/github.mdx
new file mode 100644
index 00000000..81783e82
--- /dev/null
+++ b/docs/docs/connections/github.mdx
@@ -0,0 +1,181 @@
+---
+title: GitHub Connection
+sidebarTitle: GitHub
+icon: github
+---
+
+To search repos on GitHub, you'll create a GitHub Connection. Using this connection, you can:
+- Index individual GitHub repos
+- Index all of the repos in a GitHub organization
+- Index all of the repos from a GitHub user
+
+If you want to index a private repo/org, make sure you provide an [access token](/docs/access-tokens/overview)
+
+
+
+# Config Schema
+
+For a detailed description of the schema, check out the schema file (TODO: link)
+
+
+
+ You can provide a list of orgs to index. Sourcebot will fetch all of the visible repos in these orgs.
+ ```json
+ {
+ "type": "github",
+ "orgs": [
+ "sourcebot-dev",
+ "getsentry",
+ "vercel"
+ ]
+ // .. additional configs ..
+ }
+ ```
+
+
+ You can provide a list of users to index. Sourcebot will fetch all of the visible repos for these users.
+ ```json
+ {
+ "type": "github",
+ "users": [
+ "msukkari",
+ "brendan-kellem",
+ "torvalds"
+ ]
+ // .. additional configs ..
+ }
+ ```
+
+
+ You can provide a list of repos to index. These must be provided in the `/` syntax.
+ ```json
+ {
+ "type": "github",
+ "repos": [
+ "sourcebot-dev/sourcebot",
+ "facebook/react"
+ ]
+ // .. additional configs ..
+ }
+ ```
+
+
+ If you're self-hosting you're own GitHub instance, you can provide a link to it:
+ ```json
+ {
+ "type": "github",
+ "url": {
+ "https://my.custom.github.com"
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+ If you'd like to index private repos, make sure you provide a token. You can do so by referencing the [secret](/docs/access-tokens/secrets) that contains your token.
+ ```json
+ {
+ "type": "github",
+ "token": {
+ "secret": "MY_SECRET"
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+
+### Filter Options
+
+This connection type supports additional options for filtering which repos are indexed.
+
+
+
+ You can provide a list of repository topics to include while fetching the repos. Only repos that match at least one of these topics will be fetched.
+ ```json
+ {
+ "type": "github",
+ "topics": [
+ "docs",
+ "core"
+ ]
+ // .. additional configs ..
+ }
+ ```
+
+
+ If enabled, forked repos will be ignored.
+ ```json
+ {
+ "type": "github",
+ "exclude": {
+ "forks": true
+ // .. additional excludes ..
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+ If enabled, archived repos will be ignored.
+ ```json
+ {
+ "type": "github",
+ "exclude": {
+ "archived": true
+ // .. additional excludes ..
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+ You can provide a list of repos to exclude. These must be provided in the `/` syntax.
+ ```json
+ {
+ "type": "github",
+ "exclude": {
+ "repos": [
+ "sourcebot-dev/zoekt",
+ "torvalds/linux"
+ ]
+ // .. additional excludes ..
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+ You can provide a list of topics to ignore. Repos that contain any of these topics will be ignored
+ ```json
+ {
+ "type": "github",
+ "exclude": {
+ "topics": [
+ "ci",
+ "experimental"
+ ]
+ // .. additional excludes ..
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+ The disk usage is calculated by GitHub and may not reflect the actual disk usage when cloned
+ Exclude repos based on their disk usage. Min/max numbers are in bytes.
+ ```json
+ {
+ "type": "github",
+ "exclude": {
+ "size": {
+ "min": 1000
+ "max": 1000000000
+ }
+ // .. additional excludes ..
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
\ No newline at end of file
diff --git a/docs/docs/connections/gitlab.mdx b/docs/docs/connections/gitlab.mdx
new file mode 100644
index 00000000..a4e50ba8
--- /dev/null
+++ b/docs/docs/connections/gitlab.mdx
@@ -0,0 +1,175 @@
+---
+title: GitLab Connection
+sidebarTitle: GitLab
+icon: gitlab
+---
+
+To search projects on GitLab, you'll create a GitLab Connection. Using this connection, you can:
+- Index individual GitLab projects
+- Index all of the projects in a GitLab group/sub-group
+- Index all of the projects from a GitLab user
+
+If you want to index a private project/group, make sure you provide an [access token](/docs/access-tokens/overview)
+
+
+
+# Config Schema
+
+For a detailed description of the schema, check out the schema file (TODO: link)
+
+
+
+ This flag only works if your GitLab instance url is set and not equal to https://gitlab.com. Make sure you provide a [secret](/docs/access-tokens/secrets) containing the necessary access token to fetch your projects.
+ If you'd like to index all projects visible to your GitLab instance, you can use the `all` flag.
+ ```json
+ {
+ "type": "gitlab",
+ "all": "true",
+ "url": "https://gitlab.aperaturelabs.com" // This is required, and cannot be https://gitlab.com
+ "token": {
+ "secret": "MY_SECRET_KEY_NAME" // the name of the secret you created in Sourcebot
+ }
+ }
+ ```
+
+
+ You can provide a list of groups (and recursive sub-groups) to index. Sourcebot will fetch all of the visible projects in these groups. Subgroups can be specified by providing the path to the subgroup (e.g. `my-group/sub-group-a`)
+ ```json
+ {
+ "type": "gitlab",
+ "groups": [
+ "gitlab-org/api",
+ "veloren"
+ ]
+ // .. additional configs ..
+ }
+ ```
+
+
+ You can provide a list of users to index. Sourcebot will fetch all of the visible projects for these users.
+ ```json
+ {
+ "type": "gitlab",
+ "users": [
+ "gnachman"
+ ]
+ // .. additional configs ..
+ }
+ ```
+
+
+ You can provide a list of projects to index. These must be provided in the `/` syntax.
+ ```json
+ {
+ "type": "gitlab",
+ "projects": [
+ "inkscape/inkscape",
+ "wireshark/wireshark"
+ ]
+ // .. additional configs ..
+ }
+ ```
+
+
+ If you're self-hosting you're own GitLab instance, you can provide a link to it:
+ ```json
+ {
+ "type": "gitlab",
+ "url": {
+ "https://gitlab.aperaturelabs.com"
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+ If you'd like to index private projects, make sure you provide a token. You can do so by referencing the [secret](/docs/access-tokens/secrets) that contains your token.
+ ```json
+ {
+ "type": "gitlab",
+ "token": {
+ "secret": "MY_SECRET_KEY_NAME"
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+
+### Filter Options
+
+This connection type supports additional options for filtering which projects are indexed.
+
+
+
+ You can provide a list of repository topics to include while fetching the projects. Only projects that match at least one of these topics will be fetched.
+ ```json
+ {
+ "type": "gitlab",
+ "topics": [
+ "docs",
+ "core"
+ ]
+ // .. additional configs ..
+ }
+ ```
+
+
+ If enabled, forked projects will be ignored.
+ ```json
+ {
+ "type": "gitlab",
+ "exclude": {
+ "forks": true
+ // .. additional excludes ..
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+ If enabled, archived projects will be ignored.
+ ```json
+ {
+ "type": "gitlab",
+ "exclude": {
+ "archived": true
+ // .. additional excludes ..
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+ You can provide a list of projects to exclude. These must be provided in the `/` syntax.
+ ```json
+ {
+ "type": "gitlab",
+ "exclude": {
+ "projects": [
+ "sourcebot-dev/zoekt",
+ "torvalds/linux"
+ ]
+ // .. additional excludes ..
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
+ You can provide a list of topics to ignore. Projects that contain any of these topics will be ignored
+ ```json
+ {
+ "type": "gitlab",
+ "exclude": {
+ "topics": [
+ "ci",
+ "experimental"
+ ]
+ // .. additional excludes ..
+ }
+ // .. additional configs ..
+ }
+ ```
+
+
\ No newline at end of file
diff --git a/docs/docs/connections/overview.mdx b/docs/docs/connections/overview.mdx
new file mode 100644
index 00000000..8b6d50fe
--- /dev/null
+++ b/docs/docs/connections/overview.mdx
@@ -0,0 +1,20 @@
+---
+title: "Connections"
+sidebarTitle: "Connections"
+icon: "plug"
+---
+
+import ConnectionCards from '/snippets/connection-cards.mdx';
+
+Connections are how you tell Sourcebot what repositories you want to index.
+
+To index your code, you'll create a connection to your code host platform and tell Sourcebot which repos/users/orgs to fetch, as well as other information Sourcebot may need (ex. access tokens, instance URLs)
+
+You can view your connections by pressing `Connections` in the nav menu:
+
+
+
+# Platform Support
+
+Sourcebot can index repositories across various different code host platforms
+
diff --git a/docs/docs/getting-started.mdx b/docs/docs/getting-started.mdx
new file mode 100644
index 00000000..15124256
--- /dev/null
+++ b/docs/docs/getting-started.mdx
@@ -0,0 +1,52 @@
+---
+title: Getting started
+---
+
+This page assumes that you're either using Sourcebot Cloud or have spun up your own Sourcebot
+self-hosted deployment. If you haven't, checkout out the [Overview](/overview) page.
+
+This page will guide you through configuring Sourcebot with your teams repositories.
+
+### Account Registration
+
+When you visit a Sourcebot deployment for the first time (either Sourcebot Cloud or your own self-hosted deployment), you'll be presented with the following login page. Pick
+your login method of choice to register for a new account.
+
+Some login options may not be visible if you haven't configured them in your self-hosted deployment
+
+
+### Organization Creation
+
+After logging in, you'll be asked to create an organization. You'll invite your team members to this organization later so they can also use Sourcebot.
+
+
+
+### Connection Creation
+
+After creating an org, we jump right into creating a [connection](/connections/overview). Connections are how you tell Sourcebot which repositories you want to index.
+
+If you're self-hosting Sourcebot, your source code never leaves your machine
+
+
+#### Create Connection
+After selecting a code host you want to connect to, you'll be presented with the connection creation page. This page has the following three inputs:
+- Connection name (required): The name of the connection within Sourcebot
+- Secret (optional): An [access token](/access-tokens/overview) that is used to fetch private repos
+- Configuration: The JSON configuration schema that defines the repos/orgs to fetch.
+
+For a more detailed explenation of connections, check out the [Connections](/connections/overview) page.
+
+The example below shows a connection named `sourcebot-org` that fetches all of the repos for the `sourcebot-dev` GitHub organization, but excludes the `sourcebot-dev/zoekt` repo
+
+This page won't let you continue with an invalid connection schema. If you're hitting errors, make sure the input you're providing is a valid JSON
+
+
+### Search
+
+Once you create your organization's first connection successfully, you'll be redirected to your org's main search page. From here, you can use the search bar to search across all
+of the repos you've indexed
+
+
+
+Congrats, you've successfuly setup Sourcebot! Read on to learn more about the Sourcebot's capabilities
+- Checkout the [Connections](/connections/overview) page to learn how to control which repos Sourcebot fetches
\ No newline at end of file
diff --git a/docs/docs/overview.mdx b/docs/docs/overview.mdx
new file mode 100644
index 00000000..6ad84b4f
--- /dev/null
+++ b/docs/docs/overview.mdx
@@ -0,0 +1,37 @@
+---
+title: "Overview"
+icon: "bookmark"
+iconType: "solid"
+---
+
+import ConnectionCards from '/snippets/connection-cards.mdx';
+
+Sourcebot is an open-source code search tool ([Github](https://github.com/sourcebot-dev/sourcebot)). It allows teams to index repositories across various different platforms, and provides a powerful interface to search across them.
+
+We have a [public demo](https://sourcebot.dev/search) if you'd like to try Sourcebot out before registering.
+
+There are two ways to get started using Sourcebot:
+
+
+ A fully managed version of Sourcebot that is hosted and maintained by the Sourcebot team: https://app.sourcebot.dev/
+
+ Best for teams who:
+ - Have large indexing requirements (500+ repos)
+ - Don't want to deal with the headache of managing their own Sourcebot deployment
+
+
+
+ Run Sourcebot within your own infrastructure. Check out our [self-hosting](/self-hosting/overview) guide to get started (it takes < 1 minute to spin up)
+
+ Best for teams who:
+ - Want to try out Sourcebot without going through security review (everything stays on your machine)
+ - Want full control over their Sourcebot deployment
+
+
+
+Once you know which Sourcebot deployment you want to use, check out the [Getting Started](/getting-started) page
+# Platform Support
+
+Sourcebot can index repositories across various different code host platforms
+
+
\ No newline at end of file
diff --git a/docs/fav.svg b/docs/fav.svg
new file mode 100644
index 00000000..aead6f5c
--- /dev/null
+++ b/docs/fav.svg
@@ -0,0 +1,9 @@
+
diff --git a/docs/images/connect_code_host.png b/docs/images/connect_code_host.png
new file mode 100644
index 00000000..388d3f1d
Binary files /dev/null and b/docs/images/connect_code_host.png differ
diff --git a/docs/images/connection_create_secret.png b/docs/images/connection_create_secret.png
new file mode 100644
index 00000000..1035fe76
Binary files /dev/null and b/docs/images/connection_create_secret.png differ
diff --git a/docs/images/connection_nav.png b/docs/images/connection_nav.png
new file mode 100644
index 00000000..4e3f7eef
Binary files /dev/null and b/docs/images/connection_nav.png differ
diff --git a/docs/images/create_connection_example.png b/docs/images/create_connection_example.png
new file mode 100644
index 00000000..73515ca3
Binary files /dev/null and b/docs/images/create_connection_example.png differ
diff --git a/docs/images/demo.mp4 b/docs/images/demo.mp4
new file mode 100644
index 00000000..e6162d19
Binary files /dev/null and b/docs/images/demo.mp4 differ
diff --git a/docs/images/github_connection.png b/docs/images/github_connection.png
new file mode 100644
index 00000000..12e07357
Binary files /dev/null and b/docs/images/github_connection.png differ
diff --git a/docs/images/github_pat_scopes.png b/docs/images/github_pat_scopes.png
new file mode 100644
index 00000000..3645c260
Binary files /dev/null and b/docs/images/github_pat_scopes.png differ
diff --git a/docs/images/gitlab_connection.png b/docs/images/gitlab_connection.png
new file mode 100644
index 00000000..c0eeaaa3
Binary files /dev/null and b/docs/images/gitlab_connection.png differ
diff --git a/docs/images/gitlab_pat_scopes.png b/docs/images/gitlab_pat_scopes.png
new file mode 100644
index 00000000..71a61654
Binary files /dev/null and b/docs/images/gitlab_pat_scopes.png differ
diff --git a/docs/images/login.png b/docs/images/login.png
new file mode 100644
index 00000000..08d2d591
Binary files /dev/null and b/docs/images/login.png differ
diff --git a/docs/images/onboard_complete.png b/docs/images/onboard_complete.png
new file mode 100644
index 00000000..2356258e
Binary files /dev/null and b/docs/images/onboard_complete.png differ
diff --git a/docs/images/onboard_invite.png b/docs/images/onboard_invite.png
new file mode 100644
index 00000000..32be0aaa
Binary files /dev/null and b/docs/images/onboard_invite.png differ
diff --git a/docs/images/org_create.png b/docs/images/org_create.png
new file mode 100644
index 00000000..2e55d069
Binary files /dev/null and b/docs/images/org_create.png differ
diff --git a/docs/images/sb_interface.png b/docs/images/sb_interface.png
new file mode 100644
index 00000000..c6169249
Binary files /dev/null and b/docs/images/sb_interface.png differ
diff --git a/docs/images/secret_dropdown.png b/docs/images/secret_dropdown.png
new file mode 100644
index 00000000..0a9a92c5
Binary files /dev/null and b/docs/images/secret_dropdown.png differ
diff --git a/docs/images/secrets_page.png b/docs/images/secrets_page.png
new file mode 100644
index 00000000..78541f76
Binary files /dev/null and b/docs/images/secrets_page.png differ
diff --git a/docs/images/settings_nav.png b/docs/images/settings_nav.png
new file mode 100644
index 00000000..eb568daf
Binary files /dev/null and b/docs/images/settings_nav.png differ
diff --git a/docs/introduction.mdx b/docs/introduction.mdx
new file mode 100644
index 00000000..5e935da4
--- /dev/null
+++ b/docs/introduction.mdx
@@ -0,0 +1,73 @@
+---
+title: Introduction
+description: "Welcome to the home of your new documentation"
+---
+
+
+
+
+## Setting up
+
+Test
+
+The first step to world-class documentation is setting up your editing environments.
+
+
+
+ Get your docs set up locally for easy development
+
+
+ Preview your changes before you push to make sure they're perfect
+
+
+
+## Make it yours
+
+Update your docs to your brand and add valuable content for the best user conversion.
+
+
+
+ Customize your docs to your company's colors and brands
+
+
+ Automatically generate endpoints from an OpenAPI spec
+
+
+ Build interactive features and designs to guide your users
+
+
+ Check out our showcase of our favorite documentation
+
+
diff --git a/docs/logo/dark.png b/docs/logo/dark.png
new file mode 100644
index 00000000..42441895
Binary files /dev/null and b/docs/logo/dark.png differ
diff --git a/docs/logo/dark.svg b/docs/logo/dark.svg
new file mode 100644
index 00000000..8b343cd6
--- /dev/null
+++ b/docs/logo/dark.svg
@@ -0,0 +1,21 @@
+
diff --git a/docs/logo/light.png b/docs/logo/light.png
new file mode 100644
index 00000000..fc727de1
Binary files /dev/null and b/docs/logo/light.png differ
diff --git a/docs/logo/light.svg b/docs/logo/light.svg
new file mode 100644
index 00000000..03e62bf1
--- /dev/null
+++ b/docs/logo/light.svg
@@ -0,0 +1,21 @@
+
diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx
new file mode 100644
index 00000000..9ac2a6ac
--- /dev/null
+++ b/docs/quickstart.mdx
@@ -0,0 +1,97 @@
+---
+title: 'Quickstart'
+description: 'Start building awesome documentation in under 5 minutes'
+---
+
+## Setup your development
+
+Learn how to update your docs locally and deploy them to the public.
+
+### Edit and preview
+
+
+
+ During the onboarding process, we created a repository on your Github with
+ your docs content. You can find this repository on our
+ [dashboard](https://dashboard.mintlify.com). To clone the repository
+ locally, follow these
+ [instructions](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)
+ in your terminal.
+
+
+ Previewing helps you make sure your changes look as intended. We built a
+ command line interface to render these changes locally.
+ 1. Install the
+ [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the
+ documentation changes locally with this command: ``` npm i -g mintlify ```
+ 2. Run the following command at the root of your documentation (where
+ `docs.json` is): ``` mintlify dev ```
+
+ If you’re currently using the legacy ```mint.json``` configuration file, please update the Mintlify CLI:
+
+
+ ```npm i -g mintlify@latest```
+ And run the new upgrade command in your docs repository:
+
+ ```mintlify upgrade```
+ You should now be using the new ```docs.json``` configuration file. Feel free to delete the ```mint.json``` file from your repository.
+
+
+
+
+### Deploy your changes
+
+
+
+
+ Our Github app automatically deploys your changes to your docs site, so you
+ don't need to manage deployments yourself. You can find the link to install on
+ your [dashboard](https://dashboard.mintlify.com). Once the bot has been
+ successfully installed, there should be a check mark next to the commit hash
+ of the repo.
+
+
+ [Commit and push your changes to
+ Git](https://docs.github.com/en/get-started/using-git/pushing-commits-to-a-remote-repository#about-git-push)
+ for your changes to update in your docs site. If you push and don't see that
+ the Github app successfully deployed your changes, you can also manually
+ update your docs through our [dashboard](https://dashboard.mintlify.com).
+
+
+
+
+## Update your docs
+
+Add content directly in your files with MDX syntax and React components. You can use any of our components, or even build your own.
+
+
+
+
+ Add content to your docs with MDX syntax.
+
+
+
+ Add code directly to your docs with syntax highlighting.
+
+
+
+ Add images to your docs to make them more engaging.
+
+
+
+ Add templates to your docs to make them more reusable.
+
+
+
diff --git a/docs/self-hosting/deployment/source.mdx b/docs/self-hosting/deployment/source.mdx
new file mode 100644
index 00000000..ddebe7f7
--- /dev/null
+++ b/docs/self-hosting/deployment/source.mdx
@@ -0,0 +1,43 @@
+---
+title: Build from Source
+sidebarTitle: Build from Source
+---
+
+Building from source is only required if you're making changes. The recommended way to self-host Sourcebot is to use the [pre-built docker image](/self-hosting/overview)
+
+
+
+ A NodeJS version of at least 21.1.0 is required.
+ 1. [go](https://go.dev/doc/install)
+ 2. [NodeJS](https://nodejs.org/)
+ 3. [ctags](https://github.com/universal-ctags/ctags)
+ ```bash
+ // macOS:
+ brew install universal-ctags
+
+ // Linux:
+ snap install universal-ctags
+ ```
+
+
+ ```bash
+ git clone --recurse-submodules https://github.com/sourcebot-dev/sourcebot.git
+ ```
+
+
+ ```bash
+ cd sourcebot
+ make
+ ```
+
+
+ ``` bash
+ yarn dev
+ ```
+
+
+ Start searching at `http://localhost:3000`
+
+
+
+Congrats, you're now running Sourcebot from source! Check out our [getting started](/docs/getting-started) page to dive in.
\ No newline at end of file
diff --git a/docs/self-hosting/overview.mdx b/docs/self-hosting/overview.mdx
new file mode 100644
index 00000000..6f094fb1
--- /dev/null
+++ b/docs/self-hosting/overview.mdx
@@ -0,0 +1,31 @@
+---
+title: Self-host Sourcebot
+sidebarTitle: Overview
+---
+
+Want to use Sourcebot without self-hosting? Checkout [Sourcebot Cloud](https://sourcebot.dev/login)
+
+
+
+Sourcebot is open source and can be self-hosted using our official Docker images. To get started, run the following command:
+
+``` bash
+docker run -p 3000:3000 --rm --name sourcebot ghcr.io/sourcebot-dev/sourcebot:staging
+```
+
+Navigate to `localhost:3000` to see your Sourcebot deployment in action. Check out our [Getting Started](/getting-started) guide to learn how to index your repos and use the tool.
+
+Making changes to Sourcebot? Checkout our guide on how to [build from source](/self-hosting/deployment/source).
+
+
+### Telemetry
+
+By default, Sourcebot collects anonymized usage data through [PostHog](https://posthog.com/) to help us improve the performance and reliability of our tool. We don't collect or transmit [any information related to your codebase](https://sourcebot.dev/search/search?query=captureEvent%20repo%3Asourcebot%20case%3Ano). In addition, all events are [sanitized](https://github.com/sourcebot-dev/sourcebot/blob/HEAD/packages/web/src/app/posthogProvider.tsx) to ensure that no sensitive details (ex. ip address, query info) leave your machine.
+
+The data we collect includes general usage statistics and metadata such as query performance (e.g., search duration, error rates) to monitor the application's health and functionality. This information helps us better understand how Sourcebot is used and where improvements can be made :)
+
+If you'd like to disable all telemetry, you can do so by setting the environment variable `SOURCEBOT_TELEMETRY_DISABLED` to `1` in the docker run command:
+
+```bash
+docker run -e SOURCEBOT_TELEMETRY_DISABLED=1 /* additional args */ ghcr.io/sourcebot-dev/sourcebot:latest
+```
\ No newline at end of file
diff --git a/docs/snippets/connection-cards.mdx b/docs/snippets/connection-cards.mdx
new file mode 100644
index 00000000..1e224bf4
--- /dev/null
+++ b/docs/snippets/connection-cards.mdx
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file