Roman Liutikov
banner
romanliutikov.com
Roman Liutikov
@romanliutikov.com
software engineer @ margelo, ex @whimsical, ex @pitch
https://romanliutikov.com/blog/
State of ClojureScript 2025 Survey is live state-of-clojurescript.com If you ever wanted to know what's happening in cljs world, and using the language at work or for hobby projects, fill out the survey. And share it with others! Results will be shared in January next year.
State of ClojureScript 2025 Survey
state-of-clojurescript.com
October 30, 2025 at 1:28 PM
Posted about my ongoing experiment to bring React Compiler to Clojure/UIx, link below
spoiler: it works :)

romanliutikov.com/blog/bringin...
Bringing granular updates to React, the Clojure way | Roman Liutikov, Software Engineer
An eploration on building auto memoizing compiler for React in Clojure
romanliutikov.com
July 9, 2025 at 4:25 PM
Reposted by Roman Liutikov
Largest attack on Ukraine last night yet, but yeah, clearly Putin is open to peace and Trump will personally solve this in uh how long ago was that supposed to happen? www.france24.com/en/europe/20...
June 29, 2025 at 11:33 AM
drones drones multiple days in a row, funny how you get used to shots and explosions
June 17, 2025 at 11:18 AM
got React Context working across server and client components in my Clojure implementation of RSC

while context is not supported in js implementations, in Clojure it aligns quite nicely with `binding` macro, so it would be a shame to not have this working across the boundary
June 5, 2025 at 1:26 PM
An update on RSC port to Clojure: form actions, data fetching, batching, caching and error handling romanliutikov.com/blog/towards...
Towards React Server Components in Clojure, Part 3 | Roman Liutikov, Software Engineer
A journey on bringing React Server Components to Clojure JVM, as a part of UIx library
romanliutikov.com
June 4, 2025 at 5:19 PM
rebuilt this React Router demo with my Clojure port of RSC, still wip but lots of stuff already working uix-rsc-movies.fly.dev
May 21, 2025 at 1:59 PM
Reposted by Roman Liutikov
It was about time, wasn't it? 😅 👇

But now, with Firefox 138 all major browser engines support import attributes to import JSON from within your ECMAScript modules. 👇

✅ Chromium: 123+
✅ Safari: 17.2+
✅ Firefox: 138+ (released 2w ago)

PS. This syntax works in modern Node.js, too!
May 15, 2025 at 10:46 AM
Clojure port of React's server components is coming along nicely, this update brings streaming SSR, route prefetching and more romanliutikov.com/blog/towards...
Towards React Server Components in Clojure, Part 2 | Roman Liutikov, Software Engineer
A journey on bringing React Server Components to Clojure JVM, as a part of UIx library
romanliutikov.com
May 13, 2025 at 6:48 PM
Started working on Clojure port of React’s Server Components. The first pass is done, things looking good so far, more details in the blog post romanliutikov.com/blog/towards...
Towards React Server Components in Clojure, Part 1 | Roman Liutikov, Software Engineer
A journey on bringing React Server Components to Clojure JVM, as a part of UIx library
romanliutikov.com
May 7, 2025 at 9:52 AM
holy moly, o3 is able to decompile a pile of generated JS from cljs source back into perfectly readable and working program, with a single minor issue
the code uses a bunch of macros that generate lots of code: 150 LOC of cljs comes out as 450 LOC in js
gist.github.com/roman01la/6b...
OpenAI o3 decompiles JS generated from cljs sources back into ClojureScript code
OpenAI o3 decompiles JS generated from cljs sources back into ClojureScript code - decompiled.cljs
gist.github.com
April 22, 2025 at 3:44 PM
Worked on a fun little project to make a coding sandbox out of Modal's serverless platform and VS Code Server. Modal is great: scales fast, has access to GPUs, usage based billing
sandbox.learn-modern-clojurescript.com
April 20, 2025 at 7:44 AM
Spent half of the day working in Cursor Composer on a small simulation to test Goal Oriented Action Planning for game AI. Maybe I'm using it wrong, but the further I went, the slower it made progress.
demo goap.roman01la.workers.dev
code github.com/roman01la/mi...
February 6, 2025 at 8:09 PM
Reposted by Roman Liutikov
I got Linux running in a PDF file using a RISC-V emulator.

PDFs support Javascript, so Emscripten is used to compile the TinyEMU emulator to asm.js, which runs in the PDF. It boots in about 30 seconds and emulates a riscv32 buildroot system.

linux.doompdf.dev/linux.pdf
github.com/ading2210/li...
January 31, 2025 at 8:02 PM
State of ClojureScript 2024 survey results state-of-clojurescript.com
State of ClojureScript 2024 Survey
state-of-clojurescript.com
January 28, 2025 at 4:44 PM
The whole “use next/ssr” drama is so annoying. Vercel is not doing any good not to the community nor to businesses, sigh www.reddit.com/r/reactjs/s/...
From the reactjs community on Reddit: X/BlueSky: React recently feels biased against Vite and SPA
Posted by Jimberfection - 94 votes and 58 comments
www.reddit.com
January 27, 2025 at 9:09 PM
I love how easy it is to replicate things that require Babel plugin in JS with a macro (user space) in Clojure. Just updated cljs-worklet library to support React Native Reanimated 3.x github.com/roman01la/cl...
GitHub - roman01la/cljs-worklet: Run ClojureScript functions on a worklet thread in React Native
Run ClojureScript functions on a worklet thread in React Native - roman01la/cljs-worklet
github.com
January 27, 2025 at 9:55 AM
Merry Christmas 🎄
December 25, 2024 at 4:20 PM
hear me out, making hooks order depended was a terrible design decision in React
December 17, 2024 at 11:22 AM
It’s funny how I stopped having any opinions on code when I realised I lost interest in software development. At this point it’s more of a skill, like wood working etc. that I’m able to apply when needed.
December 16, 2024 at 6:45 PM
look at this, got my first communication working between two LoRa modules
platformio.org is super helpful for setting up dev env, basically zero work required
December 13, 2024 at 11:15 AM
I've started doing more radio comms and UAV engineering recently and oh god I'm years ahead with an LLM buddy. My Google bubble is tailored towards programming, and it's really hard to find stuff in a different field.
December 8, 2024 at 3:30 PM
I'm running State of ClojureScript 2024 Survey state-of-clojurescript.com If you ever wanted to know what's happening in cljs world, and using the language at work or for hobby projects, fill out the survey. And share it with others! Results will be shared in January next year.
State of ClojureScript 2024 Survey
state-of-clojurescript.com
December 6, 2024 at 3:32 PM