The runtime-portable TypeScript framework with supply-chain-aware defaults
Most backend code is now AI-written and shipped before anyone reviews it. DaloyJS makes the safe path the easy one: a secure-by-default runtime, blocked install scripts, source-verified lockfiles, a zero-runtime-dependency core, and an optional hardened GitHub Actions bundle for teams on GitHub.
Contract-first routing, Standard Schema validation, OpenAPI 3.1 with Hey API typed client codegen, streaming and OpenTelemetry tracing, edge-friendly sessions, a security-focused runtime by default, and a supply-chain-hardened release pipeline for the framework itself. One line on the App constructor, docs: true: auto-mounts a Scalar API reference at /docs and the live OpenAPI 3.1 spec at /openapi.json, the same DX as FastAPI.
ᜇᜎᜓᜌ᜔ Daloy means flow in Tagalog, pronounced da-loy. About the name
$ pnpm create daloy@latest my-apiWhy developers pick DaloyJS
The pitch is simple: keep the delightful parts of the modern web framework ecosystem, then move security and supply-chain posture from "later" to "already handled." That is the difference.
Hello, contract
One route, types, validation, OpenAPI, and the typed client all generated from it.
Why DaloyJS
The JS framework that is secure by default at the runtime layer, and ships create-daloy with pnpm install-time hardening and an optional hardened GitHub Actions bundle, so the app-safe pieces of the LLM-era supply-chain defense are on the happy path without giving up OpenAPI ergonomics, runtime portability, typed clients, or Node ops.
Competitor strengths, fewer tradeoffs
DaloyJS is not trying to win one checkbox. It is trying to remove the glue work between the best ideas developers already like.
Benchmarks
The numbers, with the asterisks attached
DaloyJS ships security on by default, so a fair comparison has to say so out loud. These charts come straight from the repo's own benchmark suite, and the caveats are part of the chart.
Transitive dependencies installed
Every package your install pulls in is attack surface someone has to trust. DaloyJS and Hono are the only two that bring zero.
What this means for you: Fewer packages to trust means fewer CVEs and no surprise postinstall scripts. Zero dependencies is zero supply-chain doors left open for an attacker.
Takeaway: DaloyJS installs 0 transitive dependencies, tied with Hono for the smallest supply-chain surface, while a secure NestJS app drags in 86.
Apple M3 Max · 16 cores · Node v25.7 · June 2026 · @daloyjs/core 1.0.0-beta.1 · source in bench/cross-framework
- Apples vs oranges, not apples to apples. These are different tools doing different amounts of work. On every request, DaloyJS validates the body against your Zod or Valibot schema and runs secure headers, a request ID, body-size limits, and request timeouts, all out of the box. The 'minimal' apps for the other frameworks do almost none of this, and even 'secure parity' rarely matches it one for one. So part of every DaloyJS number is security and validation you would otherwise have to build yourself.
- Footprint methodology differs: DaloyJS is one zero-dependency package, while the others resolve transitive trees whose exact size depends on when the lockfile was generated.
- Throughput is workload-shaped: with a comparable middleware stack on both sides, DaloyJS and Hono land within a handful of percent of each other (DaloyJS ~6% ahead on these GET routes). Real services are usually bound by database and I/O time, not framework dispatch, so these micro-numbers rarely predict production.
- Different target runtimes: some frameworks (e.g. Elysia) are tuned for Bun but are measured here under their Node adapters for a fair single-runtime baseline.
- Single machine, single moment: one Apple M3 Max, Node v25.7, June 2026, against @daloyjs/core 1.0.0-beta.1. Your hardware, runtime, and versions will move these numbers.
Support the project
If DaloyJS saves you time, you can buy me a coffee
DaloyJS is free and MIT-licensed. If the docs, posts, or the framework itself helped you ship something with a little less drama, coffee is a perfectly reasonable way to keep the work going.
Ready to ship, secure by default?
Scaffold a project in seconds with pnpm hardening when you choose pnpm, generated CI that blocks install scripts, pinned GitHub Actions, Dependabot, CODEOWNERS, and lockfile source verification. Then keep the contract as the app grows, the same app runs on Node, Bun, Deno, Cloudflare Workers, and Vercel.
For developers and AI agents
Read the docs over MCP
DaloyJS ships a public Model Context Protocol (MCP) endpoint, so your AI coding agent (Claude, Cursor, VS Code, and friends) can search and read these docs without copy and paste. It is read-only, needs no API key, and speaks the standard Streamable HTTP transport, so it works for humans and LLM agents alike.
https://daloyjs.dev/mcpsearch_docsKeyword search across every docs page, ranked by relevance.get_docRead the full text of one page by its route or slug.list_docsBrowse every available documentation page in one call.
Add it to your MCP client config
Using a stdio-only client? Bridge it with npx -y mcp-remote https://daloyjs.dev/mcp.