Thirty

Built to keep you in flow, Thirty is the best way to organize your work and life.

Note: The main branch represents the latest reboot of the project (v3). You can still access previous versions at v1 and v2.

Tech Stack

  • Frontend: Svelte 5 (SvelteKit), TypeScript, Tailwind CSS, DaisyUI
  • Backend: SvelteKit Remote Functions, Drizzle ORM
  • Database: Cloudflare D1
  • Authentication: Better Auth
  • Caching & Queues: Cloudflare KV & Vectorize
  • Hosting & CDN: Cloudflare Workers & CDN
  • AI: OpenAI (via OpenRouter), Voyage vector embeddings
  • Payments: Polar

Getting Started

Prerequisites

  • Node.js v24+
  • pnpm v10+

Clone and Install

git clone https://github.com/thirtycalendar/thirty.git
cd thirty
pnpm install

Configure Environment

Copy the example environment file:

cp .env.example .env

Edit .env and fill in the required values:

  • BETTER_AUTH_SECRET (generate with openssl rand -hex 32)

See .env.example for all variables.

Prepare Hooks

pnpm husky

Initialize Database

pnpm db:push

Start development

pnpm dev

Visit http://localhost:5173.

Roadmap

WIP

Contributing

We welcome contributions! Please read our Contributing Guide for details on:

  • Commit conventions (Conventional Commits)
  • Branch naming
  • Pull request process

License

MIT License

Top categories

Loading Svelte Themes