Skip to content

CercesType-Safe, Modern, and Intuitive.

Built on Web Standards and OpenAPI.

Cerces Logo

The Philosophy of Cerces

Cerces reimagines web framework development by embracing modern TypeScript patterns and web standards. Built from the ground up with type safety as a first-class citizen, Cerces eliminates entire categories of runtime errors while maintaining the flexibility and performance you expect from a modern framework.

Cerces embraces a philosophy where type safety is paramount, simplicity guides design, clean code is non-negotiable, and intuitive APIs make development an enjoyable experience. Every feature is crafted to eliminate complexity while maximizing expressiveness and reliability.

  • Type Safety First: End-to-end type checking prevents runtime errors
  • Simplicity: Complex problems solved with elegant, minimal APIs
  • Clean Architecture: Separation of concerns with reusable, composable components
  • Intuitive Design: APIs that feel natural and predictable to TypeScript developers

The Power of Type Safety

Traditional web frameworks leave type safety at the door. Cerces brings it center stage with comprehensive type checking that prevents runtime errors and accelerates development through intelligent IDE autocompletion.

Accelerated Development: Full TypeScript integration provides rich autocompletion for route parameters, dependency results, and API responses. Your IDE becomes a powerful assistant, suggesting valid options and catching errors before you run your code.

ts
// Route parameters are fully typed
app.get("/users/{id}", {
    parameters: {
        id: Path(z.string().uuid()), // Zod validation + TypeScript types
    },
    handle: ({ id }) => {
        // id is typed as string (UUID validated)
        return { userId: id }
    }
})
Typed Route ParametersTyped Route Parameters

Seamless OpenAPI Integration

API documentation shouldn't be an afterthought. Cerces generates OpenAPI schemas automatically from your Zod validators, providing:

  • Interactive Documentation: Swagger UI at /docs, ReDoc at /redoc
  • Type-Driven Schemas: Your TypeScript types become API documentation
  • Validation: Request/response validation using the same schemas

Swagger UI Docs

Powerful Dependency System

Cerces dependencies enable clean, reusable logic that can be shared across routes:

ts
const requireAuth = new Dependency({
    parameters: {
        authorization: Header(z.string()),
    },
    handle: async ({ authorization }) => {
        const user = await authenticateUser(authorization)
        if (!user) throw new JSONResponse({ detail: "Unauthorized" }, { status: 401 })
        return user
    }
})

app.get("/profile", {
    parameters: {
        user: Depends(requireAuth), // Authentication logic reused cleanly
    },
    handle: ({ user }) => {
        return { profile: user.profile }
    }
})

Why Choose Cerces?

For Startups: Rapid development with built-in type safety and documentation For Enterprises: Scalable architecture with clean, maintainable code For Developers: Intuitive APIs that leverage TypeScript's full power For Teams: Shared understanding through type-safe contracts and auto-generated docs

Cerces isn't just another framework—it's a commitment to type-safe, modern, and intuitive web development. Whether you're building APIs, microservices, or full-stack applications, Cerces provides the foundation to build with confidence and clarity.