Battery included Nuxt based starter template for my projects. Created to get a great DX, UX and UI as fast as possible.
- 🛡️ Strongly-typed from database to UI components
- 🔐 Secure authentication system with flexible roles and permissions
- 📈 GDPR & CCPA compliant analytics
- 💸 Payment processing
- 🌍 i18n support
This project uses devbox to provide a consistent development environment. Make sure you have it installed before continuing.
Once you have devbox installed, run the following commands to get started:
# Enter devbox shell
> devbox shell
# Install package managers and dependencies
> pnpm install
# Init postgres and create dev database
> devbox run db:init
> devbox run db:up
> devbox run db:create
# Generate migrations (needed if you deleted .drizzle to reset the migrations)
> pnpm migration:generate
# Run migrations
> pnpm migration:run
# Start the app
> pnpm dev
# (Optional) Start Drizzle studio
> pnpm studio
To get the project running locally, you'll need to start the app and the database:
# Enter devbox shell
> devbox shell
# Start the database
> devbox run db:up
# Start the app
> pnpm dev
To stop the database, run:
> devbox services stop postgresql
Using drizzle as an ORM, we have a lot of tools to manage database migrations:
# Generate new migrations
pnpm migration:generate
# Drop existing migrations
pnpm migration:drop
# Pull migrations from database
pnpm migration:pull
# Run migrations
pnpm migration:run
TODO: Add deployment instructions