Skip to content

Latest commit

 

History

History
145 lines (113 loc) · 4.35 KB

File metadata and controls

145 lines (113 loc) · 4.35 KB

🔥 Nexar

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.

Bun Powered Tests License

Next.js is heavy. Nexar is ruthless.

Why Nexar Will Replace Your Current Stack

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 binarybun 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.

Start in 30 Seconds – No Mercy

bun create nexar@latest brutal-app
cd brutal-app
bun dev

Open http://localhost:3000
First paint in <20 ms.
Welcome to the future.

Real Code, Real Fast (pages/index.html)

<!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>
  `;
};

Core Weapons (All Zero External Deps)

  • 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

Brutal Performance Targets (We’re Already There)

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

Current Status – Early & Hungry

🚀 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).

Join the Rebellion

git clone https://github.com/makalin/nexar
cd nexar
bun install
bun test
bun dev

PRs 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.