Olum logo

Built for Prototypes,
Rapid Development

The fastest way to turn ideas into apps for hackathons and experiments.

$npx create-olum my-app --tailwind

Omit --tailwind to skip Tailwind CSS setup.

Live build · unedited

Blank File to Todo App
Before Your Coffee Gets Cold

Start from an empty file and have a working app in under 5 minutes — no setup, no config. Watch it happen, then build your own.

todo-app — built live in OlumJS
Try it yourself in the playground

No install. Runs in your browser.

Syntax comparison

Same counter.
A fraction of the syntax.

No hooks, no signals to unwrap, no directives to memorize. Mutate a plain object — Olum re-renders.

Olum
Counter.html
<script>
  const state = { name: "world", count: 0 };
</script>

<h1>Hello {state.name}!</h1>
<input value="{state.name}" oninput="e => state.name = e.target.value" />
<button onclick="state.count += 1">clicks: {state.count}</button>
vs.
<script>
  let name = $state("world");
  let count = $state(0);
</script>

<h1>Hello {name}!</h1>
<input bind:value={name} />
<button onclick={() => count += 1}>clicks: {count}</button>

Built for the modern stack

1 contributor

Built in the Open
By People, Not a Committee

Every commit across olum and olum-compiler. Open a pull request and your face lands here.

#StandWithPalestine

We stand with Palestine

Our thoughts are with the people of Palestine. If you can, please consider supporting humanitarian relief efforts.

Support Palestine
Ready to ship

Start building in seconds.

One command. Full-stack ready. No configuration hell. Just code.

$npx create-olum my-app --tailwind

Omit --tailwind to skip Tailwind CSS setup.