v1.0.0+5 Now Available
Flint Dart Logo

Flint Dart

Hot Reload
Api Services
ORM Included

The modern backend framework for Flutter developers. Build production-ready APIs with Dart's elegance and performance.

Everything You Need to Build Modern APIs

Flint Dart combines the best of Dart's ecosystem with powerful backend features. is a minimal, expressive, and extensible server-side framework built with Dart. Inspired by the simplicity of Express.js and Laravel, Flint provides an elegant developer experience for building RESTful APIs and backend services with Dart.

Hot Reload

Boost your productivity with Dart's native hot reload — perfect for rapid backend iteration without restarting the server.

example.dart
import 'package:flint_dart/flint_dart.dart';

void main() {
  final app = Flint(hotReload: true);
  app.get('/', (req, res) => res.send('Hot Reload Active!'));
  app.listen(3000);
}

ORM with Model Tables

Define database tables directly in your models. Flint Dart ORM handles schema and queries seamlessly.

example.dart
import 'package:flint_dart/model.dart';
import 'package:flint_dart/schema.dart';

class User extends Model<User> {
  String? id;
  String? name;
  String? email;

  @override
  Map<String, dynamic> toMap() => {
    'id': id,
    'name': name,
    'email': email,
  };

  @override
  User fromMap(Map<String, dynamic> map) => User()
    ..id = map['id']
    ..name = map['name']
    ..email = map['email'];
}

Authentication

Built-in authentication with session and token support — including Google OAuth out of the box.

example.dart
app.auth.login((req, res) {
  // Handle login
});

app.auth.google(
  clientId: 'xxx', 
  clientSecret: 'yyy'
);

Middleware

Add custom logic before requests reach your routes — for authentication, logging, or request transformations.

example.dart
import 'package:flint_dart/flint_dart.dart';
      
class AuthMiddleware extends Middleware {
  @override
  Handler handle(Handler next) {
    return (Request req, Response res) async {
      final token = req.bearerToken;
      if (token == null) return res.unauthorized();
      return await next(req, res);
    };
  }
}

Routing

Express-style routing made Dart-friendly — define routes with clean, minimal syntax.

example.dart
app.get('/', (req, res) {
 return res.send('Hello World');
});

app.post('/users', (req, res) {
return  res.send('Create User');
});

Migration Without Files

Run and manage database migrations without juggling migration files — simpler, cleaner workflow.

example.dart
@override
Table get table => Table(
  name: 'users',
  columns: [
    Column(
      name: 'id',
      type: ColumnType.integer,
      isPrimaryKey: true
    ),
    Column(
      name: 'name', 
      type: ColumnType.string
    ),
  ],
);

Google Auth

Authenticate users with Google in just a few lines — OAuth made simple.

example.dart
app.auth.google(
  clientId: 'your_client_id',
  clientSecret: 'your_client_secret'
);

MySQL Support

Connect to MySQL databases seamlessly — ORM ready and optimized for production workloads.

example.dart
final db = DB.connect(
  host: 'localhost',
  user: 'root',
  password: 'pass',
  database: 'flintdart'
);

app.useDatabase(db);

Validation

Laravel-style validation rules with a Dart twist — clean and readable.

example.dart
await Validator.validate(body, {
  "email": "required|email",
  "name": "required|min:5",
  "password": "required|min:8"
});

Hashing

Secure password hashing built-in — no extra packages needed.

example.dart
final hashed = Hashing().hash(password);
final isMatch = Hashing().verify(password, hashed);

Ready to Build Your Next API?

Flint Dart is production-ready and waiting for your ideas.