Server-side Dart framework · Laravel-inspired primitives

Build real web apps with Dart on the server.

Archery gives you a clean, batteries-included backend: Router, Middleware, Kernel, IoC container, and templating — designed for speed, clarity, and a single-language workflow.

dart:io
native server core
No magic
explicit primitives
Fast
low overhead
Full-stack
views + APIs

Peek inside

Routing, controllers, and server setup — straight Dart.

routes.dart
Archery router configuration example
Expressive routes + middleware pipelines.
controllers/
Archery controllers and actions overview
Controllers with flexible action returns.
server.dart
Archery server setup using dart:io
Native dart:io server, clean boot flow.

Quickstart

The smallest “I get it” example.

~60 seconds
    // routes.dart

    Router()

      ..get('/', (req) => req.view('welcome'))

      ..get('/health', (req) => req.json({'ok': true}))

      ..group(prefix: '/api', routes: () {
        r.get('/users/:id', (req) => req.json({'id': req.params.int('id')}));

      });
                

Get Archery updates

Release notes, screencast drops, and milestone progress. No spam.

Unsubscribe anytime.

Why Dart on the server?

If you already like Dart’s ergonomics, this is the missing piece: a backend that feels intentional.

  • One language. Share types, utilities, and tooling across CLI + server.
  • Fast I/O. Async-first with dart:io and isolates.
  • Less ceremony. Batteries included — no framework soup, no reflection tricks.

A focused toolkit

Archery is built from small primitives that compose cleanly — so your app stays readable as it grows.

Batteries-included
Native dart:io server + Router + Middleware + Kernel + App + Container. Start building immediately.
IoC container
Register services, singletons, and scoped dependencies — without reflection or hidden magic.
Static files
Serve public assets with MIME detection + caching. Great for docs sites, landing pages, and full-stack apps.
Dynamic routing
Expressive routes with typed params and middleware pipelines — return JSON, HTML, or custom responses.
Templating
Lightweight, Blade-inspired views with layouts, components, and clean server-side rendering.
Config API
JSON config with dot-notation access, environment layering, and runtime reloads.