← Back to archive

Repo of the Day

nile-js/nile

Published: Mar 2, 2026

Open repository ↗

TypeScript-first, service and action oriented backend framework.

Summary

Nile is a TypeScript-first backend framework organized around "actions" grouped into "services," replacing the conventional pattern of routes, controllers, and middleware chains. The monorepo publishes three packages on npm — the core framework, a CLI, and a zero-dependency frontend client — under the MIT license. The README notes this repository is a ground-up rewrite; the original code lives at the archived nile-squad/nile repository.

What it is useful for

Nile is aimed at engineers who want a backend where the API surface is derived from the action functions themselves, with built-in validation, error handling, and schema export. The core package (@nilejs/nile) bundles a server, engine, REST transport, logging, and CORS, so teams do not have to assemble these pieces separately. It is described as "service and action oriented" and grouped under the rpc topic, which makes it a fit for RPC-style APIs where each operation is a discrete function rather than a CRUD endpoint. The frontend client (@nilejs/client) is positioned as a standalone, zero-dependency, type-safe way to call those actions from a browser app, and the framework exports schemas alongside the API so the client can stay in sync.

How engineers can use it

The documented quick start scaffolds a new project and runs it with Bun:

npx @nilejs/cli new my-app
cd my-app && bun install && bun run dev

The reference project under packages/example shows a working Nile setup, and the documentation site (nile-js.github.io/nile) covers defining actions, configuring services, and using the client.

For working on the framework itself, the repository is a Bun workspaces monorepo. The documented commands are:

bun install
bun run --cwd packages/nile build
bun run --cwd packages/nile test:run
bun run --cwd packages/web build

A documented limitation: the README does not provide Node or npm equivalents for these commands, so engineers not on Bun will need to consult dev.md or the docs site. Contributions follow a standard fork-and-pull-request flow, and the project is MIT-licensed.