gitwtfhub

wtf is merjs?

justrach/merjs — explained in plain English

Analysis updated 2026-05-18

346CAudience · developerComplexity · 4/5Setup · moderate

TL;DR

An experimental web framework written in Zig that offers Next.js-style file routing and server rendering while compiling everything down to WebAssembly, without Node.js.

Mindmap

mindmap
  root((Merjs))
    What it does
      File based routing
      Server side rendering
      Compiles to WASM
      Typed API routes
    Tech stack
      Zig
      WebAssembly
      C
    Use cases
      No Node.js web apps
      Full stack in one language
      Performance experiments
    Audience
      Web developers
      Systems programmers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Prototype a fast server-rendered web app without depending on Node.js or npm.

REASON 2

Write both server and client-side interactive code in a single language, Zig.

REASON 3

Compare Zig-compiled WebAssembly performance against a Next.js baseline.

REASON 4

Build typed API routes where input validation happens automatically at parse time.

What's in the stack?

ZigWebAssemblyC

How it stacks up

justrach/merjstorvalds/hunspellcolorizefractalfir/crustc
Stars346344331
LanguageCCC
Setup difficultymoderateeasyhard
Complexity4/51/55/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires the Zig toolchain and is marked as an early experimental status, not production ready.

Wtf does this do

Merjs is an experimental web framework written in the Zig programming language that aims to deliver a modern development experience, file-based routing, server-side rendering, type-safe APIs, without depending on Node.js or npm at all. The central idea is that Zig can compile to WebAssembly, so both the server code and any client-side interactive logic can be written in the same language, with the server producing a tiny native binary and the client receiving a .wasm file directly. The framework borrows the developer workflow popularized by Next.js: you create files in an app folder and each file automatically becomes a URL route. Zig code in those files generates HTML on the server, with a comptime HTML builder (meaning errors are caught at compile time, before the program runs). API routes accept typed input models where constraints like minimum string length or valid number ranges are enforced automatically at parse time. For client interactivity, you write Zig code that compiles to WebAssembly and loads directly in the browser with no bundler involved. The readme shows local benchmarks claiming over 100,000 requests per second with sub-millisecond latency and a cold start under 5 milliseconds, compared to roughly 2,000 requests per second and 1-3 second cold starts for Next.js, though it notes this is an early experiment, not a production-ready system. It installs via a one-line curl command and is marked as experimental status.

Yoink these prompts

Prompt 1
Explain how Merjs uses file-based routing similar to Next.js but compiles to WebAssembly instead.
Prompt 2
Walk me through installing Merjs with its one-line curl command and creating a first route.
Prompt 3
Show me how Merjs enforces typed input validation, like string length limits, on an API route.
Prompt 4
Compare Merjs's claimed request-per-second benchmarks against Next.js and explain what a cold start means.

Frequently asked questions

wtf is merjs?

An experimental web framework written in Zig that offers Next.js-style file routing and server rendering while compiling everything down to WebAssembly, without Node.js.

What language is merjs written in?

Mainly C. The stack also includes Zig, WebAssembly, C.

How hard is merjs to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is merjs for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.