Stratal API Reference
    Preparing search index...

    Module stratal

    Stratal

    A modular framework for building Cloudflare Workers with dependency injection, OpenAPI documentation, queues, cron jobs, and more.

    npm version CI Benchmark License: MIT OpenSSF Scorecard Known Vulnerabilities npm downloads TypeScript Bundle size PRs Welcome GitHub stars

    Full guides and examples are available at stratal.dev. API reference lives at api-reference.stratal.dev.

    • Dependency Injection — Two-tier DI container (global + request-scoped) powered by tsyringe
    • OpenAPI Documentation — Define Zod schemas once and get a full OpenAPI 3.0 spec with interactive docs
    • Modular Architecture — NestJS-style modules with lifecycle hooks, dynamic configuration, and middleware
    • Hono Routing — Convention-based RESTful controllers with automatic HTTP method mapping
    • Queue Consumers — Typed Cloudflare Queue consumers with message-type filtering
    • Cron Jobs — Scheduled tasks via Cloudflare Workers cron triggers
    • Storage — S3-compatible file storage with presigned URLs and TUS upload support
    • Email — Resend and SMTP providers with React Email template support
    • i18n — Type-safe internationalization with locale detection from request headers
    • Guards and Middleware — Route protection and per-module middleware configuration

    Note: Stratal is in active development and APIs may change before v1. It is okay to use in projects, but consider pinning your dependency version so that a new patch does not break your existing code.

    Scaffold a new project from an official template:

    npm create stratal my-app
    # or
    yarn create stratal my-app
    # or
    pnpm create stratal my-app

    Available templates:

    Template Description Example
    hello-world A minimal Stratal app with a single GET endpoint Source
    crud-api RESTful notes API with full CRUD operations and DI Source
    testing Vitest + @stratal/testing with Cloudflare worker pool Source
    guards Route protection with @UseGuards and CanActivate Source
    middleware Middleware configuration with apply/exclude/forRoutes Source
    queues Queue producer/consumer pattern with Cloudflare Queues Source
    scheduled-tasks Cron job scheduling with the CronJob interface Source
    openapi OpenAPI docs with Swagger UI and Zod schema integration Source

    For benchmarks, see the main README.

    You can also specify a template directly:

    npm create stratal my-app -- -t crud-api
    

    Or add Stratal to an existing project:

    npm install stratal
    

    Stratal provides Agent Skills for AI coding assistants like Claude Code and Cursor. Install to give your AI agent knowledge of Stratal patterns, conventions, and APIs:

    npx skills add strataljs/stratal
    
    Skill Description
    stratal Build Cloudflare Workers apps with the Stratal framework — modules, DI, controllers, routing, OpenAPI, queues, cron, events, seeders, CLI, auth, database, RBAC, testing, and more

    Define a module with a controller and wire it up as a Cloudflare Worker:

    import { Stratal } from 'stratal'
    import { Module } from 'stratal/module'
    import { Controller, Route, type RouterContext } from 'stratal/router'
    import { z } from 'stratal/validation'

    // Define a controller
    @Controller('/api/greetings')
    class GreetingsController {
    @Route({
    summary: 'Say hello',
    response: z.object({ message: z.string() }),
    })
    async index(ctx: RouterContext) {
    return ctx.json({ message: 'Hello from Stratal!' })
    }
    }

    // Create the root module
    @Module({
    controllers: [GreetingsController],
    })
    class AppModule {}

    // Worker entry point
    export default new Stratal({ module: AppModule })

    Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

    MIT

    Classes

    Application
    Stratal

    Interfaces

    ApplicationConfig
    ApplicationOptions
    StratalEnv
    StratalExecutionContext

    Type Aliases

    Constructor