
Flint Dart
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.
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.
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.
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.
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.
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.
@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.
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.
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.
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.
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.