mugnavo/cove

The Cove Stack: 🏝️ minimal TanStack Start template with Vite+, Better Auth, Drizzle ORM, shadcn/ui

TypeScript

1,395

522 commits

updated Oct 8, 2026

See the code

README

Cove Stack

A minimal starter stack for 🏝️ TanStack Start. → Preview here

[!NOTE] TanStarter is now Cove Stack.

pnpm create cove

[!TIP] This template is also available as a monorepo, powered by Vite+ and pnpm workspaces. See mugnavo/cove-monorepo.

Getting Started

Prerequisites

Setup

  1. Use this template or create a project using our CLI:

    pnpm create cove
    
  2. Create a .env.local file with your values, based on .env.schema, then validate them:

    vpr env:load
    
  3. Generate the initial migration with drizzle-kit, then apply to your database:

    vpr db generate
    vpr db migrate
    

    https://orm.drizzle.team/docs/migrations

  4. Run the development server:

    vpr dev
    

    The development server should now be running at http://localhost:3000.

Environment variables

Varlock keeps the environment-variable contract in .env.schema and generates types from it. Put local values, including secrets, in the uncommitted .env.local, then run vpr env:load to validate them.

In application code, import { ENV } from "varlock/env" instead of reading process.env directly.

Logging

evlog is wired into the app through Nitro and emits one structured event per request. Add a drain when production needs logs sent to your chosen provider.

Deploying to production

Netlify Status

The vite config is configured to use Nitro by default, which supports many deployment presets like Netlify, Vercel, Node.js, and more.

Refer to the TanStack Start hosting docs for more information.

Issue watchlist

Goodies

Upgrading dependencies

Dependency versions are pinned, so they may be slightly outdated when you create your project. To selectively upgrade packages, run vpr deps or vpx taze@latest -Ilw --maturity-period 3.

Scripts

Check package.json for the full list of available scripts.

  • auth:generate - Regenerate the auth db schema if you've made changes to your Better Auth config.
  • db - Run drizzle-kit commands. (e.g. vpr db generate, vpr db studio)
  • ui - The shadcn/ui CLI. (e.g. vpr ui add button)
  • format, lint - Run Oxfmt and Oxlint, or both via vpr check.
  • deps - Selectively upgrade dependencies via taze.

Utilities

Testing

The testing foundation uses Vitest and Playwright and is intentionally lightweight. For short-lived prototypes, it can be safely ignored or removed.

  • vpr test (or Vite+'s built-in vp test) runs the Vitest unit and local integration tests once.
  • vpr test watch runs Vitest in watch mode.
  • vpr test:e2e builds the app and runs the Playwright end-to-end tests.

License

Code in this template is public domain via Unlicense. Feel free to remove or replace for your own project.

Ecosystem

  • mugnavo/cove-monorepo - A minimal monorepo version of this template, powered by Vite+ and pnpm workspaces.
  • tsu-moe/tsu-stack - An opinionated and batteries-included monorepo template from Luzefiru, built on cove-monorepo, with Paraglide.js (i18n), Hono, oRPC, and more.
better-auth
boilerplate
drizzle
postgresql
react
router
saas
shadcn
shadcn-ui
start
starter
starter-kit
tailwind
tailwindcss
tanstack
tanstack-router
tanstack-start
template
vite-plus
viteplus

mugnavo/cove

The Cove Stack: 🏝️ minimal TanStack Start template with Vite+, Better Auth, Drizzle ORM, shadcn/ui

TypeScript

1,395

522 commits

updated Oct 8, 2026

See the code

README

Cove Stack

A minimal starter stack for 🏝️ TanStack Start. → Preview here

[!NOTE] TanStarter is now Cove Stack.

pnpm create cove

[!TIP] This template is also available as a monorepo, powered by Vite+ and pnpm workspaces. See mugnavo/cove-monorepo.

Getting Started

Prerequisites

Setup

  1. Use this template or create a project using our CLI:

    pnpm create cove
    
  2. Create a .env.local file with your values, based on .env.schema, then validate them:

    vpr env:load
    
  3. Generate the initial migration with drizzle-kit, then apply to your database:

    vpr db generate
    vpr db migrate
    

    https://orm.drizzle.team/docs/migrations

  4. Run the development server:

    vpr dev
    

    The development server should now be running at http://localhost:3000.

Environment variables

Varlock keeps the environment-variable contract in .env.schema and generates types from it. Put local values, including secrets, in the uncommitted .env.local, then run vpr env:load to validate them.

In application code, import { ENV } from "varlock/env" instead of reading process.env directly.

Logging

evlog is wired into the app through Nitro and emits one structured event per request. Add a drain when production needs logs sent to your chosen provider.

Deploying to production

Netlify Status

The vite config is configured to use Nitro by default, which supports many deployment presets like Netlify, Vercel, Node.js, and more.

Refer to the TanStack Start hosting docs for more information.

Issue watchlist

Goodies

Upgrading dependencies

Dependency versions are pinned, so they may be slightly outdated when you create your project. To selectively upgrade packages, run vpr deps or vpx taze@latest -Ilw --maturity-period 3.

Scripts

Check package.json for the full list of available scripts.

  • auth:generate - Regenerate the auth db schema if you've made changes to your Better Auth config.
  • db - Run drizzle-kit commands. (e.g. vpr db generate, vpr db studio)
  • ui - The shadcn/ui CLI. (e.g. vpr ui add button)
  • format, lint - Run Oxfmt and Oxlint, or both via vpr check.
  • deps - Selectively upgrade dependencies via taze.

Utilities

Testing

The testing foundation uses Vitest and Playwright and is intentionally lightweight. For short-lived prototypes, it can be safely ignored or removed.

  • vpr test (or Vite+'s built-in vp test) runs the Vitest unit and local integration tests once.
  • vpr test watch runs Vitest in watch mode.
  • vpr test:e2e builds the app and runs the Playwright end-to-end tests.

License

Code in this template is public domain via Unlicense. Feel free to remove or replace for your own project.

Ecosystem

  • mugnavo/cove-monorepo - A minimal monorepo version of this template, powered by Vite+ and pnpm workspaces.
  • tsu-moe/tsu-stack - An opinionated and batteries-included monorepo template from Luzefiru, built on cove-monorepo, with Paraglide.js (i18n), Hono, oRPC, and more.
better-auth
boilerplate
drizzle
postgresql
react
router
saas
shadcn
shadcn-ui
start
starter
starter-kit
tailwind
tailwindcss
tanstack
tanstack-router
tanstack-start
template
vite-plus
viteplus

Significant stargazers

Amruth Pillai

1,989 followers · starred Oct 2025

Dennis Ameling

151 followers · starred Mar 2026

Phillip Barta

21 followers · starred May 2025

Kamran

72 followers · starred Jun 2025