free-framework
v5.0.1
Published
Professional Node.js engine for the .free language. Blazing-fast SSR, Islands Architecture, and built-in ORM.
Maintainers
Readme
Free Ultra Framework v5.0.0 [Convergence Royale]
The High-Octane Engineering Ecosystem.
Bridging the gap between Laravel's elegance, React's reactivity, and Node.js's raw performance. 🛡️ Blazing-fast, Secure, and Scalable by default.
⚡ Why Free Framework?
| Feature | Free | Next.js | Laravel |
|---|---|---|---|
| Custom DSL Syntax | ✅ .free | ❌ JSX | ❌ Blade |
| Performance Engine | ✅ uWebSockets | ⚠️ Node HTTP | ⚠️ PHP-FPM |
| Built-in ORM | ✅ Yes | ❌ No | ✅ Eloquent |
| Server Actions | ✅ action {} | ✅ Yes | ❌ No |
| Real-Time Sockets | ✅ Built-in | ❌ Manual | ❌ Manual |
| Edge Runtime | ✅ Yes | ✅ Yes | ❌ No |
| Islands Architecture | ✅ Native | ⚠️ Extra | ❌ No |
| CLI DevTools | ✅ free devtools | ❌ No | ⚠️ Artisan |
🚀 Quick Start
npx free-framework new my-app
cd my-app
free serve🧩 The .free Syntax
Routing:
route GET "/" {
view "Home"
}
route GET "/dashboard" {
middleware auth
view "Dashboard"
}Components with Reactive State:
component Counter {
state count = 0
button {
text "Clicked {count} times!"
on-click { count++ }
}
}Server Actions (no API routes needed):
action createPost {
const post = await Post.create({ title: body.title, content: body.content });
return post;
}Database Models:
model Post {
title string
content string
likes number
}Authentication:
auth {
login "/login"
register "/register"
}File Uploads:
upload avatar {
path "public/uploads"
maxSize "10mb"
}Error Pages:
error 404 {
view "NotFound"
}🛠️ CLI Commands
| Command | Description |
|---|---|
| free new <name> | Create a new Free project |
| free serve | Start the development server |
| free build | Build for production (minified) |
| free devtools | Launch the DevTools Dashboard |
| free doctor | Run project health diagnostics |
| free update | Update Free Framework to the latest version |
| free route:list | List all registered routes |
| free db:seed | Run database seeders |
| free make:crud <name> | Scaffold full CRUD for a model |
| free shell | Enter interactive Free Shell |
| free bench | Benchmark current app performance |
| free install <pkg> | Install ecosystem plugins |
| free make:model <name> | Scaffold a new model |
🏗️ Architecture
my-app/
├── app/
│ ├── routes.free # Route definitions
│ ├── config.free # Auth, Uploads, Error pages
│ ├── models.free # ORM Models
│ ├── actions.free # Server Actions
│ └── *.free # Pages & Components
├── public/ # Static assets
├── views/ # EJS fallback views
├── .env # Environment config
└── .free/ # Compiled output
└── app.js⚡ Performance
Powered by HyperExpress (uWebSockets.js) — the fastest HTTP/WebSocket server for Node.js:
- Multi-core clustering via built-in
ClusterManager - LRU page cache for instant SSR delivery
- Zero-copy streaming for file uploads
- Native pub/sub WebSocket rooms
- Minified HTML/CSS/JS output at build time
🔌 Built-in Plugins
const { AuthPlugin, UploadPlugin, ChatPlugin } = require('free-framework');
server.use(AuthPlugin({ login: '/login', register: '/register' }));
server.use(UploadPlugin('avatar', { path: 'uploads', maxSize: '10mb' }));
server.use(ChatPlugin());🔒 Security: Aura Shield (v5.0.0)
Free Ultra v5.0.0 introduces the Active Security Engine, a proactive layer that protects your app from day one.
- Aura Firewall: Real-time pattern matching against SQL Injection, Directory Traversal, and malicious User-Agents.
- Strict Headers: CSP, HSTS, and Permissions-Policy enforced by default.
- Strict-Typed Validation: High-performance payload verification via
runtime/validator.js.
📖 The Gigantic Encyclopedia
Access the comprehensive, 7-chapter masterclass on building industrial-grade web applications.
- [Aura Architecture & AST Compilation]
- [Security Protocols & Firewall Deep-Dives]
- [.free Language Specs & Reactive State]
- [ORM 2.0 & CLI Scaffolding]
- [SPA Transitions & Partial SSR]
🌐 Edge Runtime
Deploy anywhere — Cloudflare Workers, Bun, or standard Node.js:
const { EdgeRuntime } = require('free-framework');
const edge = new EdgeRuntime(myFreeApp);
// Cloudflare Workers / Bun compatible
export default { fetch: edge.fetch.bind(edge) };📦 Ecosystem
free install free-auth
free install free-mail
free install free-paymentsLicense
MIT © Dev Omar Tolba
