A scalable, full-featured, full-stack framework in Dart.

Get Started

 Star ...

Batteries included.

To name just a few of Angel's features:

Angel's batteries-included experience means you'll never have to waste time rewriting common functionality.

Setup is simple.

Scaffolding and more, out-of-the-box.

Thanks to the handy Angel CLI, your project is just an angel init away.

#!/usr/bin/env bash
pub global activate angel_cli
angel init hello

Share more, write less.

Unlike those built with other frameworks, applications running Angel can share significant amounts of code between the server and client(s), and bring up MVP’s faster than ever before.

Angel is a perfect match for applications using Flutter or Angular.

Easy to learn.

Angel is full of familiar constructs to make the learning curve minimal.

Flexible Routing

app.chain(findUser).group('/user/:id', (router) {
  router.get('/profile', (req, res) {
    return res.render({
      'title': 'Profile of ${user.name}',
      'user': user,

MVC Controllers

class FooController extends Controller {
  String bar() => 'baz';

  @Expose('/quux', method: 'POST')
  Map quux() => { 'angel' : 'framework' };

Strongly-typed ORM

var query = new CarQuery();

var cars = await query.get().toList();

Stateless Authentication

var auth = new AngelAuth(
  jwtKey: app.configuration['jwt_secret'],
  allowCookie: false,
app.get('/auth/twitter', auth.authenticate('twitter'));