{"id":28557776,"url":"https://github.com/yansircc/vinoflare","last_synced_at":"2025-10-08T04:45:30.624Z","repository":{"id":296219676,"uuid":"992186870","full_name":"yansircc/vinoflare","owner":"yansircc","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-06T13:11:14.000Z","size":1091,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-06T14:22:40.505Z","etag":null,"topics":["cloudfare","cloudflare-workers","hono","tanstack-form","tanstack-query","tanstack-router","vite"],"latest_commit_sha":null,"homepage":"https://vinoflare.yansir.workers.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yansircc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-05-28T18:51:50.000Z","updated_at":"2025-06-06T13:11:16.000Z","dependencies_parsed_at":"2025-06-03T02:46:41.964Z","dependency_job_id":null,"html_url":"https://github.com/yansircc/vinoflare","commit_stats":null,"previous_names":["yansircc/vinoflare"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yansircc%2Fvinoflare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yansircc%2Fvinoflare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yansircc%2Fvinoflare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yansircc%2Fvinoflare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yansircc","download_url":"https://codeload.github.com/yansircc/vinoflare/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yansircc%2Fvinoflare/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259033677,"owners_count":22795759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cloudfare","cloudflare-workers","hono","tanstack-form","tanstack-query","tanstack-router","vite"],"created_at":"2025-06-10T08:00:32.791Z","updated_at":"2025-10-08T04:45:30.605Z","avatar_url":"https://github.com/yansircc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# create-vinoflare\n\n🚀 A modern CLI tool for scaffolding full-stack TypeScript applications on Cloudflare Workers with Hono, React, and Vite.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/npm/v/create-vinoflare.svg\" alt=\"npm version\" /\u003e\n  \u003cimg src=\"https://img.shields.io/npm/dm/create-vinoflare.svg\" alt=\"npm downloads\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/yansircc/create-vinoflare.svg\" alt=\"license\" /\u003e\n\u003c/p\u003e\n\n## 🌟 Features\n\n- **🏗️ Multiple Templates**: Choose from 9 different configurations\n- **⚡ Lightning Fast**: Powered by Bun for ultra-fast installation\n- **🔧 Zero Config**: Works out of the box with sensible defaults\n- **📦 TypeScript First**: Full type safety from database to frontend\n- **🌐 Edge Native**: Built for Cloudflare Workers\n- **🎯 Interactive \u0026 Non-Interactive**: Use prompts or flags\n\n## 🚀 Quick Start\n\n```bash\n# Using npm\nnpm create vinoflare@latest my-app\n\n# Using bun\nbun create vinoflare my-app\n\n# Using pnpm\npnpm create vinoflare my-app\n\n# Using yarn\nyarn create vinoflare my-app\n```\n\n## 📋 Templates\n\nChoose from 9 pre-configured templates:\n\n### Full-Stack Templates (Orval/OpenAPI)\n| Template | Frontend | Database | Auth | API Client | Description |\n|----------|----------|----------|------|------------|-------------|\n| `full-stack` | ✅ React + TanStack Router | ✅ Cloudflare D1 | ✅ Better Auth | Orval | Complete full-stack app with OpenAPI client |\n| `full-stack --no-auth` | ✅ React + TanStack Router | ✅ Cloudflare D1 | ❌ | Orval | Full-stack app without auth |\n| `full-stack --no-db` | ✅ React + TanStack Router | ❌ | ❌ | Orval | Frontend with API, no database |\n\n### Full-Stack Templates (Hono RPC)\n| Template | Frontend | Database | Auth | API Client | Description |\n|----------|----------|----------|------|------------|-------------|\n| `full-stack --rpc` | ✅ React + TanStack Router | ✅ Cloudflare D1 | ✅ Better Auth | Hono RPC | Complete full-stack app with type-safe RPC |\n| `full-stack --rpc --no-auth` | ✅ React + TanStack Router | ✅ Cloudflare D1 | ❌ | Hono RPC | Full-stack app with RPC, no auth |\n| `full-stack --rpc --no-db` | ✅ React + TanStack Router | ❌ | ❌ | Hono RPC | Frontend with RPC API, no database |\n\n### API-Only Templates\n| Template | Frontend | Database | Auth | Description |\n|----------|----------|----------|------|-------------|\n| `api-only` | ❌ | ✅ Cloudflare D1 | ✅ Better Auth | REST API with auth and database |\n| `api-only --no-auth` | ❌ | ✅ Cloudflare D1 | ❌ | REST API with database, no auth |\n| `api-only --no-db` | ❌ | ❌ | ❌ | Stateless REST API |\n\n## 🎮 Interactive Mode\n\nSimply run the command without flags for an interactive experience:\n\n```bash\nnpm create vinoflare@latest\n```\n\nYou'll be prompted to:\n1. Enter your project name\n2. Choose between full-stack or API-only\n3. Select database preference\n4. Select auth preference (if database enabled)\n5. Choose API client type (Orval or Hono RPC, for full-stack only)\n6. Decide on git initialization\n7. Choose package manager\n\n## 🚦 Non-Interactive Mode\n\nPerfect for automation and CI/CD:\n\n```bash\n# Full-stack with all features\nnpm create vinoflare@latest my-app --yes\n\n# API-only without auth\nnpm create vinoflare@latest my-api --type=api-only --no-auth --yes\n\n# Full-stack without database\nnpm create vinoflare@latest my-frontend --type=full-stack --no-db --yes\n\n# With specific package manager\nnpm create vinoflare@latest my-app --pm=bun --yes\n\n# Full-stack with Hono RPC\nnpm create vinoflare@latest my-rpc-app --type=full-stack --rpc --yes\n```\n\n### Available Flags\n\n- `--type=\u003ctype\u003e` - Project type: `full-stack` (default) or `api-only`\n- `--rpc` - Use Hono RPC client instead of Orval (full-stack only)\n- `--no-auth` - Exclude authentication\n- `--no-db` - Exclude database\n- `--no-git` - Skip git initialization\n- `--no-install` - Skip dependency installation\n- `--pm=\u003cpm\u003e` - Package manager: `npm`, `yarn`, `pnpm`, or `bun`\n- `-y, --yes` - Accept all defaults (non-interactive mode)\n\n## 🛠️ What's Included\n\n### Full-Stack Templates\n- **Frontend**: React 19 + Vite + TanStack Router\n- **Styling**: Tailwind CSS v4\n- **API Client**: Choose between:\n  - **Orval**: OpenAPI-based client with auto-generated hooks\n  - **Hono RPC**: Type-safe RPC client with end-to-end type inference\n- **Type Safety**: End-to-end from DB to UI\n\n### API Templates\n- **Framework**: Hono on Cloudflare Workers\n- **Database**: Cloudflare D1 with Drizzle ORM\n- **Auth**: Better Auth with Discord OAuth\n- **API Docs**: Auto-generated OpenAPI with Scalar UI\n\n### Developer Experience\n- **Hot Reload**: Lightning-fast development\n- **Type Generation**: Automatic types for routes, API, and DB\n- **Testing**: Vitest with Cloudflare Workers support\n- **Linting**: Biome for fast, opinionated formatting\n- **Module Generator**: Scaffold CRUD modules instantly\n\n## 📚 Post-Installation\n\nAfter creating your project, you'll see tailored next steps:\n\n### For Database Projects\n```bash\ncd my-app\nnpm run db:generate    # Generate migrations\nnpm run db:push:local  # Apply to local DB\nnpm run gen:types      # Generate TypeScript types\n```\n\n### For Auth Projects\n1. Copy `.dev.vars.example` to `.dev.vars`\n2. Add your Discord OAuth credentials\n3. Set `BETTER_AUTH_SECRET`\n\n### For Frontend Projects\n```bash\nnpm run gen:routes  # Generate route types\n\n# For Orval templates:\nnpm run gen:api     # Generate OpenAPI client\n\n# For RPC templates:\nnpm run gen:client  # Generate RPC client\n```\n\n## 🔧 Development Workflow\n\n```bash\n# Start dev server\nnpm run dev\n\n# Generate a new module\nnpm run gen:module posts\n\n# Build for production\nnpm run build\n\n# Run tests\nnpm run test\n\n# Deploy to Cloudflare\nnpm run deploy\n```\n\n## 🧪 Testing\n\nThe CLI includes comprehensive test suites:\n\n```bash\n# Run tests sequentially\nnpm run test\n\n# Run tests in parallel (faster)\nnpm run test:parallel\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 📄 License\n\nMIT © [yansir](https://github.com/yansircc)\n\n## 🙏 Acknowledgments\n\nBuilt with and for the amazing Cloudflare Workers ecosystem:\n- [Hono](https://hono.dev) - Ultrafast web framework\n- [Drizzle](https://orm.drizzle.team) - TypeScript ORM\n- [Better Auth](https://better-auth.com) - Modern auth library\n- [TanStack Router](https://tanstack.com/router) - Type-safe routing\n\n---\n\n\u003cp align=\"center\"\u003eMade with ❤️ by the Vinoflare team\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyansircc%2Fvinoflare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyansircc%2Fvinoflare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyansircc%2Fvinoflare/lists"}