Core technologies
Bun
Fast all-in-one JavaScript runtime and toolkit
TypeScript
Type-safe JavaScript for the entire stack
Turborepo
High-performance monorepo build system
PostgreSQL
Powerful open-source relational database
Runtime
Bun
Version: 1.3.5Bun is a fast all-in-one JavaScript runtime and toolkit.
- Fast: 3-4x faster than Node.js for common operations
- Native TypeScript: Run
.tsfiles directly without transpilation - Built-in tools: Package manager, bundler, test runner all included
- Web-standard APIs: Uses
fetch,WebSocket, and other modern APIs - Drop-in Node.js replacement: Runs existing Node.js code
- Runtime for all applications
- Package manager (
bun install) - Bundler for production builds
- Task runner for development
Frontend
Next.js
Version: 16.1.1Website: nextjs.org Next.js powers the web application at
apps/web.
Features used:
- App Router: File-system based routing with layouts
- React Server Components: Server-side rendering by default
- Server Actions: Type-safe mutations without API routes
- Streaming: Progressive rendering for better UX
- Image Optimization: Automatic image optimization and lazy loading
next.config.js
React
Version: 19.2.3 React 19 introduces:- React Compiler (automatic memoization)
- Improved Suspense
- Server Components
- Server Actions
UI libraries
| Library | Purpose |
|---|---|
| shadcn/ui | Reusable component library |
| Tailwind CSS | Utility-first styling |
| @base-ui/react | Unstyled accessible components |
| D3.js | Graph visualization |
| Lucide React | Icon library |
| next-themes | Dark mode support |
Backend
Hono
Version: 4.8.2Website: hono.dev Hono is the lightweight web framework for
apps/server.
Why Hono?
- Fast: One of the fastest Node.js frameworks
- Lightweight: Minimal overhead
- Edge-ready: Runs on Cloudflare Workers, Deno, Bun
- Type-safe: Full TypeScript support
- Middleware ecosystem: Rich plugin system
apps/server/src/runtime.ts
tRPC
Version: 11.7.2Website: trpc.io tRPC provides end-to-end type-safe APIs. Why tRPC?
- End-to-end type safety: Types flow from server to client
- No codegen: Types derived directly from router
- Simple: Just TypeScript functions
- Framework agnostic: Works with Next.js, React, CLI
packages/api/src/index.ts
apps/web/lib/trpc.ts
The
AppRouter type is shared across all apps, ensuring type safety from server to client.Database
PostgreSQL
Version: 17 (local) or Neon (cloud)Website: postgresql.org PostgreSQL is the primary database. Why PostgreSQL?
- Reliable: Battle-tested for decades
- Feature-rich: JSON, full-text search, geospatial
- ACID compliant: Strong consistency guarantees
- Extensible: Rich ecosystem of extensions
- Development: Local PostgreSQL 17
- Production: Neon (serverless PostgreSQL with connection pooling)
Drizzle ORM
Version: 0.45.1Website: orm.drizzle.team Drizzle is the TypeScript ORM for Better Skills. Why Drizzle?
- TypeScript-first: Schema defined in TypeScript
- Lightweight: Minimal runtime overhead
- Type-safe queries: Full IntelliSense for queries
- SQL-like: Query builder resembles SQL
- Migrations: Built-in migration system
packages/db/src/schema/skills.ts
Neon
Website: neon.tech Neon provides serverless PostgreSQL for production. Features:- Serverless: Scales to zero
- Connection pooling: PgBouncer built-in
- Branching: Database branches for development
- Backups: Automated point-in-time recovery
Authentication
Better Auth
Version: 1.4.18Website: better-auth.com Better Auth handles authentication and user management. Why Better Auth?
- Type-safe: Full TypeScript support
- Flexible: Supports multiple providers
- Database-agnostic: Works with any database via adapters
- Secure: Built-in CSRF protection
packages/auth/src/index.ts
- Google OAuth
- GitHub OAuth
CLI
@clack/prompts
Website: github.com/natemoo-re/clack Clack powers the interactive CLI inapps/cli.
Features:
- Beautiful, accessible prompts
- Keyboard navigation
- Multi-select, text input, confirm
- Loading spinners
- Color output
apps/cli/src/index.ts
Build tools
Turborepo
Version: 2.6.3Website: turbo.build Turborepo orchestrates builds across the monorepo. Features:
- Intelligent caching: Never rebuild unchanged packages
- Parallel execution: Run tasks in parallel when possible
- Dependency awareness: Respects package dependencies
- Remote caching: Share cache across team (optional)
- Instant rebuilds when nothing changed
- Fast CI/CD pipelines
- Consistent builds across environments
Oxlint & Oxfmt
Versions: oxlint 1.41.0, oxfmt 0.26.0Website: oxc-project.github.io Ox tools provide fast linting and formatting. Why Ox?
- Fast: 50-100x faster than ESLint/Prettier
- No config needed: Sensible defaults
- Rust-powered: Built in Rust for performance
tsdown
Website: github.com/antfu/tsdown tsdown bundles the server for production. Usage:Development tools
TypeScript
Version: 5.xWebsite: typescriptlang.org All code is written in TypeScript for type safety. Configuration:
packages/config/tsconfig.json
Husky
Version: 9.1.7Website: typicode.github.io/husky Husky runs Git hooks for code quality. Hooks:
- pre-commit: Runs
oxlintandoxfmton staged files
lint-staged
Version: 16.1.2 lint-staged runs linters on staged files only. Configuration:package.json
Validation
Zod
Version: 4.1.13Website: zod.dev Zod validates data at runtime. Usage:
- Environment variable validation
- tRPC input validation
- Form validation
- API response validation
Markdown processing
gray-matter
Version: 4.0.3 Parses YAML frontmatter from markdown files. Usage:Version management
Dependency versions are managed through:- Catalog (root
package.json) - Shared versions - Package-specific - Unique dependencies
Tech stack summary
| Layer | Technology | Purpose |
|---|---|---|
| Runtime | Bun 1.3.5 | JavaScript runtime |
| Language | TypeScript 5 | Type safety |
| Web | Next.js 16 | Frontend framework |
| UI | React 19 | UI library |
| API | Hono 4.8 | Web framework |
| RPC | tRPC 11.7 | Type-safe API |
| Database | PostgreSQL 17 | Data storage |
| ORM | Drizzle 0.45 | Database queries |
| Auth | Better Auth 1.4 | Authentication |
| Build | Turborepo 2.6 | Monorepo builds |
| Lint | Oxlint 1.41 | Code linting |
| Format | Oxfmt 0.26 | Code formatting |
| CLI | @clack/prompts | Interactive CLI |
| Validation | Zod 4.1 | Runtime validation |
Philosophy
Better Skills technology choices follow these principles:Type safety everywhere
Type safety everywhere
From database schema to UI components, types flow through the entire stack.
Developer experience
Developer experience
Fast tools, great error messages, minimal configuration.
Performance
Performance
Choose fast tools: Bun, Hono, Drizzle, Ox, Turborepo.
Modern standards
Modern standards
Use Web APIs, ESM, async/await, and latest language features.
Minimal dependencies
Minimal dependencies
Only add dependencies that provide significant value.
Next steps
Development Setup
Get started with development
Architecture
Understand system architecture
Monorepo Structure
Learn about workspace organization
Database Setup
Configure your database