2022 in review

December 31, 2022

I didn't die.

That's what Ukrainians commonly post on Twitter in their 2022 reviews. I'm blessed to be able to say the same and I've got Armed Forces of Ukraine to thank for.

This year got off to a horrible start, to put it mildly, as russia has invaded Ukraine on February 24th. My life was changed forever that day, as me and my friends fled Kyiv.

Since day one, the entire nation has been raising and donating money to military and volunteer organizations to help our soldiers fight the enemy. Twitter folks in particular, have started raising funds by offering to match each donation, basically doubling the money. I decided to try it out, without any hope it'd actually work, because I just tweet about programming and occasionally post some pixels.

And damn it did. Thanks to some absolutely incredible people we've donated a whopping $36k in just a few days. I'll be forever grateful to them.

I've pledged to myself to continue donating most of my income and while I won't share the exact numbers, I'm proud to have kept up to this promise through the whole year and I'm not going to stop.

As I developed a war-life balance, eventually I got back to working on my projects. Despite everything, 2022 was a productive year.

New personal website

I started with a redesign of the website you're looking at right now. I like how clean and minimal it turned out.

In the future, I'd like to grow it into something similar to Simon Willison's or Brian Lovin's website to encourage me to write more often. Here's some ideas I have:

  • Changelog page for tweet-sized posts about things I'm working on.
  • Collection of TIL (Today I Learned) posts.
  • Apps, tools and services I love.
  • Interesting content I've found elsewhere.


Later in January I launched Reviewbunny — a tool to stay on top of pull requests within your team. Reviewbunny would email you a daily digest of pull requests waiting for your review. Pull requests were sorted into various categories, like "Low-hanging fruit", to help prioritize the review process.

Reviewbunny was the first production Rails app I've shipped. I was so impressed by it, that I published "Don't make me think, or why I switched to Rails from JavaScript SPAs". That blog post went viral and took a #1 spot on Hacker News. If that wasn't already amazing, Matz tweeted it too!

I enjoyed building Reviewbunny in public, while posting daily progress updates. Unfortunately though, I had to shut it down later in the year. I still believe in the idea, but I need to figure out a better and simpler way to approach this problem. I don't see it a failure though, because I've learned a lot of new things anyway.


In 2021 I launched Pulse — a native Mac app for tracking metrics from Plausible Analytics right in your menu bar. It didn't have a website then, so I built one this year → pulsestats.app.

I think it looks cool and it certainly stands out among any other websites I made. It's not every day I get to recreate macOS desktop and simulate an actual app inside of it.


I shipped a major update to Rosefinch, which included:

  • New editor powered by CodeMirror.
  • Editor themes, among which there's an official Rosefinch theme I designed myself.
  • Customizable editor font.
  • Command bar.
  • Export/import of queries to share with your team.
  • Auto-update UI like in native apps.
  • Redesigned website.
  • More sleek animations, of course.

Rosefinch remains one of my favorite projects. It has a clear focus and a simple UI for something as complex as querying SQL databases. There's a lot more I have planned for Rosefinch next year.


While I was working on Rosefinch and migrating from Ace to CodeMirror, I learned a lot about editor themes. There wasn't an off-the-shelf collection of good looking themes for CodeMirror, so I made one.

I ported 16 popular and beautiful VS Code themes to CodeMirror, open sourced them and launched a website to show them off. It's called ThemeMirror.

Mesh gradients are all the rage these days, so I couldn't pass the opportunity to make one myself and animate it too.

Moreover, ThemeMirror even includes an online editor to create a custom CodeMirror theme from scratch.


I needed a tool to take beautiful screenshots of my websites in a super minimal browser frame, so I built Confectionery.

Here's a screenshot of Confectionery website taken inside Confectionery with CleanShot.

It's a tiny app that I use more often than all my other apps combined. I enjoy the fact that I can consider it done. It's not something you usually see happen with software after all.

Confectionery flexed my icon making skills as well. It's far from a professional Mac app icon, but I still enjoy looking at that tasty cake.

Crossed $1k of internet revenue

In 2022 my apps crossed $1k in sales. It took 2 years to get to that point, so it was certainly a milestone worth celebrating.

I continue to be bad at marketing my work though, so I really need to step up my game if I want that number to grow (I do).

Dense Discovery Respond

I collaborated with Kai Brach and launched a novel feature called Respond for his Dense Discovery newsletter. Every week Kai invites guests to share their insights, interesting knowledge and thoughts on pressing topics. Thanks to Respond, readers can start a direct conversation with guests through email.

Kai designed the entire flow and I got the opportunity to build it. It's one of those projects I'm really, really proud of.


Towards the end of the year, russia started bombing our critical infrastructure and power grid, which led to numerous blackouts.

Being an internet addict that I am, I came up with an idea to create a read-it-later app that automatically downloads an offline copy of a website when you add a link. If I could read all those blog posts that I save daily, blackouts would be a lot less boring.

So I built Linkjar.

As with any new project, there's always something that pushes me to take the next step and advance some skill further. With Linkjar, it was, without question, an app icon.

Unlike my other icons, this one was drawn 100% from scratch and doesn't contain any third-party graphics purchased elsewhere. I think it's safe to say it's the most challenging and the most good looking icon I ever made.

The entire process took a ton of time and many iterations, but it was all worth it and I couldn't be happier with a result.

That's a wrap!

2022 was a nightmare, but I'm glad that work kept me and my mind busy. I'm looking forward to creating more cool stuff next year.

I'm beyond grateful for Armed Forces of Ukraine for making it possible for me to live, work and give back.

Слава Україні!