JSX with Ease

Explore Jeasx

Use asynchronous JSX as an intuitive templating language for the server-side rendered web.

Browse examplesVisit jeasx.dev

Less framework, fewer headaches

Jeasx keeps its core small: asynchronous JSX on the server, file-based routing, and little else. Everything beyond that is integrated in userland with code you own and can adapt.

Run it yourself

All examples are on GitHub. Clone the repository to run them locally. Every example links to its source in the top right corner. Change the code freely and see what happens.

01

Server-side JSX with <jsx-async-runtime />

Everything jsx-async-runtime renders on the server: promises, iterables and other values as children, render props, request context via 'this', overriding how JSX turns into HTML, Declarative Shadow DOM and unit tests for components.

02

Streaming with <jsx-async-runtime />

Async components don't block the page: jsx-async-runtime streams HTML as soon as it is ready, in order, in parallel or out of order, from async iterables or a ReadableStream.

03

Client-side apps with <jsx-async-runtime />

Render the same JSX components on the server and in the browser with jsx-async-runtime, without React, a virtual DOM or hydration: from simple widgets to apps that work with and without JavaScript, and streamed async trees.

04

Client-side games with <jsx-async-runtime />

Games where jsx-async-runtime renders every frame in the browser: animation, input and game logic with plain JSX components.

05

Server-rendered websites and apps

Render pages on the server with content from a remote API, JSON data or Markdown with MDX, and build interactive apps with plain HTML forms. No client-side JavaScript needed: view transitions make page changes feel smooth.

06

Images, JSON and other content types

Routes aren't limited to HTML: they can return images, SVG, JSON, XML, PDF, a live stream of Server-Sent Events, a WebSocket or any other content type.

07

Security, errors and post-processing

Protect routes with basic auth or sessions, sign cookies, block injected scripts stop bots with a proof-of-work captcha and rate-limit APIs. Catch errors, manage the head and transform the final HTML before it is sent to the browser.

08

Hypermedia with HTMX

Every Jeasx route can return an HTML fragment, so hypermedia libraries like HTMX and Fixi can update parts of a page with markup rendered on the server.

09

JavaScript libraries and frameworks

Add islands of interactivity to server-rendered pages with the JavaScript library or framework you already know.