@repo/api package contains all tRPC routers, procedures, and context creation for the Better Uptime application.
Overview
This package exports:- tRPC router utilities (
router, procedures, context) - Domain-specific routers (user, website, status page)
- Type utilities for inputs/outputs
Exports
Frompackages/api/src/index.ts:
Creating Routers
Use the exportedrouter function to create new routers:
Context
The tRPC context includes authentication information:packages/api/src/trpc.ts
Procedures
publicProcedure
Used for endpoints that don’t require authentication:packages/api/src/routes/user.ts
protectedProcedure
Used for endpoints that require authentication. ThrowsUNAUTHORIZED if user is not authenticated:
packages/api/src/trpc.ts
Example Router: websiteRouter
ThewebsiteRouter demonstrates real usage patterns:
packages/api/src/routes/website.ts
Integration with Other Packages
The API package integrates with:- @repo/store - Prisma client for database operations
- @repo/clickhouse - Querying uptime status events
- @repo/streams - Publishing website checks to Redis
- @repo/validators - Input/output validation schemas
- @repo/config - Environment configuration
Example: Website Status Endpoint
Thewebsite.status endpoint demonstrates integration across packages:
packages/api/src/routes/website.ts
Location
packages/api/src/