Open Source Boilerplate

Lanza productos
no es plantilla

Monorepo TypeScript listo para producción con auth, base de datos, colas y todo lo que necesitas. Empieza a construir en minutos.

npx create-silverbullet-app
100%
TypeScript
25+
Packages
50+
Components
15+
Características

Stack tecnológico

Basado en herramientas probadas

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

Características

Todo lo que necesitas para crear

Módulos y funciones prediseñados para acelerar el desarrollo.

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
Notificaciones push
Delivery tracking
Templates

User Management

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

User profiles
Contact management
Activity logs
Preferencias

Monitoring & Logging

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

Error tracking
Performance monitoring
Structured logging
Alerts

Arquitectura

Escalable por diseño

Estructura monorepo con separación limpia y paquetes listos para microservicios.

Apps frontend

TanStack Start, React 19, SSR

Client AppAdmin DashboardComponent LibraryResponsive Design

API Gateway

Hono + tRPC, middleware, enrutamiento

tRPC RouterMiddleware StackAPI DocumentationRate Limiting

Paquetes de servicios

Auth, base de datos, caché, colas

25+ PackagesClean DependenciesEasy TestingMicroservice Ready

Experiencia de desarrollador

Type-safe desde la base de datos hasta la UI

Escribe la lógica backend una vez y obtén autocompletado y verificación de tipos en el frontend.

Backend — Ruta tRPCfile.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 — Componente Reactfile-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>;
}

Empieza a construir hoy

Evita meses de configuración. Obtén una base lista para producción en minutos.

npx create-silverbullet-app