Server-Side Dart Framework

Full-stack Web Development with Dart

Archery is a modern, server-side framework for Dart that brings structure, speed, and clarity to backend development.

Inspired by Laravel, Archery gives you the tools to build real-world apps, from REST APIs and CLI tools to full templated websites — with nothing but Dart.

Archery router configuration example screen Archery controllers and actions overview Archery server setup using dart:io
Get Archery Updates

Sign up for for updates on Archery release progress.

Why Dart on the Server?

  • Single-language stack: share models/utilities across CLI, server, and tooling.
  • Fast startup & low memory: great for microservices and edge-style APIs.
  • First-class async I/O via dart:io and isolates.
Batteries-included.
Everything you need, right out of the box. Built on dart:io, no third-party server required. Includes Router, Middleware, Kernel, App class, and Service Container. Clean, modular, and Laravel-inspired architecture made for Dart developers who value focus over setup.
IoC Container.
A simple yet powerful dependency injection container that lets your code stay decoupled, testable, and elegant. Register services, singletons, and scoped dependencies. No reflection, no magic, just clean composition.
Static Files.
Serve public assets directly from your app with zero configuration. Built-in support for versioned assets, MIME detection, and caching. Ideal for documentation, landing pages, or full-stack sites.
Safe, Dynamic Routing
Define routes the Laravel way; expressive, type-safe, and dynamic. Capture route parameters as typed values, apply middleware pipelines, and respond with JSON, HTML, or custom renderers. All powered by Archery’s native router.
Powerful Templating
Bring your server-side views to life with Archery’s lightweight templating engine. Supports layouts, components, and data binding. Fast enough for dashboards, flexible enough for blogs, familiar enough for anyone coming from Blade.
JSON Config API.
Configuration made simple. Load and manage your app settings from structured JSON files. Supports deep access with dot-notation keys, runtime reloads, and layered environments (local, staging, production).