Streaming JSON in just 200 lines of JavaScript

posted in JavaScript on 2026-01-05   json stream javascript

I was continueing my exploration of React server components when I stumbled upon on this article about progressive JSON. Dan Abramov describes a technique for streaming JSON from a server to a client in chunks, allowing the client to start rendering parts of the data before the entire payload has been received. This can significantly improve perceived performance, especially for large datasets. So, I started wondering how much of an effort it would be to implement something like that. It turned out a fun exercise, and I ended up with a small (200loc) library called Streamson. So, this post is about how I built it.

read more

Azbuka: Treating CSS Like a Real Programming Language (Finally)

posted in JavaScript on 2025-12-29   css compiler

I've been working on CSS tooling (on and off) since August 2013, when I wrote AbsurdJS. Later, in January 2016, I "invented" CSSX - writing CSS directly in JavaScript. None of those became a thing, but they were incredibly interesting experiments. I had some time during the holidays and decided to materialize an idea that I'm shaping the last couple of months. And so I "accidentally" wrote a CSS compiler. It's called Azbuka (it means "alphabet" in Bulgarian).

read more

React Server Components support without a framework

posted in JavaScript on 2025-08-29   react rsc javascript

I was at ReactSummit this June and spoke with some folks from Vercel about Next.js and RSC support outside of the framework. I really wanted to try all the cool stuff but couldn’t afford to migrate my massive apps to Next.js. The conclusion was clear: it’s difficult to start using RSC without a framework.

“Hold my 🍺,” I said to myself, and started exploring. I’ll admit—it wasn’t easy. But three months later, I have a solution: meet Forket. It’s a tool that splits your code into client and server versions, so you can run React Server Components without a framework.

read more

Speaking at WebExpo #2

posted in Inspiration on 2025-06-05   webexpo javascript conference

This is my second year at WebExpo. I thought that after the first one, it couldn’t get any better — but the awesome team behind the event proved me wrong. Two days of inspiring talks and one day of workshop for me. Everything was perfectly planned and executed for both speakers and attendees.

read more

How I wrote a watch face for my Garmin Fēnix 8+

posted in JavaScript on 2024-12-22   garmin watchface monkeyc

This year I started running and I got really into it. And as it happens with every hobby there are some purchases involved. I invested in a new watch - Garmin Fēnix 8+. I'm a bit of a geeky person so I started playing with it. I explored all the options, apps and a couple of watch faces. I also checked how much of an effort it is to create my own thing for it and it appears that it's not a big deal. This article is covering my process with some code samples and a list of the tools that I used.

If you are not up for reading here's a short podcast that goes over what's in this article:

read more

Generate QR code on your machine using Node.js

posted in JavaScript on 2024-06-02   node qr javascript

I spoke at an event last week, and on the very last slide, I had a QR code that was supposed to lead people to my contacts page. Well, it didn't. I used a service for "free" QR code generation, and the link expired. So, I learned my lesson and came up with a line that generates whatever code I need right into my terminal.

read more

Reactive UI in 10 lines of code

posted in JavaScript on 2024-02-11   javascript react proxy

Reactivity became de-factor a standard in the last couple of years. All the major frameworks have some reactivity model implemented. One of the biggest even has the name React. In this article, we'll see how to write a simple reactive UI with just a few lines of JavaScript.

read more

A short introduction to CSS nesting

posted in CSS3 on 2023-09-16   css nesting modern

I did use Sass and Less in the past, and one of my favorite features was the nesting. Not only me but the whole community was asking about that constantly over the years. The browser vendors heard that plea, and today, we have CSS nesting.

read more

Write your own progress indicator with vanilla JavaScript

posted in JavaScript on 2023-09-16   JavaScript Node progress

Many moons ago, I was writing a lot of Flash applications. One thing was typical, and that was a progress indication of something that we were downloading. The loaded bytes of the Flash file (.swf) itself and later of some other resource the application needs. Once I started writing everything in JavaScript, this feature disappeared. In this post, we'll see how to implement it with vanilla JavaScript.

read more

I've made an Express.js based source viewer

posted in JavaScript on 2023-08-07   JavaScript Express source viewer

It's unsurprising that we all use Express.js when we need a web server. In this article, I'll show you how I built a source viewer. It's distributed as a npm package view-source and it could render the content of a directory in a nice tree-view style.

read more
Old articles

With over two decades of deep front-end expertise, I offer comprehensive web consultancy and stack audits, alongside specialized workshops, training, and engaging public speaking to elevate your team's skills and optimize your digital presence. Contact me.