Comprehensive Features

Everything you need to build production-ready full-stack applications with TypeScript

Core Features

Built-in capabilities that make development fast and enjoyable

🚀

Bun Runtime

Ultra-fast JavaScript runtime that's 3x faster than Node.js. Built-in TypeScript, bundler, and package manager.

  • • 3x faster than Node.js
  • • Native TypeScript support
  • • Built-in bundler & transpiler
  • • Hot module replacement

HonoX Framework

Full-stack framework with file-based routing and Hono JSX. Build complete apps with server-side rendering.

  • • File-based routing
  • • Server-side JSX rendering
  • • Type-safe from end to end
  • • Ultra-fast performance
🗃️

Drizzle ORM

Type-safe SQL ORM with first-class TypeScript support. Works with SQLite, PostgreSQL, and MySQL.

  • • Fully type-safe queries
  • • SQL-like syntax
  • • Migration system included
  • • Drizzle Studio GUI
📄

Hono JSX

Server-side rendering with JSX - NO React! Lightweight, fast, and type-safe component development.

  • • JSX syntax without React
  • • Server-side rendering
  • • Type-safe components
  • • Minimal bundle sizes
🎨

Tailwind CSS v4 + Basecoat UI

Modern utility-first CSS with beautiful shadcn/ui-inspired components. Best of both worlds.

  • • Tailwind v4 utilities
  • • Basecoat UI components
  • • Inter font typography
  • • Fully responsive
🔐

Built-in Authentication

JWT authentication with bcrypt password hashing, or integrate popular auth providers.

  • • Custom JWT + bcrypt
  • • Better Auth integration
  • • Auth.js support
  • • Auth0 integration
🎭

File-Based Routing

HonoX automatic routing - create .tsx files in app/routes/ and routes are generated automatically.

  • • Automatic route generation
  • • Dynamic route parameters
  • • Nested routing support
  • • Zero configuration

Global Layout System

HonoX jsxRenderer provides consistent layouts across all routes with customizable titles and metadata.

  • • Shared layout components
  • • Dynamic title management
  • • Meta tag injection
  • • Global styles & scripts
📦

Monorepo Structure

Organized workspace with separate server and client packages for clean code organization.

  • • Separate packages
  • • Shared type definitions
  • • Independent deployments
  • • Easy to scale

API Architecture Patterns

Choose the pattern that fits your project needs

DAPI

Direct API - Own Your Stack

Frontend → DAPI Routes → Database

Perfect for new applications where you control the entire stack. Direct database access via Drizzle ORM with all business logic in your TypeScript API.

✅ Best For:

  • • New application development
  • • Full-stack TypeScript projects
  • • MVPs and prototypes
  • • Small to medium applications
  • • When you own frontend & backend

Includes:

  • • Direct database queries
  • • Built-in caching (Redis)
  • • Background queues (BullMQ)
  • • Email integration
  • • Blob storage (S3)

BFF

Backend for Frontend

Frontend → BFF → Services → Backend API

Integrate with existing backends (C#, Java, Python, etc.). Service layer wraps HTTP calls to your real backend with bearer token forwarding.

✅ Best For:

  • • Existing backend integration
  • • Enterprise applications
  • • Microservices architecture
  • • Separate frontend/backend teams
  • • Multi-client backends

Features:

  • • Bearer token forwarding
  • • Data transformation for UI
  • • Multiple backend aggregation
  • • Response caching
  • • Error translation

Service Integrations

Choose the services you need - Docker containers auto-start with bun run dev

Redis Caching

In-memory caching with Redis or fallback to memory cache. Auto-starts on port 6379.

redis://localhost:6379
📬

BullMQ Queues

Background job processing for async tasks. Requires Redis. Perfect for emails and long-running tasks.

Auto-configured with Redis
🗂️

S3 Blob Storage

S3-compatible storage via MinIO. Auto-starts on ports 9000 (API) and 9001 (UI).

localhost:9000
📝

Pino Logging

Structured JSON logging for production apps. High-performance async logger with log levels.

info, warn, error, debug
📊

OpenTelemetry

Distributed tracing and metrics via Jaeger. Auto-starts UI on port 16686.

localhost:16686
📧

Email (SMTP)

MailHog for development SMTP testing. Resend, SendGrid, or custom SMTP for production.

localhost:8025 (UI)
🗄️

PostgreSQL

Production-ready relational database. Auto-starts on port 5432 with docker-compose.

localhost:5432
🐬

MySQL

Alternative production database. Auto-starts on port 3306 with docker-compose.

localhost:3306
💾

SQLite

File-based database perfect for development. No Docker needed - works out of the box.

file:local.db

🐳 Automatic Docker Management

When you run bun run dev, Docker containers for your selected services automatically start:

  • • Checks if Docker is running
  • • Starts only required services (based on your config)
  • • Waits for services to be ready
  • • Displays connection URLs and credentials
  • • Starts your application
  • • Gracefully handles Docker not being available

No manual Docker commands needed - everything just works! 🚀

Authentication Options

Multiple authentication strategies to choose from

🔑

Custom JWT

Built-in JWT with bcrypt. Full control over auth logic.

  • • JWT token generation
  • • bcrypt password hashing
  • • Token validation middleware
  • • 7-day expiration default

Better Auth

Modern auth library with OAuth providers.

  • • OAuth 2.0 support
  • • Social logins
  • • Session management
  • • Type-safe
🔐

Auth.js

NextAuth.js compatible authentication.

  • • 50+ OAuth providers
  • • Email/passwordless
  • • Database sessions
  • • Middleware support
🛡️

Auth0

Enterprise authentication service.

  • • Universal login
  • • Social connections
  • • MFA support
  • • Enterprise SSO

Database Support

Type-safe queries with Drizzle ORM for all major databases

💾

SQLite

Perfect for development and small projects. File-based, no server needed.

DB_URL=file:local.db
🐘

PostgreSQL

Production-ready relational database with advanced features.

DB_URL=postgresql://user:pass@host/db
🐬

MySQL

Popular alternative production database. Wide hosting support.

DB_URL=mysql://user:pass@host/db

✨ Drizzle ORM Features

Type Safety

Fully type-safe queries with TypeScript inference. Catch errors at compile time.

SQL-Like Syntax

Familiar SQL syntax with the power of TypeScript. Easy to learn.

Migrations

Automatic migration generation and execution. Track schema changes.

Drizzle Studio

Visual database browser and editor. Explore data with ease.

Deploy Anywhere

Production-ready deployment configurations included

🚁

Fly.io

fly.toml included

🚂

Railway

railway.json included

Vercel

vercel.json included

🎨

Render

render.yaml included

🐳

Docker

Dockerfile included

☁️

Cloudflare

Pages ready

🌐

Netlify

Static hosting

☁️

AWS

S3 + Lambda

🌊

DigitalOcean

App Platform

🏠

Self-Hosted

docker-compose

Start Building Today

All these features are just one command away