{"id":45848724,"url":"https://github.com/vstorm-co/full-stack-ai-agent-template","last_synced_at":"2026-04-18T13:07:04.661Z","repository":{"id":329878161,"uuid":"1119531734","full_name":"vstorm-co/full-stack-ai-agent-template","owner":"vstorm-co","description":"Full-stack AI app generator — FastAPI + Next.js with agents, RAG, streaming, auth, and 20+ integrations out of the box.","archived":false,"fork":false,"pushed_at":"2026-04-18T11:17:23.000Z","size":36658,"stargazers_count":1048,"open_issues_count":3,"forks_count":199,"subscribers_count":12,"default_branch":"main","last_synced_at":"2026-04-18T11:24:42.024Z","etag":null,"topics":["agent-framework","ai-agent-template","ai-agents","crewai","docker","fastapi","full-stack","langchain","langgraph","llm","nextjs","postgresql","pydantic-ai","pydantic-deep","python","rag","react","typescript","vstorm","websocket"],"latest_commit_sha":null,"homepage":"https://vstorm-co.github.io/full-stack-ai-agent-template/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vstorm-co.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":"DCO","cla":null}},"created_at":"2025-12-19T12:23:15.000Z","updated_at":"2026-04-18T09:45:32.000Z","dependencies_parsed_at":"2026-01-16T22:04:01.536Z","dependency_job_id":null,"html_url":"https://github.com/vstorm-co/full-stack-ai-agent-template","commit_stats":null,"previous_names":["vstorm-co/full-stack-fastapi-nextjs-llm-template","vstorm-co/full-stack-ai-agent-template"],"tags_count":29,"template":true,"template_full_name":null,"purl":"pkg:github/vstorm-co/full-stack-ai-agent-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vstorm-co%2Ffull-stack-ai-agent-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vstorm-co%2Ffull-stack-ai-agent-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vstorm-co%2Ffull-stack-ai-agent-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vstorm-co%2Ffull-stack-ai-agent-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vstorm-co","download_url":"https://codeload.github.com/vstorm-co/full-stack-ai-agent-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vstorm-co%2Ffull-stack-ai-agent-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31969836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-framework","ai-agent-template","ai-agents","crewai","docker","fastapi","full-stack","langchain","langgraph","llm","nextjs","postgresql","pydantic-ai","pydantic-deep","python","rag","react","typescript","vstorm","websocket"],"created_at":"2026-02-27T02:21:07.716Z","updated_at":"2026-04-18T13:07:04.654Z","avatar_url":"https://github.com/vstorm-co.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/banner.png\" alt=\"Full-Stack AI Agent Template\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eFull-Stack AI Agent Template\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eProduction-ready FastAPI + Next.js project generator with AI agents, RAG, and 20+ enterprise integrations.\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#-quick-start\"\u003eQuick Start\u003c/a\u003e •\n  \u003ca href=\"#-features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#-demo\"\u003eDemo\u003c/a\u003e •\n  \u003ca href=\"https://vstorm-co.github.io/full-stack-ai-agent-template/\"\u003eDocumentation\u003c/a\u003e •\n  \u003ca href=\"https://oss.vstorm.co/projects/full-stack-ai-agent-template/configurator/\"\u003eConfigurator\u003c/a\u003e •\n  \u003ca href=\"https://pypi.org/project/fastapi-fullstack/\"\u003ePyPI\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pypi.org/project/fastapi-fullstack/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/fastapi-fullstack?color=green\u0026logo=pypi\u0026logoColor=white\" alt=\"PyPI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pepy.tech/projects/fastapi-fullstack\"\u003e\u003cimg src=\"https://static.pepy.tech/badge/fastapi-fullstack/month\" alt=\"PyPI Downloads\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/vstorm-co/full-stack-ai-agent-template/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/vstorm-co/full-stack-ai-agent-template?style=flat\u0026logo=github\u0026color=yellow\" alt=\"GitHub Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.11+-blue?logo=python\u0026logoColor=white\" alt=\"Python 3.11+\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/vstorm-co/full-stack-ai-agent-template?color=blue\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/coverage-100%25-brightgreen\" alt=\"Coverage\"\u003e\n  \u003ca href=\"https://github.com/vstorm-co/full-stack-ai-agent-template/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/vstorm-co/full-stack-ai-agent-template/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/SECURITY.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/security-policy-blueviolet?logo=shieldsdotio\u0026logoColor=white\" alt=\"Security Policy\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.bestpractices.dev/projects/12539\"\u003e\u003cimg src=\"https://www.bestpractices.dev/projects/12539/badge\" alt=\"OpenSSF Best Practices\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/pydantic/pydantic-ai\"\u003e\u003cimg src=\"https://img.shields.io/badge/Powered%20by-Pydantic%20AI-E92063?logo=pydantic\u0026logoColor=white\" alt=\"Pydantic AI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://x.com/Kacper95682155\"\u003e\u003cimg src=\"https://img.shields.io/badge/X-000000?logo=x\u0026logoColor=white\" alt=\"X\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e🤖 6 AI Agent Frameworks\u003c/b\u003e \u003ci\u003e(PydanticAI, PydanticDeep, LangChain, LangGraph, CrewAI, DeepAgents)\u003c/i\u003e\n  \u003cbr\u003e\n  \u003cb\u003e📄 RAG Pipeline\u003c/b\u003e \u003ci\u003e(Milvus, Qdrant, pgvector, ChromaDB)\u003c/i\u003e\n  \u003cbr\u003e\n  \u003cb\u003e⚡ FastAPI + Next.js 15\u003c/b\u003e \u003ci\u003e(WebSocket streaming, real-time chat UI)\u003c/i\u003e\n  \u003cbr\u003e\n  \u003cb\u003e🔗 Conversation Sharing\u003c/b\u003e \u003ci\u003e(direct sharing, public links, admin browser)\u003c/i\u003e\n  \u003cbr\u003e\n  \u003cb\u003e🔒 Enterprise-Ready\u003c/b\u003e \u003ci\u003e(JWT, OAuth, admin panel, Celery, Docker, K8s)\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eTable of Contents\u003c/b\u003e\u003c/summary\u003e\n\n- [Quick Start](#-quick-start)\n- [Demo](#-demo)\n- [Screenshots](#-screenshots)\n- [Why This Template](#-why-this-template)\n- [Features](#-features)\n- [Architecture](#-architecture)\n- [AI Agent](#-ai-agent)\n- [RAG](#-rag-retrieval-augmented-generation)\n- [Observability](#-observability)\n- [Django-style CLI](#-django-style-cli)\n- [Generated Project Structure](#-generated-project-structure)\n- [Configuration Options](#-configuration-options)\n- [Comparison](#-comparison)\n- [FAQ](#-faq)\n- [Documentation](#-documentation)\n- [Contributing](#-contributing)\n\n\u003c/details\u003e\n\n---\n\n## Vstorm OSS Ecosystem\n\nThis template is part of a broader open-source ecosystem for production AI agents:\n\n| Project | Description | |\n|---------|-------------|---|\n| **[pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents)** | The modular agent runtime for Python. Claude Code-style CLI with Docker sandbox, browser automation, multi-agent teams, and /improve. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-deepagents?style=flat\u0026logo=github\u0026color=yellow)](https://github.com/vstorm-co/pydantic-deepagents) |\n| **[pydantic-ai-shields](https://github.com/vstorm-co/pydantic-ai-shields)** | Drop-in guardrails for Pydantic AI agents. 5 infra + 5 content shields. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-shields?style=flat\u0026logo=github\u0026color=yellow)](https://github.com/vstorm-co/pydantic-ai-shields) |\n| **[pydantic-ai-subagents](https://github.com/vstorm-co/pydantic-ai-subagents)** | Declarative multi-agent orchestration with token tracking. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-subagents?style=flat\u0026logo=github\u0026color=yellow)](https://github.com/vstorm-co/pydantic-ai-subagents) |\n| **[summarization-pydantic-ai](https://github.com/vstorm-co/pydantic-ai-summarization)** | Smart context compression for long-running agents. | [![Stars](https://img.shields.io/github/stars/vstorm-co/summarization-pydantic-ai?style=flat\u0026logo=github\u0026color=yellow)](https://github.com/vstorm-co/summarization-pydantic-ai) |\n| **[pydantic-ai-backend](https://github.com/vstorm-co/pydantic-ai-backend)** | Sandboxed execution for AI agents. Docker + Daytona. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-backend?style=flat\u0026logo=github\u0026color=yellow)](https://github.com/vstorm-co/pydantic-ai-backend) |\n\n\u003e **Want the runtime behind this template's AI agents?** [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) powers the `deepagents` framework option — install it standalone with `curl -fsSL .../install.sh | bash`.\n\nBrowse all projects at [oss.vstorm.co](https://oss.vstorm.co)\n\n---\n\n## 🚀 Quick Start\n\n\u003e [!TIP]\n\u003e **Prefer a visual configurator?** Use the [Web Configurator](https://oss.vstorm.co/projects/full-stack-ai-agent-template/configurator/) to configure your project in the browser and download a ZIP — no CLI installation needed.\n\n### Installation\n\n```bash\n# pip\npip install fastapi-fullstack\n\n# uv (recommended)\nuv tool install fastapi-fullstack\n\n# pipx\npipx install fastapi-fullstack\n```\n\n### Create Your Project\n\n```bash\n# Interactive wizard (recommended — runs by default)\nfastapi-fullstack\n\n# Quick mode with options\nfastapi-fullstack create my_ai_app \\\n  --database postgresql \\\n  --frontend nextjs\n\n# Use presets for common setups\nfastapi-fullstack create my_ai_app --preset production   # Full production setup\nfastapi-fullstack create my_ai_app --preset ai-agent     # AI agent with streaming\n\n# Minimal project (no extras)\nfastapi-fullstack create my_ai_app --minimal\n```\n\n### Start Development (Docker — recommended)\n\nThe fastest way to get running — 2 commands:\n\n```bash\ncd my_ai_app\nmake docker-up       # Start backend + database + migrations + admin user\nmake docker-frontend # Start frontend\n```\n\n**Access:**\n\n- API: \u003chttp://localhost:8000\u003e\n- Docs: \u003chttp://localhost:8000/docs\u003e\n- Admin Panel: \u003chttp://localhost:8000/admin\u003e\n- Frontend: \u003chttp://localhost:3000\u003e\n\n\u003e [!TIP]\n\u003e That's it. Docker handles database setup, migrations, and admin user creation automatically.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eManual setup (without Docker)\u003c/b\u003e\u003c/summary\u003e\n\n#### 1. Install dependencies\n\n```bash\ncd my_ai_app\nmake install\n```\n\n\u003e [!NOTE]\n\u003e **Windows Users:** The `make` command requires GNU Make which is not available by default on Windows.\n\u003e Install via [Chocolatey](https://chocolatey.org/) (`choco install make`), use WSL, or run raw commands manually.\n\u003e Each generated project includes a \"Manual Commands Reference\" section in its README with all commands.\n\n#### 2. Start the database\n\n```bash\n# PostgreSQL (with Docker)\nmake docker-db\n```\n\n#### 3. Create and apply database migrations\n\n\u003e [!WARNING]\n\u003e Both commands are required! `db-migrate` creates the migration file, `db-upgrade` applies it to the database.\n\n```bash\n# Create initial migration (REQUIRED first time)\nmake db-migrate\n# Enter message: \"Initial migration\"\n\n# Apply migrations to create tables\nmake db-upgrade\n```\n\n#### 4. Create admin user\n\n```bash\nmake create-admin\n# Enter email and password when prompted\n```\n\n#### 5. Start the backend\n\n```bash\nmake run\n```\n\n#### 6. Start the frontend (new terminal)\n\n```bash\ncd frontend\nbun install\nbun dev\n```\n\n**Access:**\n\n- API: \u003chttp://localhost:8000\u003e\n- Docs: \u003chttp://localhost:8000/docs\u003e\n- Admin Panel: \u003chttp://localhost:8000/admin\u003e (login with admin user)\n- Frontend: \u003chttp://localhost:3000\u003e\n\n\u003c/details\u003e\n\n### Using the Project CLI\n\nEach generated project has a CLI named after your `project_slug`. For example, if you created `my_ai_app`:\n\n```bash\ncd backend\n\n# The CLI command is: uv run \u003cproject_slug\u003e \u003ccommand\u003e\nuv run my_ai_app server run --reload     # Start dev server\nuv run my_ai_app db migrate -m \"message\" # Create migration\nuv run my_ai_app db upgrade              # Apply migrations\nuv run my_ai_app user create-admin       # Create admin user\n```\n\nUse `make help` to see all available Makefile shortcuts.\n\n---\n\n## 🎬 Demo\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/app_start.gif\" alt=\"FastAPI Fullstack Generator Demo\"\u003e\n\u003c/p\u003e\n\n---\n\n## 📸 Screenshots\n\n### Landing Page \u0026 Login\n\n| Landing Page | Login |\n|:---:|:---:|\n| ![Landing Page](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/landingpage.png) | ![Login](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/login.png) |\n\n### Dashboard, Chat \u0026 RAG\n\n| Dashboard | Chat with RAG |\n|:---:|:---:|\n| ![Dashboard](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/dashboard.png) | ![Chat with RAG](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/chatwithrag.png) |\n| **Documents** | **Search** |\n| ![RAG Documents](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/ragdocuments.png) | ![RAG Search](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/ragsearch.png) |\n\n### Observability\n\n| Logfire (PydanticAI) | LangSmith (LangChain) |\n|:---:|:---:|\n| ![Logfire](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/logfire.png) | ![LangSmith](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/langsmith.png) |\n\n### Messaging Channels\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/telegram_icon.png\" width=\"40\" alt=\"Telegram\"\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/slack_icon.png\" width=\"40\" alt=\"Slack\"\u003e\n\u003c/p\u003e\n\n| Telegram Bot |\n|:---:|\n| ![Telegram](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/telegram.png) |\n\n### Admin, Monitoring \u0026 API\n\n| Celery Flower | SQLAdmin Panel |\n|:---:|:---:|\n| ![Flower](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/flower.png) | ![Admin](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/admin.png) |\n\n| API Documentation |\n|:---:|\n| ![API Docs](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/docs_2.png) |\n\n---\n\n## 🎯 Why This Template\n\nBuilding AI/LLM applications requires more than just an API wrapper. You need:\n\n- **Type-safe AI agents** with tool/function calling\n- **Real-time streaming** responses via WebSocket\n- **Conversation persistence** and history management\n- **Production infrastructure** - auth, rate limiting, observability\n- **Enterprise integrations** - background tasks, webhooks, admin panels\n\nThis template gives you all of that out of the box, with **20+ configurable integrations** so you can focus on building your AI product, not boilerplate.\n\n### Perfect For\n\n- 🤖 **AI Chatbots \u0026 Assistants** - PydanticAI or LangChain agents with streaming responses\n- 📊 **ML Applications** - Background task processing with Celery/Taskiq\n- 🏢 **Enterprise SaaS** - Full auth, admin panel, webhooks, and more\n- 🚀 **Startups** - Ship fast with production-ready infrastructure\n\n### AI-Agent Friendly\n\nGenerated projects include **CLAUDE.md** and **AGENTS.md** files optimized for AI coding assistants (Claude Code, Codex, Copilot, Cursor, Zed). Following [progressive disclosure](https://humanlayer.dev/blog/writing-a-good-claude-md) best practices - concise project overview with pointers to detailed docs when needed.\n\n---\n\n## ✨ Features\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://ai.pydantic.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/PydanticAI-E92063?logo=pydantic\u0026logoColor=white\" alt=\"PydanticAI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://python.langchain.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/LangChain-1C3C3C?logo=langchain\u0026logoColor=white\" alt=\"LangChain\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://langchain-ai.github.io/langgraph/\"\u003e\u003cimg src=\"https://img.shields.io/badge/LangGraph-005A9C?logo=langchain\u0026logoColor=white\" alt=\"LangGraph\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.crewai.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/CrewAI-FF6B35?logoColor=white\" alt=\"CrewAI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://milvus.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/Milvus-FF6B35?logoColor=white\" alt=\"Milvus\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://openai.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/OpenAI-412991?logo=openai\u0026logoColor=white\" alt=\"OpenAI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://anthropic.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/Anthropic-D4A373?logo=anthropic\u0026logoColor=white\" alt=\"Anthropic\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://ai.google.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/Gemini-4285F4?logo=google\u0026logoColor=white\" alt=\"Google Gemini\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://openrouter.ai\"\u003e\u003cimg src=\"https://img.shields.io/badge/OpenRouter-6366F1?logoColor=white\" alt=\"OpenRouter\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://fastapi.tiangolo.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/FastAPI-009688?logo=fastapi\u0026logoColor=white\" alt=\"FastAPI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://nextjs.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/Next.js_15-000000?logo=next.js\u0026logoColor=white\" alt=\"Next.js 15\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://react.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/React_19-61DAFB?logo=react\u0026logoColor=black\" alt=\"React 19\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.typescriptlang.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/TypeScript-3178C6?logo=typescript\u0026logoColor=white\" alt=\"TypeScript\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://tailwindcss.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/Tailwind_v4-06B6D4?logo=tailwindcss\u0026logoColor=white\" alt=\"Tailwind CSS\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.sqlalchemy.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/SQLAlchemy-D71F00?logo=sqlalchemy\u0026logoColor=white\" alt=\"SQLAlchemy\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.postgresql.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/PostgreSQL-4169E1?logo=postgresql\u0026logoColor=white\" alt=\"PostgreSQL\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.mongodb.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/MongoDB-47A248?logo=mongodb\u0026logoColor=white\" alt=\"MongoDB\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://redis.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/Redis-DC382D?logo=redis\u0026logoColor=white\" alt=\"Redis\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://milvus.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/Milvus-00A1EA?logoColor=white\" alt=\"Milvus\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://qdrant.tech\"\u003e\u003cimg src=\"https://img.shields.io/badge/Qdrant-FF6B6B?logoColor=white\" alt=\"Qdrant\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.trychroma.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/ChromaDB-FF6F61?logoColor=white\" alt=\"ChromaDB\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://docs.celeryq.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/Celery-37814A?logo=celery\u0026logoColor=white\" alt=\"Celery\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://logfire.pydantic.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/Logfire-E92063?logo=pydantic\u0026logoColor=white\" alt=\"Logfire\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://sentry.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sentry-362D59?logo=sentry\u0026logoColor=white\" alt=\"Sentry\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://prometheus.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/Prometheus-E6522C?logo=prometheus\u0026logoColor=white\" alt=\"Prometheus\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.docker.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/Docker-2496ED?logo=docker\u0026logoColor=white\" alt=\"Docker\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://kubernetes.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/Kubernetes-326CE5?logo=kubernetes\u0026logoColor=white\" alt=\"Kubernetes\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/features/actions\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub_Actions-2088FF?logo=githubactions\u0026logoColor=white\" alt=\"GitHub Actions\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://aws.amazon.com/s3/\"\u003e\u003cimg src=\"https://img.shields.io/badge/S3-569A31?logo=amazons3\u0026logoColor=white\" alt=\"S3\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n### 🤖 AI/LLM First\n\n- **6 AI Frameworks** - [PydanticAI](https://ai.pydantic.dev), [PydanticDeep](https://github.com/vstorm-co/pydantic-deep), [LangChain](https://python.langchain.com), [LangGraph](https://langchain-ai.github.io/langgraph/), [CrewAI](https://www.crewai.com), [DeepAgents](https://github.com/vstorm-co/pydantic-deepagents)\n- **4 LLM Providers** - OpenAI, Anthropic, Google Gemini, OpenRouter\n- **RAG** - Document ingestion, vector search, reranking (Milvus, Qdrant, ChromaDB, pgvector)\n- **WebSocket Streaming** - Real-time responses with full event access\n- **Messaging Channels** - Telegram and Slack multi-bot integration with polling, webhooks, per-thread sessions, group concurrency control\n- **Conversation Sharing** - Share conversations with users or via public links, admin conversation browser\n- **Conversation Persistence** - Save chat history to database\n- **Message Ratings** - Like/dislike responses with feedback, admin analytics\n- **Image Description** - Extract images from documents, describe via LLM vision\n- **Multimodal Embeddings** - Google Gemini embedding model (text + images)\n- **Document Sources** - Local files, API upload, Google Drive, S3/MinIO\n- **Sync Sources** - Configurable connectors (Google Drive, S3) with scheduled sync\n- **Observability** - Logfire for PydanticAI, LangSmith for LangChain/LangGraph/DeepAgents\n\n### ⚡ Backend (FastAPI)\n\n- **[FastAPI](https://fastapi.tiangolo.com)** + **[Pydantic v2](https://docs.pydantic.dev)** - High-performance async API\n- **Multiple Databases** - PostgreSQL (async), MongoDB (async), SQLite\n- **Authentication** - JWT + Refresh tokens, API Keys, OAuth2 (Google)\n- **Background Tasks** - Celery, Taskiq, or ARQ\n- **Django-style CLI** - Custom management commands with auto-discovery\n\n### 🎨 Frontend (Next.js 15)\n\n- **React 19** + **TypeScript** + **Tailwind CSS v4**\n- **AI Chat Interface** - WebSocket streaming, tool call visualization\n- **Authentication** - HTTP-only cookies, auto-refresh\n- **Dark Mode** + **i18n**\n\n### 🔌 20+ Enterprise Integrations\n\n| Category | Integrations |\n|----------|-------------|\n| **AI Frameworks** | PydanticAI, PydanticDeep, LangChain, LangGraph, CrewAI, DeepAgents |\n| **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter |\n| **RAG / Vector Stores** | Milvus, Qdrant, ChromaDB, pgvector |\n| **RAG Sources** | Local files, API upload, Google Drive, S3/MinIO, Sync Sources (configurable, scheduled) |\n| **Embeddings** | OpenAI, Voyage, Gemini (multimodal), SentenceTransformers |\n| **Caching \u0026 State** | Redis, fastapi-cache2 |\n| **Security** | Rate limiting, CORS, CSRF protection |\n| **Observability** | Logfire, LangSmith, Sentry, Prometheus |\n| **Admin** | SQLAdmin panel with auth |\n| **Collaboration** | Conversation sharing (direct + link), admin conversation browser |\n| **Messaging** | Telegram multi-bot (polling + webhook), Slack multi-bot (Events API + Socket Mode) |\n| **Events** | Webhooks, WebSockets |\n| **DevOps** | Docker, GitHub Actions, GitLab CI, Kubernetes |\n\n### 🗺️ Architecture Overview\n\n```\n┌──────────────────────────────────────────────────────────────────────────┐\n│                         FRONTEND  (Next.js 15)                           │\n│  Chat UI · Knowledge Base · Dashboard · Settings · Dark Mode · i18n      │\n└──────────────┬───────────────────────────────────────────┬───────────────┘\n               │  REST / WebSocket                         │  Vercel\n               ▼                                           ▼\n┌──────────────────────────────────────────────────────────────────────────┐\n│                         BACKEND  (FastAPI)                               │\n│                                                                          │\n│  ┌─────────────────────────────────────────────────────────────────┐     │\n│  │                     AI AGENTS                                   │     │\n│  │  PydanticAI · LangChain · LangGraph · CrewAI · DeepAgents       │     │\n│  │  ────────────────────────────────────────────────────────────   │     │\n│  │  Tools: datetime · web_search (Tavily) · search_knowledge_base  │     │\n│  │  Providers: OpenAI · Anthropic · Gemini · OpenRouter            │     │\n│  └─────────────────────────────────────────────────────────────────┘     │\n│                                                                          │\n│  ┌─────────────────────────────────────────────────────────────────┐     │\n│  │                     RAG PIPELINE                                │     │\n│  │                                                                 │     │\n│  │  Sources        Parse           Chunk          Embed            │     │\n│  │  ─────────      ──────────      ──────────     ──────────────   │     │\n│  │  Local files    PyMuPDF         recursive      OpenAI           │     │\n│  │  API upload     LiteParse       markdown       Voyage           │     │\n│  │  Google Drive   LlamaParse      fixed          Gemini (multi)   │     │\n│  │  S3/MinIO       python-docx                    SentenceTransf.  │     │\n│  │  Sync Sources                                                   │     │\n│  │                                                                 │     │\n│  │  Store              Search              Rank                    │     │\n│  │  ──────────────     ──────────────      ──────────────          │     │\n│  │  Milvus             Vector similarity   Cohere reranker         │     │\n│  │  Qdrant             BM25 + vector RRF   CrossEncoder            │     │\n│  │  ChromaDB           Multi-collection                            │     │\n│  │  pgvector                                                       │     │\n│  └─────────────────────────────────────────────────────────────────┘     │\n│                                                                          │\n│  Auth (JWT/API Key/OAuth) · Rate Limiting · Webhooks · Admin Panel       │\n│  Background Tasks (Celery/Taskiq/ARQ) · Django-style CLI                 │\n│  Observability (Logfire/LangSmith/Sentry/Prometheus)                     │\n└───────┬──────────────┬──────────────┬──────────────┬─────────────────────┘\n        │              │              │              │\n        ▼              ▼              ▼              ▼\n   PostgreSQL       Redis         Vector DB      LLM APIs\n   MongoDB                        (Milvus/       (OpenAI/\n   SQLite                         Qdrant/        Anthropic/\n                                  ChromaDB/      Gemini)\n                                  pgvector)\n```\n\n---\n\n## 🏗️ Architecture\n\n```mermaid\ngraph TB\n    subgraph Frontend[\"Frontend (Next.js 15)\"]\n        UI[React Components]\n        WS[WebSocket Client]\n        Store[Zustand Stores]\n    end\n\n    subgraph Backend[\"Backend (FastAPI)\"]\n        API[API Routes]\n        Services[Services Layer]\n        Repos[Repositories]\n        Agent[AI Agent]\n    end\n\n    subgraph Infrastructure\n        DB[(PostgreSQL/MongoDB)]\n        Redis[(Redis)]\n        Queue[Celery/Taskiq]\n    end\n\n    subgraph External\n        LLM[OpenAI/Anthropic]\n        Webhook[Webhook Endpoints]\n    end\n\n    UI --\u003e API\n    WS \u003c--\u003e Agent\n    API --\u003e Services\n    Services --\u003e Repos\n    Services --\u003e Agent\n    Repos --\u003e DB\n    Agent --\u003e LLM\n    Services --\u003e Redis\n    Services --\u003e Queue\n    Services --\u003e Webhook\n```\n\n### Layered Architecture\n\nThe backend follows a clean **Repository + Service** pattern:\n\n```mermaid\ngraph LR\n    A[API Routes] --\u003e B[Services]\n    B --\u003e C[Repositories]\n    C --\u003e D[(Database)]\n\n    B --\u003e E[External APIs]\n    B --\u003e F[AI Agents]\n```\n\n| Layer | Responsibility |\n|-------|---------------|\n| **Routes** | HTTP handling, validation, auth |\n| **Services** | Business logic, orchestration |\n| **Repositories** | Data access, queries |\n\nSee [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) for details.\n\n---\n\n## 🤖 AI Agent\n\nChoose from **6 AI frameworks** and **4 LLM providers** when generating your project:\n\n```bash\n# PydanticAI with OpenAI (default)\nfastapi-fullstack create my_app --ai-framework pydantic_ai\n\n# LangGraph with Anthropic\nfastapi-fullstack create my_app --ai-framework langgraph --llm-provider anthropic\n\n# CrewAI with Google Gemini\nfastapi-fullstack create my_app --ai-framework crewai --llm-provider google\n\n# DeepAgents with OpenAI\nfastapi-fullstack create my_app --ai-framework deepagents\n\n# With RAG enabled\nfastapi-fullstack create my_app --rag --database postgresql --task-queue celery\n```\n\n### Supported Combinations\n\n| Framework | OpenAI | Anthropic | Gemini | OpenRouter |\n|-----------|:------:|:---------:|:------:|:----------:|\n| **PydanticAI** | ✓ | ✓ | ✓ | ✓ |\n| **PydanticDeep** | ✓ | ✓ | ✓ | - |\n| **LangChain** | ✓ | ✓ | ✓ | - |\n| **LangGraph** | ✓ | ✓ | ✓ | - |\n| **CrewAI** | ✓ | ✓ | ✓ | - |\n| **DeepAgents** | ✓ | ✓ | ✓ | - |\n\n### PydanticAI Integration\n\nType-safe agents with full dependency injection:\n\n```python\n# app/agents/assistant.py\nfrom pydantic_ai import Agent, RunContext\n\n@dataclass\nclass Deps:\n    user_id: str | None = None\n    db: AsyncSession | None = None\n\nagent = Agent[Deps, str](\n    model=\"openai:gpt-4o-mini\",\n    system_prompt=\"You are a helpful assistant.\",\n)\n\n@agent.tool\nasync def search_database(ctx: RunContext[Deps], query: str) -\u003e list[dict]:\n    \"\"\"Search the database for relevant information.\"\"\"\n    # Access user context and database via ctx.deps\n    ...\n```\n\n### LangChain Integration\n\nFlexible agents with LangGraph:\n\n```python\n# app/agents/langchain_assistant.py\nfrom langchain.tools import tool\nfrom langgraph.prebuilt import create_react_agent\n\n@tool\ndef search_database(query: str) -\u003e list[dict]:\n    \"\"\"Search the database for relevant information.\"\"\"\n    ...\n\nagent = create_react_agent(\n    model=ChatOpenAI(model=\"gpt-4o-mini\"),\n    tools=[search_database],\n    prompt=\"You are a helpful assistant.\",\n)\n```\n\n### WebSocket Streaming\n\nBoth frameworks use the same WebSocket endpoint with real-time streaming:\n\n```python\n@router.websocket(\"/ws\")\nasync def agent_ws(websocket: WebSocket):\n    await websocket.accept()\n\n    # Works with both PydanticAI and LangChain\n    async for event in agent.stream(user_input):\n        await websocket.send_json({\n            \"type\": \"text_delta\",\n            \"content\": event.content\n        })\n```\n\n### Observability\n\nEach framework has its own observability solution:\n\n| Framework | Observability | Dashboard |\n|-----------|--------------|-----------|\n| **PydanticAI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |\n| **LangChain** | [LangSmith](https://smith.langchain.com) | Traces, feedback, datasets |\n\nSee [AI Agent Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) for more.\n\n---\n\n## 📄 RAG (Retrieval-Augmented Generation)\n\nEnable RAG to give your AI agents access to a knowledge base built from your documents.\n\n### Vector Store Backends\n\n| Backend | Type | Docker Required | Best For |\n|---------|------|:---:|---------|\n| **Milvus** | Dedicated vector DB | Yes (3 services) | Production, large scale |\n| **Qdrant** | Dedicated vector DB | Yes (1 service) | Production, simple setup |\n| **ChromaDB** | Embedded / HTTP | No | Development, prototyping |\n| **pgvector** | PostgreSQL extension | No (uses existing PG) | Already have PostgreSQL |\n\n### Document Ingestion (CLI)\n\n```bash\n# Local files\nuv run my_app rag-ingest /path/to/document.pdf --collection docs\nuv run my_app rag-ingest /path/to/folder/ --recursive\n\n# Google Drive (service account)\nuv run my_app rag-sync-gdrive --collection docs --folder-id \u003cdrive_folder_id\u003e\n\n# S3/MinIO\nuv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket\n```\n\n### Embedding Providers\n\n| Provider | Model | Dimensions | Multimodal |\n|----------|-------|:---:|:---:|\n| **OpenAI** | text-embedding-3-small | 1536 | - |\n| **Voyage** | voyage-3 | 1024 | - |\n| **Gemini** | gemini-embedding-exp-03-07 | 3072 | Text + Images |\n| **SentenceTransformers** | all-MiniLM-L6-v2 | 384 | - |\n\n### Features\n\n- **Document parsing** - PDF (PyMuPDF with tables, headers/footers, OCR), DOCX, TXT, MD + 130+ formats via LlamaParse\n- **Image description** - Extract images from documents, describe via LLM vision API (opt-in)\n- **Chunking** - RecursiveCharacterTextSplitter with configurable size/overlap\n- **Reranking** - Cohere API or local CrossEncoder for improved search quality\n- **Agent integration** - All 6 AI frameworks get a `search_knowledge_base` tool automatically\n\n---\n\n## 📊 Observability\n\n### Logfire (for PydanticAI)\n\n[Logfire](https://logfire.pydantic.dev) provides complete observability for your application - from AI agents to database queries. Built by the Pydantic team, it offers first-class support for the entire Python ecosystem.\n\n```mermaid\ngraph LR\n    subgraph Your App\n        API[FastAPI]\n        Agent[PydanticAI]\n        DB[(Database)]\n        Cache[(Redis)]\n        Queue[Celery/Taskiq]\n        HTTP[HTTPX]\n    end\n\n    subgraph Logfire\n        Traces[Traces]\n        Metrics[Metrics]\n        Logs[Logs]\n    end\n\n    API --\u003e Traces\n    Agent --\u003e Traces\n    DB --\u003e Traces\n    Cache --\u003e Traces\n    Queue --\u003e Traces\n    HTTP --\u003e Traces\n```\n\n| Component | What You See |\n|-----------|-------------|\n| **PydanticAI** | Agent runs, tool calls, LLM requests, token usage, streaming events |\n| **FastAPI** | Request/response traces, latency, status codes, route performance |\n| **PostgreSQL/MongoDB** | Query execution time, slow queries, connection pool stats |\n| **Redis** | Cache hits/misses, command latency, key patterns |\n| **Celery/Taskiq** | Task execution, queue depth, worker performance |\n| **HTTPX** | External API calls, response times, error rates |\n\n### LangSmith (for LangChain)\n\n[LangSmith](https://smith.langchain.com) provides observability specifically designed for LangChain applications:\n\n| Feature | Description |\n|---------|-------------|\n| **Traces** | Full execution traces for agent runs and chains |\n| **Feedback** | Collect user feedback on agent responses |\n| **Datasets** | Build evaluation datasets from production data |\n| **Monitoring** | Track latency, errors, and token usage |\n\nLangSmith is automatically configured when you choose LangChain:\n\n```bash\n# .env\nLANGCHAIN_TRACING_V2=true\nLANGCHAIN_API_KEY=your-api-key\nLANGCHAIN_PROJECT=my_project\n```\n\n### Configuration\n\nEnable Logfire and select which components to instrument:\n\n```bash\nfastapi-fullstack new\n# ✓ Enable Logfire observability\n#   ✓ Instrument FastAPI\n#   ✓ Instrument Database\n#   ✓ Instrument Redis\n#   ✓ Instrument Celery\n#   ✓ Instrument HTTPX\n```\n\n### Usage\n\n```python\n# Automatic instrumentation in app/main.py\nimport logfire\n\nlogfire.configure()\nlogfire.instrument_fastapi(app)\nlogfire.instrument_asyncpg()\nlogfire.instrument_redis()\nlogfire.instrument_httpx()\n```\n\n```python\n# Manual spans for custom logic\nwith logfire.span(\"process_order\", order_id=order.id):\n    await validate_order(order)\n    await charge_payment(order)\n    await send_confirmation(order)\n```\n\nFor more details, see [Logfire Documentation](https://logfire.pydantic.dev/docs/integrations/).\n\n---\n\n## 🛠️ Django-style CLI\n\nEach generated project includes a powerful CLI inspired by Django's management commands:\n\n### Built-in Commands\n\n```bash\n# Server\nmy_app server run --reload\nmy_app server routes\n\n# Database (Alembic wrapper)\nmy_app db init\nmy_app db migrate -m \"Add users\"\nmy_app db upgrade\n\n# Users\nmy_app user create --email admin@example.com --superuser\nmy_app user list\n```\n\n### Custom Commands\n\nCreate your own commands with auto-discovery:\n\n```python\n# app/commands/seed.py\nfrom app.commands import command, success, error\nimport click\n\n@command(\"seed\", help=\"Seed database with test data\")\n@click.option(\"--count\", \"-c\", default=10, type=int)\n@click.option(\"--dry-run\", is_flag=True)\ndef seed_database(count: int, dry_run: bool):\n    \"\"\"Seed the database with sample data.\"\"\"\n    if dry_run:\n        info(f\"[DRY RUN] Would create {count} records\")\n        return\n\n    # Your logic here\n    success(f\"Created {count} records!\")\n```\n\nCommands are **automatically discovered** from `app/commands/` - just create a file and use the `@command` decorator.\n\n```bash\nmy_app cmd seed --count 100\nmy_app cmd seed --dry-run\n```\n\n---\n\n## 📁 Generated Project Structure\n\n```\nmy_project/\n├── backend/\n│   ├── app/\n│   │   ├── main.py              # FastAPI app with lifespan\n│   │   ├── api/\n│   │   │   ├── routes/v1/       # Versioned API endpoints\n│   │   │   ├── deps.py          # Dependency injection\n│   │   │   └── router.py        # Route aggregation\n│   │   ├── core/                # Config, security, middleware\n│   │   ├── db/models/           # SQLAlchemy/MongoDB models\n│   │   ├── schemas/             # Pydantic schemas\n│   │   ├── repositories/        # Data access layer\n│   │   ├── services/            # Business logic\n│   │   ├── agents/              # AI agents with centralized prompts\n│   │   ├── rag/                 # RAG module (vector store, embeddings, ingestion)\n│   │   ├── commands/            # Django-style CLI commands\n│   │   └── worker/              # Background tasks\n│   ├── cli/                     # Project CLI\n│   ├── tests/                   # pytest test suite\n│   └── alembic/                 # Database migrations\n├── frontend/\n│   ├── src/\n│   │   ├── app/                 # Next.js App Router\n│   │   ├── components/          # React components\n│   │   ├── hooks/               # useChat, useWebSocket, etc.\n│   │   └── stores/              # Zustand state management\n│   └── e2e/                     # Playwright tests\n├── docker-compose.yml\n├── Makefile\n└── README.md\n```\n\nGenerated projects include version metadata in `pyproject.toml` for tracking:\n\n```toml\n[tool.fastapi-fullstack]\ngenerator_version = \"0.1.5\"\ngenerated_at = \"2024-12-21T10:30:00+00:00\"\n```\n\n---\n\n## ⚙️ Configuration Options\n\n### Core Options\n\n| Option | Values | Description |\n|--------|--------|-------------|\n| **Database** | `postgresql`, `mongodb`, `sqlite`, `none` | Async by default |\n| **ORM** | `sqlalchemy`, `sqlmodel` | SQLModel for simplified syntax |\n| **Auth** | `jwt`, `api_key`, `both`, `none` | JWT includes user management |\n| **OAuth** | `none`, `google` | Social login |\n| **AI Framework** | `pydantic_ai`, `langchain`, `langgraph`, `crewai`, `deepagents` | Choose your AI agent framework |\n| **LLM Provider** | `openai`, `anthropic`, `google`, `openrouter` | OpenRouter only with PydanticAI |\n| **RAG** | `--rag` | Enable RAG with vector database |\n| **Vector Store** | `milvus`, `qdrant`, `chromadb`, `pgvector` | pgvector uses existing PostgreSQL |\n| **Background Tasks** | `none`, `celery`, `taskiq`, `arq` | Distributed queues |\n| **Frontend** | `none`, `nextjs` | Next.js 15 + React 19 |\n\n### Presets\n\n| Preset | Description |\n|--------|-------------|\n| `--preset production` | Full production setup with Redis, Sentry, Kubernetes, Prometheus |\n| `--preset ai-agent` | AI agent with WebSocket streaming and conversation persistence |\n| `--minimal` | Minimal project with no extras |\n\n### Integrations\n\nSelect what you need:\n\n```bash\nfastapi-fullstack new\n# ✓ Redis (caching/sessions)\n# ✓ Rate limiting (slowapi)\n# ✓ Pagination (fastapi-pagination)\n# ✓ Admin Panel (SQLAdmin)\n# ✓ AI Agent (PydanticAI or LangChain)\n# ✓ Webhooks\n# ✓ Sentry\n# ✓ Logfire / LangSmith\n# ✓ Prometheus\n# ... and more\n```\n\n---\n\n## 🔄 Comparison\n\n### vs. Manual Setup\n\nSetting up a production AI agent stack manually means wiring together 10+ tools yourself:\n\n```bash\n# Without this template, you'd need to manually:\n# 1. Set up FastAPI project structure\n# 2. Configure SQLAlchemy + Alembic migrations\n# 3. Implement JWT auth with refresh tokens\n# 4. Build WebSocket streaming for AI responses\n# 5. Integrate PydanticAI/LangChain with tool calling\n# 6. Set up RAG pipeline (parsing, chunking, embedding, vector store)\n# 7. Configure Celery + Redis for background tasks\n# 8. Build Next.js frontend with auth and chat UI\n# 9. Write Docker Compose for all services\n# 10. Add observability, rate limiting, admin panel...\n\n# With this template:\npip install fastapi-fullstack\nfastapi-fullstack\n# Done. All of the above, configured and working.\n```\n\n### vs. Alternatives\n\n| Feature | **This Template** | [full-stack-fastapi-template](https://github.com/fastapi/full-stack-fastapi-template) | [create-t3-app](https://github.com/t3-oss/create-t3-app) |\n|---------|:-:|:-:|:-:|\n| **AI Agents** (5 frameworks) | ✅ | ❌ | ❌ |\n| **RAG Pipeline** (4 vector stores) | ✅ | ❌ | ❌ |\n| **WebSocket Streaming** | ✅ | ❌ | ❌ |\n| **Conversation Persistence** | ✅ | ❌ | ❌ |\n| **LLM Observability** (Logfire/LangSmith) | ✅ | ❌ | ❌ |\n| **FastAPI Backend** | ✅ | ✅ | ❌ |\n| **Next.js Frontend** | ✅ (v15) | ❌ | ✅ |\n| **JWT + OAuth Authentication** | ✅ | ✅ | ✅ (NextAuth) |\n| **Background Tasks** (Celery/Taskiq/ARQ) | ✅ | ✅ (Celery) | ❌ |\n| **Admin Panel** | ✅ (SQLAdmin) | ❌ | ❌ |\n| **Multiple Databases** (PG/Mongo/SQLite) | ✅ | PostgreSQL only | Prisma |\n| **Docker + K8s** | ✅ | ✅ | ❌ |\n| **Interactive CLI Wizard** | ✅ | ❌ | ✅ |\n| **Django-style Commands** | ✅ | ❌ | ❌ |\n| **Document Sources** (GDrive, S3, API) | ✅ | ❌ | ❌ |\n| **AI-Agent Friendly** (CLAUDE.md) | ✅ | ❌ | ❌ |\n\n---\n\n## ❓ FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eHow is this different from full-stack-fastapi-template?\u003c/b\u003e\u003c/summary\u003e\n\n[full-stack-fastapi-template](https://github.com/fastapi/full-stack-fastapi-template) by @tiangolo is a great starting point for FastAPI projects, but it focuses on traditional web apps. This template is purpose-built for **AI/LLM applications** — it adds AI agents (5 frameworks), RAG with 4 vector stores, WebSocket streaming, conversation persistence, LLM observability, and a Next.js chat UI out of the box.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCan I use this without AI/LLM features?\u003c/b\u003e\u003c/summary\u003e\n\nYes. The AI agent and RAG modules are optional. You can use this as a pure FastAPI + Next.js template with auth, admin panel, background tasks, and all other infrastructure — just skip the AI framework selection during setup.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eWhat Python and Node.js versions are required?\u003c/b\u003e\u003c/summary\u003e\n\nPython 3.11+ and Node.js 18+ (for the Next.js frontend). We recommend using [uv](https://docs.astral.sh/uv/) for Python and [bun](https://bun.sh) for the frontend.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCan I add integrations after project generation?\u003c/b\u003e\u003c/summary\u003e\n\nThe generated project is plain code — no lock-in or runtime dependency on the generator. You can add, remove, or modify any integration manually. The template just gives you a well-structured starting point.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCan I use a different LLM provider than the one I selected?\u003c/b\u003e\u003c/summary\u003e\n\nYes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPENAI_API_KEY`, etc.). You can switch providers by changing the `.env` file and the model name — no code changes needed for PydanticAI (which supports all providers natively).\n\n\u003c/details\u003e\n\n---\n\n## 📚 Documentation\n\n| Document | Description |\n|----------|-------------|\n| [Architecture](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) | Repository + Service pattern, layered design |\n| [Frontend](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/frontend.md) | Next.js setup, auth, state management |\n| [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | PydanticAI, tools, WebSocket streaming |\n| [Observability](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/observability.md) | Logfire integration, tracing, metrics |\n| [Deployment](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/deployment.md) | Docker, Kubernetes, production setup |\n| [Development](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/development.md) | Local setup, testing, debugging |\n| [Changelog](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/CHANGELOG.md) | Version history and release notes |\n\n---\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template\u0026type=date\u0026legend=top-left)](https://www.star-history.com/#vstorm-co/full-stack-fastapi-nextjs-llm-template\u0026type=date\u0026legend=top-left)\n\n---\n\n## 🙏 Inspiration\n\nThis project is inspired by:\n\n- [full-stack-fastapi-template](https://github.com/fastapi/full-stack-fastapi-template) by @tiangolo\n- [fastapi-template](https://github.com/s3rius/fastapi-template) by @s3rius\n- [FastAPI Best Practices](https://github.com/zhanymkanov/fastapi-best-practices) by @zhanymkanov\n- Django's management commands system\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guide](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/CONTRIBUTING.md) for details.\n\n\u003ca href=\"https://github.com/vstorm-co/full-stack-ai-agent-template/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=vstorm-co/full-stack-ai-agent-template\" alt=\"Contributors\" /\u003e\n\u003c/a\u003e\n\n---\n\n## 📄 License\n\nMIT License - see [LICENSE](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE) for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### Need help implementing this in your company?\n\n\u003cp\u003eWe're \u003ca href=\"https://vstorm.co\"\u003e\u003cb\u003eVstorm\u003c/b\u003e\u003c/a\u003e — an Applied Agentic AI Engineering Consultancy\u003cbr\u003ewith 30+ production AI agent implementations.\u003c/p\u003e\n\n\u003ca href=\"https://vstorm.co/contact-us/\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Talk%20to%20us%20%E2%86%92-0066FF?style=for-the-badge\u0026logoColor=white\" alt=\"Talk to us\"\u003e\n\u003c/a\u003e\n\n\u003cbr\u003e\u003cbr\u003e\n\nMade with ❤️ by \u003ca href=\"https://vstorm.co\"\u003e\u003cb\u003eVstorm\u003c/b\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvstorm-co%2Ffull-stack-ai-agent-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvstorm-co%2Ffull-stack-ai-agent-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvstorm-co%2Ffull-stack-ai-agent-template/lists"}