A word from the Author

I officially started my career in 2001, writing JavaScript intensively on both the client and server sides. It was long before the modern runtime era.

Over the years, I never felt fully comfortable with the direction JavaScript runtimes took. I kept dreaming of something different: a clean JavaScript and TypeScript runtime built around simple modules, without hacks, tricks, or dependency trees so heavy they seem to defy gravity.

EkkoJS is that dream becoming real.

Not everyone will agree with its philosophy. Not everyone will like it. That is perfectly fine.

But EkkoJS is here, and it is here to stay.

Enjoy using it.

Francois, creator of EkkoJSFrancoisCreator of EkkoJS

A Runtime Built for the Future

In my opinion, we cannot build the future while keeping the past too close.

Modern JavaScript is module-first. Dependencies should not become a constant source of concern, especially for security teams. The past gave us valuable lessons, and mistakes were made along the way. But the future belongs to those who are willing to step outside their comfort zone.

EkkoJS is a bet on that future: a deliberate breaking change in the landscape of JavaScript runtimes.

Like many developers, we simply want to focus on what we are building. We want to start a project in five seconds, without spending twenty minutes on scaffolding and configuration. EkkoJS ships with enough built-in APIs to let developers experiment quickly and iterate even faster.

If you are looking for yet another runtime designed primarily to remain compatible with the past, EkkoJS may not be the right choice for you.

EkkoJS follows its own path. It aims to build a new community around modern code, without carrying every legacy decision forward indefinitely.

EkkoJS is ESM-only. It runs JavaScript and TypeScript out of the box. It includes a permission system and provides real multithreading without relying on the Worker model. The goal is to include what developers need to start building immediately, without polluting every project with an excessive number of dependencies.

The runtime provides a rich API for building different kinds of projects:

  • CLI tools
  • TUI applications
  • Desktop applications, yes, desktop applications
  • Web applications
  • Client and server side, through its own full-stack framework, Rune

All of this is possible with the runtime itself.

EkkoJS is also connected to its package registry, Bifrost, making it possible to distribute and share packages across the ecosystem.

EkkoJS is currently available as a Technology Preview. Over the coming months, it should be used for discovery, experimentation, and training. Breaking changes and fixes are still expected before the first production-ready release later this year.