luminant

Where ideas ignite and code comes alive.

Developer tools, frameworks, and creative infrastructure — built with care, designed to illuminate.

Illuminate

Light up your workflow with tools that spark creativity.

Create

Craft elegant solutions with expressive APIs.

luminant.dev

What we build

Developer Frameworks

Thoughtfully designed frameworks that respect your time and amplify your creative output. Every API surface is intentional.

N

Navigation & Routing

Wayfinding for the modern web. Type-safe routing, intelligent prefetching, and transitions that feel natural.

Testing & Quality

Confidence through comprehensive testing. Snapshot diffing, coverage analytics, and fixtures that tell a story.

Analytics & Insights

Understand what matters. Privacy-first analytics with beautiful dashboards that surface actionable insights.

Build Orchestration

Fast, incremental builds that understand your dependency graph. Watch mode that actually works.

Our philosophy

01

Clarity over cleverness

Code should read like a well-written essay. We choose explicit APIs over magic, documentation over tribal knowledge, and readability over brevity.

02

Craft every detail

The difference between good and great is in the seams. Error messages should help, defaults should be sensible, and every edge case deserves consideration.

03

Empower, don't constrain

Great tools provide rails, not walls. Our frameworks guide you toward best practices while leaving escape hatches for when you need them.

04

Open by default

Everything we build is open source. We believe the best tools are shaped by their community and that transparency breeds trust.

A taste of the API

app.ts
import { createApp, route } from 'luminant';

const app = createApp({
  name: 'my-project',
  theme: 'warm',
});

app.use(route('/', () => ({
  view: 'home',
  data: { greeting: 'Hello, luminant!' }
})));

app.listen(3000);

Expressive & minimal

A few lines to get started. The API reads like a conversation — tell the framework what you want, and it handles the rest with sensible defaults you can override.

TypeScript-first Zero-config Hot reload
~2kb runtime
0 dependencies
12ms cold start