Open Source Boilerplate

Livrez des produits
pas un modèle

Monorepo TypeScript prêt pour la production avec auth, base de données, files d'attente et tout ce qu'il faut. Commencez à développer en minutes.

npx create-silverbullet-app
100%
TypeScript
25+
Packages
50+
Components
15+
Fonctionnalités

Stack technique

Construit sur des outils éprouvés

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

Fonctionnalités

Tout ce qu'il faut pour créer

Modules et fonctionnalités prêts à l'emploi pour accélérer le développement.

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

User Management

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

User profiles
Contact management
Activity logs
Préférences

Monitoring & Logging

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

Error tracking
Performance monitoring
Structured logging
Alerts

Architecture

Évolutif par conception

Structure monorepo avec séparation nette et packages prêts pour les microservices.

Applications frontend

TanStack Start, React 19, SSR

Client AppAdmin DashboardComponent LibraryResponsive Design

API Gateway

Hono + tRPC, middleware, routage

tRPC RouterMiddleware StackAPI DocumentationRate Limiting

Packages de services

Auth, base de données, cache, files d'attente

25+ PackagesClean DependenciesEasy TestingMicroservice Ready

Expérience développeur

Type-safe de la base de données à l'UI

Écrivez la logique backend une fois, obtenez l'autocomplétion et la vérification des types côté frontend.

Backend — Route 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 — Composant 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>;
}

Commencez aujourd'hui

Évitez des mois de configuration. Obtenez une base prête en minutes.

npx create-silverbullet-app