Overview
A blazing-fast fullstack framework combining NestForge's Rust backend with a Next.js-inspired frontend serving layer.
NestForge Web
Section titled “NestForge Web”A blazing-fast fullstack framework combining NestForge’s high-performance Rust backend with a Next.js-inspired frontend serving layer.
Key Features
Section titled “Key Features”| Feature | Description |
|---|---|
| NestForge Backend | Rust-powered with dependency injection, modules, and runtime performance |
| File-based Routing | Next.js-style app directory with pages and API routes |
| SSR/SSG/ISR | Server-Side Rendering, Static Site Generation, and Incremental Static Regeneration |
| API Routes | Backend endpoints co-located with frontend code |
| Type Sharing | Automatic TypeScript types from Rust backend |
| Hot Module Replacement | Fast development with HMR |
| OpenAPI Docs | Auto-generated API documentation with Swagger UI |
| Edge Deployment | Cloudflare Workers, serverless, or containers |
Quick Start
Section titled “Quick Start”Install CLI
Section titled “Install CLI”cargo install nestforge-web-cliCreate Project
Section titled “Create Project”nestforge-web new my-appcd my-appStart Development
Section titled “Start Development”nestforge-web devYour app is now running at http://localhost:3000.
Minimal Fullstack App
Section titled “Minimal Fullstack App”Frontend (TypeScript/React)
Section titled “Frontend (TypeScript/React)”export default async function UsersPage() { const users = await fetch('/api/users').then(r => r.json());
return ( <main> <h1>Users</h1> <ul> {users.map(user => ( <li key={user.id}>{user.name}</li> ))} </ul> </main> );}Backend (Rust/NestForge)
Section titled “Backend (Rust/NestForge)”use nestforge::prelude::*;
#[nestforge::controller("/api/users")]pub struct UsersController;
#[nestforge::routes]impl UsersController { #[nestforge::get("/")] async fn get_users(_service: Inject<UsersService>) -> ApiResult<Vec<User>> { Ok(ApiResult::ok(users_service.find_all().await?)) }}Directory Structure
Section titled “Directory Structure”my-app/├── src/│ ├── app/ # Next.js-style app directory│ │ ├── page.tsx # Homepage (/)│ │ ├── about/│ │ │ └── page.tsx # /about│ │ ├── api/ # API routes│ │ │ └── users/│ │ │ └── route.ts # /api/users│ │ └── layout.tsx # Root layout│ ├── components/ # Shared React components│ ├── backend/ # NestForge backend modules│ │ ├── app_module.rs # Root module│ │ ├── users/│ │ │ ├── mod.rs│ │ │ ├── users_controller.rs│ │ │ └── users_service.rs│ │ └── posts/│ │ ├── mod.rs│ │ ├── posts_controller.rs│ │ └── posts_service.rs│ └── lib/│ └── bridge.rs # Bridge between frontend/backend├── nestforge-web.config.ts # Framework configuration└── Cargo.tomlComparison with Next.js
Section titled “Comparison with Next.js”| Feature | Next.js | NestForge Web |
|---|---|---|
| Backend Language | JavaScript/TypeScript | Rust |
| Runtime | Node.js | Native + Axum |
| DI System | Manual/Modules | Native NestForge |
| Cold Start (serverless) | 100-500ms | < 50ms |
| Memory Usage | 50-200MB | < 20MB |
| Type Sharing | Generated | Native shared crate |
| Deployment | Node.js hosts | Native binaries |
CLI Commands
Section titled “CLI Commands”# Developmentnestforge-web dev # Start dev server with HMRnestforge-web build # Build for productionnestforge-web start # Run production server
# Project managementnestforge-web new <name> # Create new projectnestforge-web generate # Generate code scaffoldsnestforge-web docs # Open API documentationResources
Section titled “Resources”| Resource | Link |
|---|---|
| GitHub Repository | vernonthedev/nestforge-web |
| crates.io | nestforge-web |
| docs.rs | nestforge-web |
| Wiki | GitHub Wiki |
| Changelog | CHANGELOG.md |
| CLI Crate | nestforge-web-cli |
| Core Crate | nfw-core |
Crates
Section titled “Crates”The project is organized as a Cargo workspace:
| Crate | Description |
|---|---|
nestforge-web | Main public crate |
nfw-core | Core framework (routing, HMR, API generation, OpenAPI) |
nestforge-web-cli | CLI binary for scaffolding and development |
Developed with love by @vernonthedev