npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

stratal

v0.0.10

Published

A modular Cloudflare Workers framework with dependency injection, queue-based events, and type-safe configuration

Readme

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

Documentation

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

Features

  • 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.

Installation

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 Scalar 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

AI Agent Skills

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

Quick Start

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 })

Contributing

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

License

MIT