Flint Dart
The modern backend framework for Dart & Flutter developers.
Build with freedom, scale with power — all in pure Dart.
The Fastest Way to Build
Powerful APIs in Dart
Flint Dart is a high-performance backend framework that combines speed, simplicity, and structure. It’s built for developers who want to move fast — creating clean, scalable APIs and services with elegant, expressive code and instant hot reload.
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.