When running in a browser environment, you can use many Web APIs in your JavaScript code. From simple stuff like accessing the DOM, through integrated payments, vibrations, cryptography, WebGL, canvas, all the way to infinity & beyond.

Today, we’ll be exploring a small section of Web APIs, something that one could call “observer-based Web APIs”. These are:

  • Mutation Observer API
  • Resize Observer API
  • Intersection Observer API

So, seemingly unrelated Web APIs, with different use-cases, but still, having one thing in common — the observer-based architecture. …


Tachyons landing page
Tachyons landing page

I’ve got a “love-hate” relationship with Tailwind CSS.

On the mindset front, I like the utility-first approach, but I can’t seem to get by with long class strings or adding additional complexity to my build setup.

As for the actual experience — it’s great! Very productive, easy-to-use, and makes me forget all my “imaginary” nitpicks. However, the difficulties with class composition (different Tailwind utilities don’t always override the others as intended), slow build times, and laggy CSS debugging in the browser’s dev tools drive me nuts.

But even with all those pros and cons, I still ended up using Tailwind…


Rich text editors, also known as WYSIWYG (What You See Is What You Get) editors are everywhere — comment sections, forums, online text editors. Whenever you want to go beyond plain <input> or <textarea> and enable visible, interactive formatting in your editor, you have to go the contenteditable route and build a proper rich editor.

Thankfully, with the plethora of JavaScript frameworks and libraries, created with the sole purpose of building rich web-based editing experiences, you’ll never again have to deal with the evil that is contenteditable.

In this blog post, I’d like to present you with my top picks…


Ever since the release of ECMAScript 6 (ES6), JavaScript has been enjoying a very lively and vibrant development. Thanks to the now-yearly release cycle of the ECMA-262 standard and hard work of all browser vendors, JS rose to become one of the most popular programming languages in the world!

In my recent article, I covered all the new features introduced to the latest release of JS specification — ES2020. While some were quite interesting, none of them were “ground-breaking”. But that’s understandable given the current, more frequent update cycle of the specification. …


We all know music streaming is booming right now. Because of the sheer convenience, and ease-of-use users have fallen in love with this modern way of listening to music.

But what does it mean for web developers? Well, unless you’re Spotify, Apple, Amazon, or similar, your chances of competing in “streaming wars” are relatively low. But what if your goal is different? What if, instead of a streaming platform itself, you want to make a music player, add-on service, or something like that? In this case, why not let “the big players” help you?

In today’s post, I’d like to…


By now, you most likely have heard about Vue 3 — the next major version of Vue. More than that, given the extended pre-release period of Vue 3, you might have already used it.

Vue 3 brings to the table a lot of changes. TypeScript rewrite, Composition API, fragments, improved JSX support — that’s just a few of my top picks. No wonder why so many developers have already jumped on the train with full steam ahead, despite the persistent beta status.

With that said, in this group of developers, we can distinguish 2 separate ones — one that’s jumping…


When you hear the word “serverless,” I bet you start to think about AWS, GCP, or MS Azure. These are the top players in this space, right? You might also think about DigitalOcean, Linode, Netlify Functions, Zeit Serverless Functions, or even Firebase (though it’s technically part of GCP).

These services are great because they offer impressive scalability, no need for maintenance, and often come with generous free tiers. However, there is a serverless platform that wasn’t listed here and that I think you might not even know about.

I’m talking about Cloudflare Workers — a unique service from Cloudflare (the…


From all the available JavaScript frameworks, I’d say that Vue and React are my favorites. React for its vast ecosystem, great TypeScript support, JSX, and Vue for its simplicity, performance, and some smaller life quality improvements, like auto-passing props, easy-to-use transitions system, directives, slots & more.

So, how about getting the best of both worlds? Get Vue’s benefits in React would mean making React into Vue, so that’s not an option. How to use TypeScript and JSX in Vue then?

Well, Vue is heavily reliant on its custom templating syntax and SFCs (Single File Components). However, it’s also very “unopinionated”…


classNames and React popularity growth
classNames and React popularity growth

Let me contradict the very title of this post from the start by saying that you probably know the classNames library very well.

This tiny open-source library, originally created by JedWatson, is nothing but a versatile string “concatenator.” Currently sitting at over 6M weekly downloads, it rose to popularity alongside React — the UI library that it’s most commonly used with.


Today is another big day for CodeWrite! The new v1.0.4 brings a few very important features to make your code-blogging journey even better!

One-click publishing for Ghost blogs 🎉

The stand-out feature of CodeWrite — one-click publishing — has been available for Dev.to, Hashnode, and Medium from the very beginning. However, now that this list expands, we welcome all Ghost blogs to the party!

"one-click" Ghost publishing
"one-click" Ghost publishing
“one-click” Ghost publishing

Ghost blog is the first of its kind to be supported on CodeWrite — a blogging platform that’s primarily self-hosted. …

Arek Nawo

Hobbyist. Programmer. Dreamer. JavaScript and TypeScript lover. 👍 World-a-better-place maker. 🌐 https://areknawo.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store