{"id":23701004,"url":"https://github.com/lennetech/nuxt-base-starter","last_synced_at":"2026-04-18T13:02:33.583Z","repository":{"id":149072485,"uuid":"620322361","full_name":"lenneTech/nuxt-base-starter","owner":"lenneTech","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-04T13:35:13.000Z","size":6195,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-04T16:11:02.511Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","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/lenneTech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"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":null,"dco":null,"cla":null}},"created_at":"2023-03-28T13:07:22.000Z","updated_at":"2026-04-04T13:35:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"b939652f-cd62-4273-8716-dda3cbf0d5e7","html_url":"https://github.com/lenneTech/nuxt-base-starter","commit_stats":null,"previous_names":[],"tags_count":92,"template":false,"template_full_name":null,"purl":"pkg:github/lenneTech/nuxt-base-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lenneTech%2Fnuxt-base-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lenneTech%2Fnuxt-base-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lenneTech%2Fnuxt-base-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lenneTech%2Fnuxt-base-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lenneTech","download_url":"https://codeload.github.com/lenneTech/nuxt-base-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lenneTech%2Fnuxt-base-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31969772,"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":[],"created_at":"2024-12-30T09:31:26.779Z","updated_at":"2026-04-18T13:02:33.531Z","avatar_url":"https://github.com/lenneTech.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# create-nuxt-base\n\nA CLI tool to scaffold a production-ready **Nuxt 4** application with TypeScript, Tailwind CSS v4, NuxtUI v4, and modern tooling.\n\n## Quick Start\n\n```bash\nnpx create-nuxt-base my-awesome-project\ncd my-awesome-project\npnpm run dev\n```\n\nThe development server starts at **http://localhost:3001**\n\n## What's Included\n\n### Core Framework\n\n| Technology   | Version | Description                           |\n| ------------ | ------- | ------------------------------------- |\n| Nuxt         | 4.x     | Vue 3 meta-framework with SSR support |\n| TypeScript   | 5.9.x   | Strict type checking enabled          |\n| Tailwind CSS | 4.x     | Utility-first CSS with Vite plugin    |\n| NuxtUI       | 4.x     | Component library with dark mode      |\n\n### Authentication (Better Auth)\n\nComplete authentication system using [Better Auth](https://www.better-auth.com/):\n\n| Feature            | Description                                           |\n| ------------------ | ----------------------------------------------------- |\n| Email/Password     | Standard auth with client-side SHA256 hashing         |\n| Two-Factor (2FA)   | TOTP-based 2FA with backup codes                      |\n| Passkey/WebAuthn   | Passwordless authentication (Touch ID, Face ID, etc.) |\n| Password Reset     | Email-based password reset flow                       |\n| Session Management | SSR-compatible cookie-based sessions                  |\n\nPre-built auth pages: login, register, forgot-password, reset-password, 2fa\n\n📖 **See [AUTH.md](./AUTH.md) for detailed documentation**\n\n### State \u0026 Data\n\n| Package               | Purpose                     |\n| --------------------- | --------------------------- |\n| Pinia                 | State management            |\n| VueUse                | Vue composition utilities   |\n| @hey-api/client-fetch | Type-safe API client        |\n| Valibot               | Schema validation for forms |\n\n### SEO \u0026 Analytics\n\n- **@nuxtjs/seo** - Sitemap, robots.txt, OG images\n- **@nuxtjs/plausible** - Privacy-friendly analytics\n- **@nuxt/image** - Image optimization with IPX\n\n### Developer Experience\n\n| Tool               | Purpose                            |\n| ------------------ | ---------------------------------- |\n| OxLint             | Fast linting                       |\n| OxFmt              | Code formatting                    |\n| Playwright         | E2E testing                        |\n| @lenne.tech/bug.lt | Bug reporting to Linear (dev only) |\n| dayjs-nuxt         | Date/time handling                 |\n\n### File Upload\n\n- TUS resumable upload support (`tus-js-client`)\n- Pre-built `TusFileUpload.vue` component\n\n### Docker Support\n\n- `Dockerfile.dev` for containerized development\n- Hot reload enabled\n\n## Project Structure\n\n```\nmy-project/\n├── app/\n│   ├── assets/css/       # Tailwind CSS\n│   ├── components/       # Vue components (auto-imported)\n│   │   ├── Modal/        # Modal components\n│   │   ├── Transition/   # Transition components\n│   │   └── Upload/       # File upload components\n│   ├── composables/      # Composables (auto-imported)\n│   ├── interfaces/       # TypeScript interfaces\n│   ├── layouts/          # Nuxt layouts\n│   ├── lib/              # Auth client configuration\n│   ├── middleware/       # Route middleware (auth, admin, guest)\n│   ├── pages/            # File-based routing\n│   │   ├── auth/         # Authentication pages\n│   │   └── app/          # Protected app pages\n│   ├── utils/            # Utility functions\n│   └── app.config.ts     # NuxtUI configuration\n├── docs/                 # Dev-only documentation layer\n├── tests/                # Playwright E2E tests\n├── nuxt.config.ts        # Nuxt configuration\n├── openapi-ts.config.ts  # API type generation config\n└── playwright.config.ts  # E2E test configuration\n```\n\n## Available Scripts\n\n| Script                    | Description                            |\n| ------------------------- | -------------------------------------- |\n| `pnpm run dev`            | Start development server               |\n| `pnpm run build`          | Build for production                   |\n| `pnpm run preview`        | Preview production build               |\n| `pnpm run generate-types` | Generate TypeScript types from OpenAPI |\n| `pnpm run test`           | Run Playwright E2E tests               |\n| `pnpm run lint`           | Run OxLint                             |\n| `pnpm run format`         | Run OxFmt                              |\n| `pnpm run check`          | Run lint + format check                |\n| `pnpm run fix`            | Auto-fix lint + format issues          |\n\n## Environment Variables\n\nCreate a `.env` file based on `.env.example`:\n\n```env\n# Required\nSITE_URL=http://localhost:3001\nAPI_URL=http://localhost:3000\nAPP_ENV=development\nNODE_ENV=development\n\n# Optional\nWEB_PUSH_KEY=                # Web push notifications\nLINEAR_API_KEY=              # Bug reporting\nLINEAR_TEAM_NAME=            # Bug reporting\nLINEAR_PROJECT_NAME=         # Bug reporting\nSTORAGE_PREFIX=base-dev      # Local storage prefix\n```\n\n## Requirements\n\n- Node.js \u003e= 22\n- pnpm \u003e= 9\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flennetech%2Fnuxt-base-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flennetech%2Fnuxt-base-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flennetech%2Fnuxt-base-starter/lists"}