The lightweight killer of bloated frameworks.
Zero dependencies. Bun runtime. Islands by default.
Single binary. Sub-20ms cold starts. Under 30MB RAM.
We took everything Next.js promised… and made it actually fast, actually simple, actually yours.
Next.js is heavy. Nexar is ruthless.
Modern meta-frameworks are drowning in:
- Dependency hell
- Client-side JS obesity (often 100KB+)
- Build times measured in minutes
- Memory leaks eating your server
- Deployment complexity & vendor lock-in
Nexar ends that nonsense.
- Only Bun — no Node, no transpilers, no excuses
- Islands architecture from day zero → ship 4–15 KB of JS per page (yes, really)
- HTML-first → instant TTFB, perfect Lighthouse scores, edge-ready
- Everything batteries-included, zero config hell:
- JWT + signed cookies + OAuth-ready auth
- SQLite ORM that doesn’t suck
- Zod-style runtime validation
- i18n + RTL out of the box
- Middleware stack (CORS, rate-limit, helmet, logging…)
- Single static binary →
bun build --compile→ drag, drop, run anywhere - Dev reloads in ~12–18 ms. Idle memory 22–28 MB.
We’re not “inspired by Next.js”.
We’re here to end it.
bun create nexar@latest brutal-app
cd brutal-app
bun devOpen http://localhost:3000
First paint in <20 ms.
Welcome to the future.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Nexar – No Compromises</title>
<link rel="stylesheet" href="/static/main.css">
</head>
<body>
<hero>
<h1>Next.js called.<br>It wants its excuses back.</h1>
<p>Build faster. Ship smaller. Sleep better.</p>
</hero>
<live-counter client:visible></live-counter>
<real-time-todos client:load></real-time-todos>
</body>
</html>// islands/live-counter.nexar.ts
import { signal } from 'nexar/islands';
export default () => {
const count = signal(0);
return `
<div class="counter kill-border">
<button onclick=${() => count.value++}>+</button>
<output>${count}</output>
<button onclick=${() => count.value--}>-</button>
</div>
`;
};- File-system + API routes (
/api/v1/users.ts) - Granular islands:
client:load | idle | visible | media - SQLite ORM:
db.users.findMany({ where: { role: 'admin' } }) - Auth layer:
protect,jwt,session, OAuth middleware ready - Schema-first validation
- Full i18n + pluralization + RTL
- Express-style middleware pipeline
- Built-in test runner (1000+ passing)
bun build --compile --outfile app→ one file, one process, one binary
| Metric | Nexar Target | Measured (early 2026) |
|---|---|---|
| Cold start | <20 ms | 12–18 ms |
| Idle memory footprint | <30 MB | 22–28 MB |
| TTFB (typical page) | <30 ms | 10–22 ms |
| Client JS shipped | <15 KB avg | 4–14 KB |
| Bundle size (full app) | single binary | ~8–15 MB compressed |
🚀 Early development – APIs stable, breaking changes possible
📜 MIT License – take it, fork it, destroy your old stack with it
⭐ We’re new. Star us if you want to see blood (of legacy frameworks).
git clone https://github.com/makalin/nexar
cd nexar
bun install
bun test
bun devPRs welcome. Especially:
- New islands directives
- Database adapters (PostgreSQL, MySQL…)
- More aggressive benchmarks
- Translations, examples, memes
Nexar isn’t just faster.
It’s the framework that admits the emperor has no clothes.
Build something ruthless.