About µJS

The origin: Skriv (2017) #

µJS started in 2017, inside Skriv, a startup building project management software with a workflow-based approach. The interface needed to feel fast and responsive, but learning a full JavaScript framework wasn't realistic given the constraints of a small team. The backend ran on Temma, a PHP MVC framework, and the goal was to keep server-side rendering while making navigation feel instant.

The solution was a small JavaScript library that intercepted link clicks and fetched pages via AJAX. Instead of letting the browser reload the entire page, re-downloading and re-interpreting CSS and JavaScript, the library replaced only the page body with the fetched content. Browser history was updated so the back button worked as expected. The result: page transitions felt extremely smooth, with no changes needed on the server side.

Vik: a reusable library (2021) #

In early 2021, the AJAX navigation code was extracted from Skriv into Vik, a standalone library that could be integrated into any website. Vik added features beyond what Skriv needed: JavaScript events, multiple content injection modes, and a ghost mode for managing navigation history without visible page changes.

Around the same time, David Heinemeier Hansson introduced Turbo, the successor to Turbolinks. It did exactly the same thing: intercept links, fetch via AJAX, replace the page body. This discovery confirmed that the approach wasn't just a clever hack, but an intelligent way to make websites reactive while keeping conventional server-side generation techniques.

From Vik to µJS #

Vik worked well, but it had a fundamental limitation: it could only update one page fragment at a time. This was a deliberate design choice for simplicity, but real-world use cases kept demanding the ability to update multiple zones from a single request.

Addressing this required significant refactoring — not just adding a feature, but rethinking the core architecture. Along the way, several other capabilities were added:

The result was µJS (muJS), a complete rewrite published as an open-source project under the Digicreon umbrella.

Philosophy #

µJS is built on a simple conviction: most websites don't need a JavaScript framework. Server-side rendering with PHP, Python, Ruby, or Go already works. What's missing is the feeling of a single-page application — instant navigation, no full page reloads, smooth transitions.

µJS fills that gap with the smallest possible footprint: ~5 KB gzipped, zero dependencies, no build step. Add a script tag, call mu.init(), and your existing site becomes dynamic. No rewrite, no migration, no new architecture to learn.

Ecosystem #

µJS is part of the Digicreon open-source ecosystem, which includes:

Together, these tools form a complete stack for building fast, modern websites with minimal complexity: Temma handles server-side routing and rendering, µCSS provides the styling, and µJS adds instant client-side navigation — all without heavy JavaScript frameworks or build pipelines.