{"id":33613127,"url":"https://github.com/alltuner/vibetuner","last_synced_at":"2026-04-08T16:02:53.912Z","repository":{"id":322236756,"uuid":"983549303","full_name":"alltuner/vibetuner","owner":"alltuner","description":"Production-ready FastAPI scaffolding — flexible databases (MongoDB, PostgreSQL, MySQL, SQLite), HTMX frontend, OAuth auth. Generate full-stack apps in seconds.","archived":false,"fork":false,"pushed_at":"2026-04-02T21:26:02.000Z","size":5803,"stargazers_count":11,"open_issues_count":9,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-02T23:36:50.816Z","etag":null,"topics":["beanie-odm","boilerplate","bun","copier-template","daisyui","devops","docker","fastapi","fullstack","htmx","i18n","mongodb","python","starterkit","tailwindcss","template"],"latest_commit_sha":null,"homepage":"https://vibetuner.alltuner.com/","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/alltuner.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":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":"alltuner","buy_me_a_coffee":"alltuner","custom":["https://alltuner.com/sponsor/"]}},"created_at":"2025-05-14T14:45:53.000Z","updated_at":"2026-04-02T11:07:40.000Z","dependencies_parsed_at":"2026-03-11T11:03:32.118Z","dependency_job_id":null,"html_url":"https://github.com/alltuner/vibetuner","commit_stats":null,"previous_names":["alltuner/vibetuner"],"tags_count":578,"template":false,"template_full_name":null,"purl":"pkg:github/alltuner/vibetuner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alltuner%2Fvibetuner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alltuner%2Fvibetuner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alltuner%2Fvibetuner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alltuner%2Fvibetuner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alltuner","download_url":"https://codeload.github.com/alltuner/vibetuner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alltuner%2Fvibetuner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31558456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T10:21:54.569Z","status":"ssl_error","status_checked_at":"2026-04-08T10:21:38.171Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["beanie-odm","boilerplate","bun","copier-template","daisyui","devops","docker","fastapi","fullstack","htmx","i18n","mongodb","python","starterkit","tailwindcss","template"],"created_at":"2025-12-01T01:02:45.160Z","updated_at":"2026-04-08T16:02:53.906Z","avatar_url":"https://github.com/alltuner.png","language":"Python","readme":"# Vibetuner\n\n## Production-ready FastAPI web application scaffolding in seconds\n\nVibetuner generates full-stack web applications with authentication, database,\nfrontend, Docker deployment, and CLI tools pre-configured.\n\nBuilt by [All Tuner Labs](https://www.alltuner.com) for rapid iteration and modern development.\n\n## ✨ What You Get\n\n### Option 1: Just add the package\n\n```bash\nuv add vibetuner\nvibetuner run dev\n# → Working app at http://localhost:8000\n```\n\n### Option 2: Full project scaffolding\n\n```bash\nuvx vibetuner scaffold new my-project\ncd my-project \u0026\u0026 just dev\n# → Full application with Docker, CI/CD, and more\n```\n\n**What vibetuner provides immediately (no scaffolding needed)**:\n\n- ✅ FastAPI backend with async support\n- ✅ OAuth + magic link authentication\n- ✅ Default templates and styles\n- ✅ Hot reload in development\n- ✅ Auto-discovery of your routes, models, and tasks\n\n**What scaffolding adds**:\n\n- ✅ **Flexible database**: MongoDB (Beanie) or SQL (SQLModel/SQLAlchemy)\n- ✅ HTMX reactive frontend\n- ✅ Tailwind CSS + DaisyUI styling\n- ✅ Docker dev/prod environments\n- ✅ Background jobs with Redis (optional)\n- ✅ i18n support\n- ✅ CI/CD workflows\n\n## 🚀 Quick Start\n\n### Installation\n\n**No installation needed** - use `uvx`:\n\n```bash\nuvx vibetuner scaffold new my-app\n```\n\nOr install globally:\n\n```bash\nuv tool install vibetuner\nvibetuner scaffold new my-app\n```\n\n### Your First Project\n\n```bash\n# Create project (interactive)\nuvx vibetuner scaffold new my-app\n\n# Or skip questions with defaults\nuvx vibetuner scaffold new my-app --defaults\n\n# Start developing\ncd my-app\njust dev              # Docker mode with hot reload\n```\n\nVisit `http://localhost:8000` - your app is running!\n\n## 🎯 Core Principles\n\n**Born from real needs** at [All Tuner Labs](https://alltuner.com) when spawning new projects:\n\n- **Simplicity**: Minimal boilerplate, clear conventions, obvious patterns\n- **Speed**: Sub-second hot reload, one command to start, fast iteration\n- **Modern Stack**: Latest stable versions, async-first, production-tested\n- **Assistant-Friendly**: Works great with Claude, Cursor, and other coding AI\n\n## 📦 Tech Stack\n\n### Backend\n\n- **[FastAPI](https://fastapi.tiangolo.com/)** - Modern async web framework\n- **[Granian](https://github.com/emmett-framework/granian)** - High-performance ASGI server\n\n### Database (choose your stack)\n\n- **[MongoDB](https://www.mongodb.com/)** + **[Beanie ODM](https://beanie-odm.dev/)** - Document database (optional)\n- **[SQLModel](https://sqlmodel.tiangolo.com/)** / **[SQLAlchemy](https://www.sqlalchemy.org/)** - SQL databases: PostgreSQL, MySQL, MariaDB, SQLite (optional)\n- **[Redis](https://redis.io/)** + **[Streaq](https://github.com/tastyware/streaq)** - Caching and background jobs (optional)\n\n### Frontend\n\n- **[HTMX](https://htmx.org/)** - Dynamic HTML without complex JavaScript\n- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework\n- **[DaisyUI](https://daisyui.com/)** - Beautiful Tailwind components\n- **[Jinja2](https://jinja.palletsprojects.com/)** - Template engine with i18n\n\n### DevOps\n\n- **[Docker](https://www.docker.com/)** - Multi-stage builds for dev/prod\n- **[uv](https://docs.astral.sh/uv/)** - Fast Python package management\n- **[bun](https://bun.sh/)** - Fast JavaScript tooling\n- **[just](https://just.systems/)** - Command runner\n\n### Why These Choices?\n\n**FastAPI**: Async-first, automatic API docs, Pydantic validation, type hints everywhere.\n\n**Flexible databases**: Start with MongoDB for rapid prototyping, or use PostgreSQL/MySQL/SQLite\nwith SQLModel for relational data. Both are optional - use what fits your project.\n\n**HTMX over React/Vue**: Simplicity wins. Server-rendered HTML with sprinkles\nof interactivity. Less complexity, faster development, easier to reason about.\n\n**Tailwind + DaisyUI**: Utility-first CSS is fast once you learn it. DaisyUI\nprovides components without JavaScript bloat.\n\n**Docker-first**: Consistent environments, easy deployment, no \"works on my\nmachine\" problems.\n\n**uv + bun**: Speed matters. Both are order-of-magnitude faster than pip/npm.\nFast lockfiles, fast installs, fast everything.\n\n## 💻 Development\n\n### Local Development\n\n```bash\njust local-all        # Runs server + assets with auto-port (recommended)\n```\n\n### Docker Development\n\n```bash\njust dev              # All-in-one with hot reload\njust worker-dev       # Background worker (if enabled)\n```\n\n### Common Commands\n\n```bash\njust install-deps     # Install dependencies from lockfiles\njust format           # Format code\njust test-build-prod  # Test production build locally\n```\n\n## 🏗️ Project Structure\n\nThe `vibetuner` package is installed as a dependency. Your application code lives under `src/`\nin a directory named after your project slug (shown as `app` below):\n\n```text\nmy-app/\n├── src/app/                # Your application code (you create this)\n│   ├── config.py           # App configuration (optional)\n│   ├── cli/                # Your CLI commands (auto-discovered)\n│   ├── frontend/           # Your web routes\n│   │   └── routes/        # (auto-discovered)\n│   ├── models/             # Your database models (auto-discovered)\n│   ├── services/           # Your business logic\n│   └── tasks/              # Your background jobs (auto-discovered)\n├── templates/              # Jinja2 templates\n│   ├── frontend/           # Web templates (override defaults)\n│   ├── email/              # Email templates\n│   └── markdown/           # Markdown templates\n├── assets/statics/         # Static files (css, js, img, fonts)\n├── locales/                # i18n translation files\n└── Dockerfile              # Production deployment\n```\n\n**vibetuner** (installed package) handles auth, database, email, auto-discovery, and more.\nYour code goes in `src/\u003cyour_package\u003e/` (scaffolded projects). No boilerplate `__init__.py`\nfiles needed.\n\n**Flexible project structures**: The framework auto-discovers code from your package directory.\nScaffolded projects use `src/\u003cproject_slug\u003e/`; non-scaffolded projects can use any structure.\n\n## 🔐 Authentication\n\nBuilt-in authentication with zero config:\n\n- **OAuth**: Google, GitHub, and more via Authlib\n- **Magic Links**: Passwordless email authentication\n- **Sessions**: Secure cookie-based sessions\n- **Extensible**: Add providers or custom auth easily\n\n## 🌍 Internationalization\n\nFull i18n support:\n\n```bash\njust extract-translations    # Extract strings\njust compile-locales         # Compile translations\n```\n\n```jinja\n{% trans %}Welcome to {{ app_name }}{% endtrans %}\n```\n\n## 🐳 Deployment\n\n### Docker Production\n\n```bash\njust test-build-prod    # Test locally\njust release            # Build and push\n```\n\n### Configuration\n\nEnvironment variables via `.env`:\n\n```bash\n# MongoDB (optional)\nMONGODB_URL=mongodb://localhost:27017/mydb\n\n# SQL database (optional) - PostgreSQL, MySQL, or SQLite\nDATABASE_URL=postgresql+asyncpg://user:pass@localhost/mydb\n# DATABASE_URL=sqlite+aiosqlite:///./data.db\n\n# Redis for background jobs (optional)\nREDIS_URL=redis://localhost:6379\n\nSECRET_KEY=your-secret-key\n```\n\n## 📚 Documentation\n\n- **[Development Guide](vibetuner-docs/docs/development-guide.md)** – Daily workflow for generated projects\n- **[CLI Reference](vibetuner-docs/docs/cli-reference.md)** – Usage for `vibetuner scaffold` and `vibetuner run`\n- **[Scaffolding Reference](vibetuner-docs/docs/scaffolding.md)** – Copier prompts and update commands\n- **[Changelog](vibetuner-docs/docs/changelog.md)** – Version history and release notes\n- **[Contributing](./CONTRIBUTING.md)** – Contribution guidelines\n- **[Assistant Guidance](./CLAUDE.md)** – Tips for AI coding partners\n\n## 📦 Packages\n\nVibetuner consists of three packages:\n\n| Package | Description | Published |\n|---------|-------------|-----------|\n| [`vibetuner`](https://pypi.org/project/vibetuner/) | Python framework | PyPI |\n| [`@alltuner/vibetuner`](https://www.npmjs.com/package/@alltuner/vibetuner) | Frontend dependencies | npm |\n| Scaffolding template | Copier template | GitHub |\n\nAll version-locked and tested together.\n\n## 🔄 Updating Projects\n\nUpdate existing projects to the latest template:\n\n```bash\ncd my-app\nvibetuner scaffold update\n```\n\n## 🤝 Contributing\n\nWe welcome contributions that align with our core principles! See [CONTRIBUTING.md](./CONTRIBUTING.md).\n\nBuilt for All Tuner Labs' internal needs, shared publicly because it might help you too.\n\n## 📄 License\n\nMIT License - Copyright (c) 2026 All Tuner Labs, S.L.\n\nSee [LICENSE](./LICENSE) for details.\n\n## 🔗 Links\n\n- **Repository**: \u003chttps://github.com/alltuner/vibetuner\u003e\n- **Changelog**: \u003chttps://github.com/alltuner/vibetuner/blob/main/CHANGELOG.md\u003e\n- **Issues**: \u003chttps://github.com/alltuner/vibetuner/issues\u003e\n- **PyPI**: \u003chttps://pypi.org/project/vibetuner/\u003e\n- **npm**: \u003chttps://www.npmjs.com/package/@alltuner/vibetuner\u003e\n\n## 👨‍💻 Credits\n\nCreated and maintained by [All Tuner Labs, S.L.](https://alltuner.com) and\nDavid Poblador i Garcia ([@davidpoblador](https://github.com/davidpoblador) |\n[davidpoblador.com](https://davidpoblador.com/))\n\n## Support the project\n\nVibetuner is an open source project built by [David Poblador i Garcia](https://davidpoblador.com/) through [All Tuner Labs](https://www.alltuner.com/).\n\nIf this project helped you ship faster or prototype with confidence, consider supporting its development.\n\n❤️ **Sponsor development**\nhttps://github.com/sponsors/alltuner\n\n☕ **One-time support**\nhttps://buymeacoffee.com/alltuner\n\nYour support helps fund the continued development of Vibetuner and other open source developer tools such as [Factory Floor](https://github.com/alltuner/factoryfloor).\n\n---\n\nMade with ❤️ for rapid prototyping and production deployments\n\n![All Tuner Labs](https://alltuner.com/statics/img/vibetuner-horizontal-logo.png)\n","funding_links":["https://github.com/sponsors/alltuner","https://buymeacoffee.com/alltuner","https://alltuner.com/sponsor/"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falltuner%2Fvibetuner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falltuner%2Fvibetuner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falltuner%2Fvibetuner/lists"}