Skip to content

Latest commit

ย 

History

512 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

A minimal starter stack for ๐Ÿ๏ธ TanStack Start. โ†’ Preview here

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

Related templates

  • 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.

About

The Cove Stack: ๐Ÿ๏ธ minimal TanStack Start template with Vite+, Better Auth, Drizzle ORM, shadcn/ui

Topics

Resources

Stars

1.3k stars

Watchers

13 watching

Forks

Sponsor this project

Used by

Contributors

Languages