Open Source Boilerplate

Ship products
not boilerplate

Production-ready TypeScript monorepo with auth, database, queues, and everything you need. Start building in minutes.

npx create-silverbullet-app
100%
TypeScript
25+
Packages
50+
Components
15+
Features

Tech Stack

Built on proven tools

TanStack Start
Better Auth
tRPC
Drizzle ORM
PostgreSQL
Redis
Hono
BullMQ
Tailwind CSS
Turborepo
TypeScript

Features

Everything you need to build

Pre-built modules and features to accelerate your development process.

Authentication & Authorization

Complete auth system with session management, role-based access control, and social login.

Session management
OAuth providers
Role-based access
JWT tokens

Database & ORM

Type-safe database operations with Drizzle ORM, migrations, and PostgreSQL optimization.

Type-safe queries
Auto migrations
Relations
Connection pooling

API & Type Safety

End-to-end type safety with tRPC and seamless client-server communication.

End-to-end types
Auto completion
Runtime validation
API documentation

File Management

Complete file handling with S3 integration, image processing, and CDN support.

S3 integration
Image processing
Upload validation
CDN support

Background Jobs

Robust job processing with BullMQ, scheduled tasks, and retry logic.

Job queues
Scheduled tasks
Retry logic
Monitoring

Email & Notifications

Multi-channel notifications with email templates and delivery tracking.

Email templates
Push notifications
Delivery tracking
Templates

User Management

Complete user system with profiles, preferences, and activity tracking.

User profiles
Contact management
Activity logs
Preferences

Monitoring & Logging

Comprehensive monitoring with Sentry, structured logging, and performance tracking.

Error tracking
Performance monitoring
Structured logging
Alerts

Architecture

Scalable by design

Monorepo structure with clean separation of concerns and microservice-ready packages.

Frontend Apps

TanStack Start, React 19, SSR

Client AppAdmin DashboardComponent LibraryResponsive Design

API Gateway

Hono + tRPC, middleware, routing

tRPC RouterMiddleware StackAPI DocumentationRate Limiting

Service Packages

Auth, database, caching, queues

25+ PackagesClean DependenciesEasy TestingMicroservice Ready

Developer Experience

Type-safe from database to UI

Write backend logic once, get full autocompletion and type checking on the frontend.

Backend — tRPC Routefile.router.ts
import { router, authProcedure } from '@repo/trpc';
import {
  getFilesByUserIdPaginated,
  deleteFile,
  ListFilesPaginatedSchema
} from '@repo/file';
import { IdSchema } from '@repo/server-utils';

export const fileRouter = router({
  getMyFiles: authProcedure
    .input(ListFilesPaginatedSchema)
    .query(({ ctx, input }) => {
      return getFilesByUserIdPaginated(
        ctx.user.user.id, input
      );
    }),

  deleteFile: authProcedure
    .input(IdSchema)
    .mutation(({ ctx, input }) => {
      return deleteFile(input.id, ctx.user.user.id);
    }),
});
Frontend — React Componentfile-list.tsx
import { useTRPC } from '@/lib/trpc-client';
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';

export function FileList() {
  const trpc = useTRPC();
  const queryClient = useQueryClient();

  const { data: files } = useQuery(
    trpc.file.getMyFiles.queryOptions({
      pagination: { page: 1, limit: 10 }
    })
  );

  const { mutate: deleteFile } = useMutation(
    trpc.file.deleteFile.mutationOptions({
      onSuccess: () => {
        queryClient.invalidateQueries({
          queryKey: trpc.file.pathKey()
        });
      }
    })
  );

  return <div>{files?.data.length} files</div>;
}

Start building today

Skip months of setup. Get a production-ready foundation in minutes.

npx create-silverbullet-app