diff --git a/docs/tutorial-basics/_category_.json b/docs/getting-started/_category_.json
similarity index 82%
rename from docs/tutorial-basics/_category_.json
rename to docs/getting-started/_category_.json
index 2e6db55..8e11d05 100644
--- a/docs/tutorial-basics/_category_.json
+++ b/docs/getting-started/_category_.json
@@ -1,5 +1,5 @@
{
- "label": "Tutorial - Basics",
+ "label": "Getting Started",
"position": 2,
"link": {
"type": "generated-index",
diff --git a/docs/getting-started/model-context-protocol.mdx b/docs/getting-started/model-context-protocol.mdx
new file mode 100644
index 0000000..d7c00f4
--- /dev/null
+++ b/docs/getting-started/model-context-protocol.mdx
@@ -0,0 +1,105 @@
+---
+sidebar_position: 2
+---
+
+import ReactPlayer from 'react-player'
+
+# Model Context Protocol
+
+[](https://github.com/modelcontextprotocol/python-sdk) [](https://github.com/modelcontextprotocol/servers)
+
+:::info
+
+> MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.
+
+:::
+
+Learn more [here](https://modelcontextprotocol.io/introduction).
+
+## Video Demo
+
+
+
+## Key Features
+
+> MCP helps you build agents and complex workflows on top of LLMs. LLMs frequently need to integrate with data and tools, and MCP provides:
+> - A growing list of pre-built integrations that your LLM can directly plug into
+> - The flexibility to switch between LLM providers and vendors
+> - Best practices for securing your data within your infrastructure
+
+## Inspector
+
+Explore community and your custom MCP servers via Inspector at [http://localhost:6274](http://localhost:6274) in [Development](./quick-start#development).
+
+Left Sidebar:
+
+- Select SSE `Transport Type`
+- Input `http://:/sse` in `URL`
+- Click `Connect`
+
+Explore the following tabs in the Top Navbar:
+
+- `Resources`
+- `Prompts`
+- `Tools`
+
+## Community MCP Servers
+
+Before building your own custom MCP servers, explore the growing list of hundreds of [community MCP servers](https://github.com/modelcontextprotocol/servers). With integrations spanning databases, cloud services, and web resources, the perfect fit might already exist.
+
+### DBHub
+
+Learn more [here](https://github.com/bytebase/dbhub). Explore more in [Inspector](#inspector).
+
+Easily plug in this MCP into LLM to allow LLM to:
+
+- Perform read-only SQL query validation for secure operations
+- Enable deterministic introspection of DB
+ - List schemas
+ - List tables in schemas
+ - Retrieve table structures
+- Enrich user queries deterministically
+ - Ground DB related queries with DB schemas
+ - Provide SQL templates for translating natural language to SQL
+
+### Youtube
+
+Learn more [here](https://github.com/Klavis-AI/klavis/tree/main/mcp_servers/youtube). Explore more in [Inspector](#inspector).
+
+Instead of building logic to:
+
+- Scrape YouTube content
+- Adapt outputs for LLM compatibility
+- Validate tool invocation by the LLM
+- Chain these steps to fetch transcripts from URLs
+
+Simply plug in this MCP to enable LLM to:
+
+- Fetch transcripts from any YouTube URL on demand
+
+## Custom MCP
+
+Should you require a custom MCP server, a template is provided [here](https://github.com/NicholasGoh/fastapi-mcp-langgraph-template/blob/main/backend/shared_mcp/tools.py) for you to reference in development.
+
+```python title="./backend/shared_mcp/tools.py"
+import os
+
+from mcp.server.fastmcp import FastMCP
+
+mcp = FastMCP(
+ "MCP Server",
+ port=os.environ["MCP_SERVER_PORT"],
+)
+
+
+@mcp.tool()
+def add(a: int, b: int) -> int:
+ """Add two numbers"""
+ return a + b
+
+
+@mcp.resource("greeting://{name}")
+def get_greeting(name: str) -> str:
+ """Get a personalized greeting"""
+ return f"Hello, {name}!"
+```
diff --git a/docs/getting-started/quick-start.mdx b/docs/getting-started/quick-start.mdx
new file mode 100644
index 0000000..d23eb48
--- /dev/null
+++ b/docs/getting-started/quick-start.mdx
@@ -0,0 +1,106 @@
+---
+sidebar_position: 1
+---
+
+import ReactPlayer from 'react-player'
+
+# Quick Start
+
+Build community youtube MCP image with:
+
+```bash
+./community/youtube/build.sh
+```
+
+:::tip
+
+Instead of cloning or submoduling the repository locally, then building the image, this script builds the Docker image inside a temporary Docker-in-Docker container. This approach avoids polluting your local environment with throwaway files by cleaning up everything once the container exits.
+
+:::
+
+Then build the other images with:
+
+```bash
+docker compose -f compose-dev.yaml build
+```
+
+Copy environment file:
+
+```bash
+cp .env.sample .env
+```
+
+Add your following API keys and value to the respective file: `./envs/backend.env`, `./envs/youtube.env` and `.env`.
+
+```bash
+OPENAI_API_KEY=sk-proj-...
+POSTGRES_DSN=postgresql://postgres...
+YOUTUBE_API_KEY=...
+```
+
+Set environment variables in shell: (compatible with `bash` and `zsh`)
+
+```bash
+set -a; for env_file in ./envs/*; do source $env_file; done; set +a
+```
+
+Start production containers:
+
+```bash
+docker compose up -d
+```
+
+
+
+## Development
+
+First, set environment variables as per above.
+
+### VSCode Devcontainer
+
+
+
+
+
+:::warning
+
+Only replace the following if you plan to start debugger for FastAPI server in VSCode.
+
+:::
+
+Replace `./compose-dev.yaml` entrypoint to allow debugging FastAPI server:
+
+```yaml title="./compose-dev.yaml"
+ api:
+ image: api:prod
+ build:
+ dockerfile: ./backend/api/Dockerfile
+ # highlight-next-line
+ entrypoint: bash -c "sleep infinity"
+ env_file:
+ - ./envs/backend.env
+```
+
+Then:
+
+```bash
+code --no-sandbox .
+```
+
+Press `F1` and type `Dev Containers: Rebuild and Reopen in Container` to open containerized environment with IntelliSense and Debugger for FastAPI.
+
+### Without VSCode Devcontainer
+
+Run development environment with:
+
+```bash
+docker compose -f compose-dev.yaml up -d
+```
+
+## Debugging
+
+Sometimes in development, nginx reverse proxy needs to reload its config to route services properly.
+
+```bash
+docker compose -f compose-dev.yaml exec nginx sh -c "nginx -s reload"
+```
diff --git a/docs/getting-started/supabase.mdx b/docs/getting-started/supabase.mdx
new file mode 100644
index 0000000..0c112de
--- /dev/null
+++ b/docs/getting-started/supabase.mdx
@@ -0,0 +1,28 @@
+---
+sidebar_position: 3
+---
+
+import ReactPlayer from 'react-player'
+
+# Supabase
+
+[](https://github.com/supabase/supabase)
+
+The start of the video shows how you can get your `POSTGRES_DSN` URL.
+
+## Video Demo
+
+
+
+## Features
+
+Visit [here](https://supabase.com/) for a full list of features and learn more.
+
+- Postgres Relational Database
+- Authentication
+ - User Sign up and Login
+ - Row and Column Security
+- Data APIs
+ - Auto Generated from Table Schema
+- Self Host for free
+- Free Cloud usage for rapid prototyping
diff --git a/docs/intro.md b/docs/intro.md
deleted file mode 100644
index 45e8604..0000000
--- a/docs/intro.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-sidebar_position: 1
----
-
-# Tutorial Intro
-
-Let's discover **Docusaurus in less than 5 minutes**.
-
-## Getting Started
-
-Get started by **creating a new site**.
-
-Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**.
-
-### What you'll need
-
-- [Node.js](https://nodejs.org/en/download/) version 18.0 or above:
- - When installing Node.js, you are recommended to check all checkboxes related to dependencies.
-
-## Generate a new site
-
-Generate a new Docusaurus site using the **classic template**.
-
-The classic template will automatically be added to your project after you run the command:
-
-```bash
-npm init docusaurus@latest my-website classic
-```
-
-You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.
-
-The command also installs all necessary dependencies you need to run Docusaurus.
-
-## Start your site
-
-Run the development server:
-
-```bash
-cd my-website
-npm run start
-```
-
-The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.
-
-The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.
-
-Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes.
diff --git a/docs/intro.mdx b/docs/intro.mdx
new file mode 100644
index 0000000..3415bcc
--- /dev/null
+++ b/docs/intro.mdx
@@ -0,0 +1,43 @@
+---
+sidebar_position: 1
+title: Introduction
+---
+
+# Introduction
+
+A modern template for agentic orchestration — built for rapid iteration and scalable deployment using highly customizable, community-supported tools like MCP, LangGraph, and more.
+
+Visit the [Github](https://github.com/NicholasGoh/fastapi-mcp-langgraph-template)
+
+## Core Features
+
+[](https://github.com/modelcontextprotocol/python-sdk) is an open protocol that standardizes how apps provide context to LLMs.
+ - Seamlessly integrates LLM with growing list of community integrations found here [](https://github.com/modelcontextprotocol/servers)
+ - No LLM provider lock in
+
+[](https://github.com/langchain-ai/langgraph) for Customizable Agentic Orchestration
+- Native streaming for UX in complex Agentic Workflows
+- Native persisted chat history and state management
+
+### Technology Stack and Features
+
+- [](https://github.com/fastapi/fastapi) for Python backend API
+- [](https://github.com/fastapi/sqlmodel) for Python SQL database interactions (ORM + Validation).
+ - Wrapper of [](https://github.com/sqlalchemy/sqlalchemy)
+- [](https://github.com/pydantic/pydantic) for Data Validation and Settings Management.
+- [](https://github.com/supabase/supabase) for DB RBAC
+ - [](https://github.com/postgres/postgres) Relational DB
+ - [](https://github.com/pgvector/pgvector) Vector Store
+- [](https://github.com/nginx/nginx) Reverse Proxy
+- [](https://github.com/docker/compose) for development and production.
+
+### Planned Features
+
+- [](https://github.com/langfuse/langfuse) for LLM Observability and LLM Metrics
+- [](https://github.com/prometheus/prometheus) for scraping Metrics
+- [](https://github.com/grafana/grafana) for visualizing Metrics
+- [](https://auth0.com/docs) SaaS for JWT authentication
+- CI/CD via Github Actions
+ - :dollar: Deploy live demo to [](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)
+ - Provision with [](https://github.com/hashicorp/terraform) IaC
+ - Push built images to ECR and Dockerhub
diff --git a/docs/tutorial-basics/congratulations.md b/docs/tutorial-basics/congratulations.md
deleted file mode 100644
index 04771a0..0000000
--- a/docs/tutorial-basics/congratulations.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-sidebar_position: 6
----
-
-# Congratulations!
-
-You have just learned the **basics of Docusaurus** and made some changes to the **initial template**.
-
-Docusaurus has **much more to offer**!
-
-Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**.
-
-Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610)
-
-## What's next?
-
-- Read the [official documentation](https://docusaurus.io/)
-- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config)
-- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration)
-- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout)
-- Add a [search bar](https://docusaurus.io/docs/search)
-- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase)
-- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support)
diff --git a/docs/tutorial-basics/create-a-blog-post.md b/docs/tutorial-basics/create-a-blog-post.md
deleted file mode 100644
index 550ae17..0000000
--- a/docs/tutorial-basics/create-a-blog-post.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-sidebar_position: 3
----
-
-# Create a Blog Post
-
-Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed...
-
-## Create your first Post
-
-Create a file at `blog/2021-02-28-greetings.md`:
-
-```md title="blog/2021-02-28-greetings.md"
----
-slug: greetings
-title: Greetings!
-authors:
- - name: Joel Marcey
- title: Co-creator of Docusaurus 1
- url: https://github.com/JoelMarcey
- image_url: https://github.com/JoelMarcey.png
- - name: Sébastien Lorber
- title: Docusaurus maintainer
- url: https://sebastienlorber.com
- image_url: https://github.com/slorber.png
-tags: [greetings]
----
-
-Congratulations, you have made your first post!
-
-Feel free to play around and edit this post as much as you like.
-```
-
-A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).
diff --git a/docs/tutorial-basics/create-a-document.md b/docs/tutorial-basics/create-a-document.md
deleted file mode 100644
index c22fe29..0000000
--- a/docs/tutorial-basics/create-a-document.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-sidebar_position: 2
----
-
-# Create a Document
-
-Documents are **groups of pages** connected through:
-
-- a **sidebar**
-- **previous/next navigation**
-- **versioning**
-
-## Create your first Doc
-
-Create a Markdown file at `docs/hello.md`:
-
-```md title="docs/hello.md"
-# Hello
-
-This is my **first Docusaurus document**!
-```
-
-A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello).
-
-## Configure the Sidebar
-
-Docusaurus automatically **creates a sidebar** from the `docs` folder.
-
-Add metadata to customize the sidebar label and position:
-
-```md title="docs/hello.md" {1-4}
----
-sidebar_label: 'Hi!'
-sidebar_position: 3
----
-
-# Hello
-
-This is my **first Docusaurus document**!
-```
-
-It is also possible to create your sidebar explicitly in `sidebars.js`:
-
-```js title="sidebars.js"
-export default {
- tutorialSidebar: [
- 'intro',
- // highlight-next-line
- 'hello',
- {
- type: 'category',
- label: 'Tutorial',
- items: ['tutorial-basics/create-a-document'],
- },
- ],
-};
-```
diff --git a/docs/tutorial-basics/create-a-page.md b/docs/tutorial-basics/create-a-page.md
deleted file mode 100644
index 20e2ac3..0000000
--- a/docs/tutorial-basics/create-a-page.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-sidebar_position: 1
----
-
-# Create a Page
-
-Add **Markdown or React** files to `src/pages` to create a **standalone page**:
-
-- `src/pages/index.js` → `localhost:3000/`
-- `src/pages/foo.md` → `localhost:3000/foo`
-- `src/pages/foo/bar.js` → `localhost:3000/foo/bar`
-
-## Create your first React Page
-
-Create a file at `src/pages/my-react-page.js`:
-
-```jsx title="src/pages/my-react-page.js"
-import React from 'react';
-import Layout from '@theme/Layout';
-
-export default function MyReactPage() {
- return (
-
- My React page
- This is a React page
-
- );
-}
-```
-
-A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page).
-
-## Create your first Markdown Page
-
-Create a file at `src/pages/my-markdown-page.md`:
-
-```mdx title="src/pages/my-markdown-page.md"
-# My Markdown page
-
-This is a Markdown page
-```
-
-A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page).
diff --git a/docs/tutorial-basics/deploy-your-site.md b/docs/tutorial-basics/deploy-your-site.md
deleted file mode 100644
index 1c50ee0..0000000
--- a/docs/tutorial-basics/deploy-your-site.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-sidebar_position: 5
----
-
-# Deploy your site
-
-Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**).
-
-It builds your site as simple **static HTML, JavaScript and CSS files**.
-
-## Build your site
-
-Build your site **for production**:
-
-```bash
-npm run build
-```
-
-The static files are generated in the `build` folder.
-
-## Deploy your site
-
-Test your production build locally:
-
-```bash
-npm run serve
-```
-
-The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/).
-
-You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**).
diff --git a/docs/tutorial-basics/markdown-features.mdx b/docs/tutorial-basics/markdown-features.mdx
deleted file mode 100644
index 35e0082..0000000
--- a/docs/tutorial-basics/markdown-features.mdx
+++ /dev/null
@@ -1,152 +0,0 @@
----
-sidebar_position: 4
----
-
-# Markdown Features
-
-Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**.
-
-## Front Matter
-
-Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/):
-
-```text title="my-doc.md"
-// highlight-start
----
-id: my-doc-id
-title: My document title
-description: My document description
-slug: /my-custom-url
----
-// highlight-end
-
-## Markdown heading
-
-Markdown text with [links](./hello.md)
-```
-
-## Links
-
-Regular Markdown links are supported, using url paths or relative file paths.
-
-```md
-Let's see how to [Create a page](/create-a-page).
-```
-
-```md
-Let's see how to [Create a page](./create-a-page.md).
-```
-
-**Result:** Let's see how to [Create a page](./create-a-page.md).
-
-## Images
-
-Regular Markdown images are supported.
-
-You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`):
-
-```md
-
-```
-
-
-
-You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:
-
-```md
-
-```
-
-## Code Blocks
-
-Markdown code blocks are supported with Syntax highlighting.
-
-````md
-```jsx title="src/components/HelloDocusaurus.js"
-function HelloDocusaurus() {
- return Hello, Docusaurus!
;
-}
-```
-````
-
-```jsx title="src/components/HelloDocusaurus.js"
-function HelloDocusaurus() {
- return Hello, Docusaurus!
;
-}
-```
-
-## Admonitions
-
-Docusaurus has a special syntax to create admonitions and callouts:
-
-```md
-:::tip My tip
-
-Use this awesome feature option
-
-:::
-
-:::danger Take care
-
-This action is dangerous
-
-:::
-```
-
-:::tip My tip
-
-Use this awesome feature option
-
-:::
-
-:::danger Take care
-
-This action is dangerous
-
-:::
-
-## MDX and React Components
-
-[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**:
-
-```jsx
-export const Highlight = ({children, color}) => (
- {
- alert(`You clicked the color ${color} with label ${children}`)
- }}>
- {children}
-
-);
-
-This is Docusaurus green !
-
-This is Facebook blue !
-```
-
-export const Highlight = ({children, color}) => (
- {
- alert(`You clicked the color ${color} with label ${children}`);
- }}>
- {children}
-
-);
-
-This is Docusaurus green !
-
-This is Facebook blue !
diff --git a/docs/tutorial-extras/_category_.json b/docs/tutorial-extras/_category_.json
deleted file mode 100644
index a8ffcc1..0000000
--- a/docs/tutorial-extras/_category_.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "label": "Tutorial - Extras",
- "position": 3,
- "link": {
- "type": "generated-index"
- }
-}
diff --git a/docs/tutorial-extras/img/docsVersionDropdown.png b/docs/tutorial-extras/img/docsVersionDropdown.png
deleted file mode 100644
index 97e4164..0000000
Binary files a/docs/tutorial-extras/img/docsVersionDropdown.png and /dev/null differ
diff --git a/docs/tutorial-extras/img/localeDropdown.png b/docs/tutorial-extras/img/localeDropdown.png
deleted file mode 100644
index e257edc..0000000
Binary files a/docs/tutorial-extras/img/localeDropdown.png and /dev/null differ
diff --git a/docs/tutorial-extras/manage-docs-versions.md b/docs/tutorial-extras/manage-docs-versions.md
deleted file mode 100644
index ccda0b9..0000000
--- a/docs/tutorial-extras/manage-docs-versions.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-sidebar_position: 1
----
-
-# Manage Docs Versions
-
-Docusaurus can manage multiple versions of your docs.
-
-## Create a docs version
-
-Release a version 1.0 of your project:
-
-```bash
-npm run docusaurus docs:version 1.0
-```
-
-The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created.
-
-Your docs now have 2 versions:
-
-- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs
-- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs**
-
-## Add a Version Dropdown
-
-To navigate seamlessly across versions, add a version dropdown.
-
-Modify the `docusaurus.config.js` file:
-
-```js title="docusaurus.config.js"
-export default {
- themeConfig: {
- navbar: {
- items: [
- // highlight-start
- {
- type: 'docsVersionDropdown',
- },
- // highlight-end
- ],
- },
- },
-};
-```
-
-The docs version dropdown appears in your navbar:
-
-
-
-## Update an existing version
-
-It is possible to edit versioned docs in their respective folder:
-
-- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello`
-- `docs/hello.md` updates `http://localhost:3000/docs/next/hello`
diff --git a/docs/tutorial-extras/translate-your-site.md b/docs/tutorial-extras/translate-your-site.md
deleted file mode 100644
index b5a644a..0000000
--- a/docs/tutorial-extras/translate-your-site.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-sidebar_position: 2
----
-
-# Translate your site
-
-Let's translate `docs/intro.md` to French.
-
-## Configure i18n
-
-Modify `docusaurus.config.js` to add support for the `fr` locale:
-
-```js title="docusaurus.config.js"
-export default {
- i18n: {
- defaultLocale: 'en',
- locales: ['en', 'fr'],
- },
-};
-```
-
-## Translate a doc
-
-Copy the `docs/intro.md` file to the `i18n/fr` folder:
-
-```bash
-mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/
-
-cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md
-```
-
-Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French.
-
-## Start your localized site
-
-Start your site on the French locale:
-
-```bash
-npm run start -- --locale fr
-```
-
-Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated.
-
-:::caution
-
-In development, you can only use one locale at a time.
-
-:::
-
-## Add a Locale Dropdown
-
-To navigate seamlessly across languages, add a locale dropdown.
-
-Modify the `docusaurus.config.js` file:
-
-```js title="docusaurus.config.js"
-export default {
- themeConfig: {
- navbar: {
- items: [
- // highlight-start
- {
- type: 'localeDropdown',
- },
- // highlight-end
- ],
- },
- },
-};
-```
-
-The locale dropdown now appears in your navbar:
-
-
-
-## Build your localized site
-
-Build your site for a specific locale:
-
-```bash
-npm run build -- --locale fr
-```
-
-Or build your site to include all the locales at once:
-
-```bash
-npm run build
-```
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 4c9c2cf..0947042 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -106,6 +106,7 @@ const config: Config = {
},
{ to: "/showcase", label: "Projects", position: "left" },
{ to: "/blog", label: "Blog", position: "left" },
+ { to: "/docs/intro", label: "Docs", position: "left" },
{
href: "https://www.linkedin.com/in/nicholas-goh-19ba1b194/",
position: "right",
diff --git a/static/vid/fastapi-mcp-langgraph-template/api.mp4 b/static/vid/fastapi-mcp-langgraph-template/api.mp4
new file mode 100644
index 0000000..4ce6fe2
Binary files /dev/null and b/static/vid/fastapi-mcp-langgraph-template/api.mp4 differ
diff --git a/static/vid/fastapi-mcp-langgraph-template/mcps.mp4 b/static/vid/fastapi-mcp-langgraph-template/mcps.mp4
new file mode 100644
index 0000000..3394738
Binary files /dev/null and b/static/vid/fastapi-mcp-langgraph-template/mcps.mp4 differ
diff --git a/static/vid/fastapi-mcp-langgraph-template/supabase.mp4 b/static/vid/fastapi-mcp-langgraph-template/supabase.mp4
new file mode 100644
index 0000000..20c9f5f
Binary files /dev/null and b/static/vid/fastapi-mcp-langgraph-template/supabase.mp4 differ
diff --git a/static/vid/fastapi-mcp-langgraph-template/vscode.mp4 b/static/vid/fastapi-mcp-langgraph-template/vscode.mp4
new file mode 100644
index 0000000..66a8969
Binary files /dev/null and b/static/vid/fastapi-mcp-langgraph-template/vscode.mp4 differ