{"id":47233603,"url":"https://github.com/nokodo-labs/monorepo-template","last_synced_at":"2026-03-13T21:12:48.266Z","repository":{"id":321222374,"uuid":"1084823896","full_name":"nokodo-labs/monorepo-template","owner":"nokodo-labs","description":"Modern full-stack boilerplate: FastAPI + Svelte 5. Production-ready with multi-stage builds.","archived":false,"fork":false,"pushed_at":"2026-01-27T08:54:09.000Z","size":748,"stargazers_count":19,"open_issues_count":7,"forks_count":1,"subscribers_count":0,"default_branch":"dev","last_synced_at":"2026-01-27T20:59:41.581Z","etag":null,"topics":["docker","fastapi","fullstack","github-actions","monorepo","nginx","postgresql","production-ready","pydantic","python","ruff","sqlalchemy","svelte","sveltekit","tailwindcss","template","typescript","vite"],"latest_commit_sha":null,"homepage":"https://nokodo-labs.github.io/monorepo-template/","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nokodo-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"nokodo","buy_me_a_coffee":null}},"created_at":"2025-10-28T08:00:21.000Z","updated_at":"2026-01-27T08:52:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"9b788444-8e23-46ad-b3a8-ed0e4eaca9ba","html_url":"https://github.com/nokodo-labs/monorepo-template","commit_stats":null,"previous_names":["nokodo-labs/monorepo-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/nokodo-labs/monorepo-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokodo-labs%2Fmonorepo-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokodo-labs%2Fmonorepo-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokodo-labs%2Fmonorepo-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokodo-labs%2Fmonorepo-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nokodo-labs","download_url":"https://codeload.github.com/nokodo-labs/monorepo-template/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokodo-labs%2Fmonorepo-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30475848,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T20:45:58.186Z","status":"ssl_error","status_checked_at":"2026-03-13T20:45:20.133Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["docker","fastapi","fullstack","github-actions","monorepo","nginx","postgresql","production-ready","pydantic","python","ruff","sqlalchemy","svelte","sveltekit","tailwindcss","template","typescript","vite"],"created_at":"2026-03-13T21:12:47.615Z","updated_at":"2026-03-13T21:12:48.251Z","avatar_url":"https://github.com/nokodo-labs.png","language":"Svelte","funding_links":["https://ko-fi.com/nokodo"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://nokodo.net/media/images/logo_full.svg\" alt=\"nokodo logo\" width=\"320\" /\u003e\n\u003cdiv style=\"height:32px\"\u003e\u003c/div\u003e\n\n---\n\n\u003ch1\u003eMonorepo Template\u003c/h1\u003e\n\n**Modern \u0026 production-ready full-stack template that saves you weeks of setup: FastAPI backend + Svelte 5 frontend with containerization, full CI/CD, VS Code support, and AI integrations.**\n\n[![License](https://img.shields.io/github/license/nokodo-labs/monorepo-template)](LICENSE)\n[![Stars](https://img.shields.io/github/stars/nokodo-labs/monorepo-template?style=social)](https://github.com/nokodo-labs/monorepo-template/stargazers)\n[![Issues](https://img.shields.io/github/issues/nokodo-labs/monorepo-template)](https://github.com/nokodo-labs/monorepo-template/issues)\n[![Pull Requests](https://img.shields.io/github/issues-pr/nokodo-labs/monorepo-template)](https://github.com/nokodo-labs/monorepo-template/pulls)\n[![Python](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)\n[![Node](https://img.shields.io/badge/node-24+-green.svg)](https://nodejs.org/)\n\n\u003c/div\u003e\n\n## 🛠️ Stack\n\n-   **Backend**: FastAPI (Python 3.13+), SQLAlchemy 2.0+, Pydantic, PostgreSQL 17, Alembic, uv\n-   **Frontend**: Svelte 5, Vite 6, Tailwind 4, TypeScript, native fetch (zero HTTP deps)\n-   **Type Safety**: OpenAPI TypeScript generator (auto-sync backend → frontend types)\n-   **Dev**: VS Code (tasks, debugger, extensions), Ruff, pytest, AI instructions\n-   **Deploy**: Docker Compose with production configs\n\n## ✨ Features\n\n-   ⚡ **Opinionated by design**: Deliberate choices, cohesive stack, no decision fatigue\n-   🏗️ **Production infrastructure**: PostgreSQL 17, multi-stage Docker builds, Nginx configs\n-   🔒 **End-to-end type safety**: Python type hints → OpenAPI → auto-generated TypeScript types\n-   🤖 **Full CI/CD pipeline**: Automated testing, Docker builds, GHCR publishing, releases\n-   🧪 **Complete test setup**: pytest (backend) + Vitest (frontend) with fixtures and full coverage\n-   📐 **Modern code standards**: EditorConfig, Ruff, ESLint, Prettier pre-configured\n-   💾 **Persistent data storage**: Volume-mounted data directory\n-   🛠️ **VS Code integration**: Tasks, debugger configs, recommended extensions\n-   🤖 **AI agents ready**: Premade instructions \u0026 prompts with extensible patterns\n-   🎯 **Minimal boilerplate**: No business logic, just a working foundation\n-   🔮 **Future-proof stack**: Latest stable versions of everything, zero tech debt from day one\n\n## 🚀 Quick Start\n\n### 1️⃣ Create Your Repository\n\n-   Click **\"Use this template\"** on GitHub → Create your repo\n-   Clone your new repository locally\n\n### 2️⃣ Customize Project\n\nRename `backend/project_slug/` to your project name and update references. See [docs/setup.md](docs/setup.md#initial-customization-required) for detailed instructions.\n\n### 3️⃣ Start Development\n\n```bash\ncd .docker\ndocker compose up -d\n```\n\n**Your services:**\n\n-   Frontend: http://localhost\n-   Backend API: http://localhost:8000\n-   API Docs: http://localhost:8000/v1/docs\n\n\u003e 💡 **VS Code users**: Open the workspace to get tasks, debugger configs, and recommended extensions automatically.\n\n### 4️⃣ Deploy to Production\n\nCI/CD automatically builds and pushes Docker images to **GitHub Container Registry (GHCR)** on every commit. Images are tagged as:\n\n-   `ghcr.io/your-org/your-repo:latest` → production branch\n-   `ghcr.io/your-org/your-repo:dev` → dev branch\n-   `ghcr.io/your-org/your-repo:v1.2.3` → releases\n\n**Deploy with Docker:**\n\n```bash\n# Pull pre-built images and deploy\ndocker compose pull\ndocker compose up -d\n```\n\n\u003e 💡 **Tip**: See [docs/setup.md](docs/setup.md#production-deployment) for full deployment instructions and environment configuration.\n\n## 📁 Structure\n\n```\nbackend/\n├── api/                   # FastAPI application\n│   ├── api/v1/endpoints/  # Route handlers\n│   ├── core/              # Config, database\n│   ├── models/            # SQLAlchemy ORM\n│   ├── schemas/           # Pydantic validation\n│   ├── tests/             # API \u0026 ORM tests\n│   └── alembic/           # Database migrations\n├── project_slug/          # SDK/service layer (rename me!)\n│   └── tests/             # SDK unit tests (optional)\n├── tests/                 # E2E integration tests\n└── data/                  # Data storage (volume mounted)\n\nfrontend/\n├── src/\n│   ├── lib/               # Components\n│   └── main.ts            # Entry point\n└── nginx.conf             # Production server\n\n.docker/                   # Docker configs\n├── Dockerfile.backend     # Backend build\n├── Dockerfile.frontend    # Frontend build\n├── docker-compose.yml     # Production\n└── docker-compose.dev.yml # Development\n\n.github/                   # CI/CD, Dependabot, CODEOWNERS\n.vscode/                   # Editor config, tasks, debugger\ntools/release_please/      # Release automation config\n```\n\n### 🏗️ Architecture\n\n**Backend:**\n\n-   **`api/`**: FastAPI app, routes, ORM, database setup\n-   **`project_slug/`**: Business logic SDK that can be packaged separately for pip/uv/PyPI distribution\n-   **Testing**: 3 tiers (API tests in `api/tests/`, SDK tests in `project_slug/tests/`, E2E in `tests/`)\n-   **URLs**: `/v1/users` (no `/api` prefix - deploy on `api.yourdomain.com`)\n\n**Frontend:**\n\n-   **Native fetch** - Zero HTTP library dependencies, uses web standards\n-   **OpenAPI types** - Auto-generated TypeScript types from FastAPI schema\n-   **Type safety** - Backend changes = compile errors in frontend if incompatible\n\n## 📄 License\n\nBSD 3-Clause - See [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnokodo-labs%2Fmonorepo-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnokodo-labs%2Fmonorepo-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnokodo-labs%2Fmonorepo-template/lists"}