Misha

Misha

@mkrl.xyz

Software Engineer / Developer Experience I will speak at your conference for food! Unpublished author, monthly host @warsawjs.com

263 followers301 following110 posts

I always wanted to recompile a browser and make arrays start at 1 to see how the web breaks. While an entire browser is a bit too much work, a compact JS engine is pretty doable. Meet Qu1ckJS - a JS engine where indexed collections start at 1! Play around with the REPL here: mkrl.xyz/qu1ckjs

Listening to @danabra.mov on @syntax.fm talking about atproto gave me a mad idea I want to build a "community box" of sorts: a physical device that enables posting to a PDS that is contained on the device itself a low-powered shitty server that is only online during events, powered by a hand crank

It's live on the Web Store! chromewebstore.google.com/detail/hpmeg... Because a lot of the web is SPA those days, I sometimes forget I have this installed. Then, when my bank or GitHub starts spinning, I experience joy unlike any other.

chromewebstore.google.comTransitioner - Chrome Web StoreAdds random fun transitions when navigating between pages on the same origin.
Misha@mkrl.xyz

Made a browser extension that randomly adds silly cross-document view transitions to all websites. Now it's time to create a collective repository of silly transitions for all of us to share.

Made a browser extension that randomly adds silly cross-document view transitions to all websites. Now it's time to create a collective repository of silly transitions for all of us to share.

My conference tech demo accidentally turned into capturing.website I always wanted to build a simple full-featured screen recorder based purely on web standards. Turns out, you can fit recording, processing and encoding in under 200kb (probably could have pushed it even lower).

It started with playing around with html-in-canvas, however the end product contains none at all. Videos are directly saved into a local folder (or OPFS for @webdevs.firefox.com and Safari). Encode into a bunch of cool formats with WebCodecs. You can even display an arbitrary floating window!

Just went to report a bug in @voidzero.dev formatter. Spent 30 minutes setting up a classic reproduction repo. Then discovered playground.oxc.rs. It has an option to compare with prettier directly and if there's a difference IT FILLS OUT THE ISSUE TEMPLATE FOR YOU. I absolutely love it

spent 6 months trying to figure out pricing for my developer products: per-seat, usage based, "contact sales"? introducing promise-based billing. honestly IMO it's the most honest pricing model in tech: - generous free tier for sync APIs - real customers pay for promises

As a child growing up in a post-soviet country I had a recurring nightmare of getting lost in a maze of eastern bloc buildings. A while ago I got to play Townscaper and had an idea "what if I make one, but depressing?". Quick Three.js prototype on Sunday scratches the itch.

Perfect! Let's check one more time just to be sure! Just one more time bro I promise.

So far the most (and the last!) last-minute thing done for the year.

JSHeroes@jsheroes.io

We're entering the last hours of the CFP! 😱 Keep in mind the form closes at midnight Romania time, 11:00 CET so you can enjoy the New Year celebrations after wrapping up your proposal! 🎉 Happy New Year everyone! ❤️

...just be sure it still has enough color contrast! While it does indeed look cool, it can break familiar cognitive patterns. Users can rely on selection visibility for many different needs.

svenning🌲@svenning.io

Don't forget to style text selection! Add fancy styling when users select text on your website by using the ::selection pseudo-class ✌️

alright, #BadUXWorldCup is too fun to pass up how about a virtualized date picker? "virtualized" as in "virtual machine" surprisingly easy to operate, just write some bytes to input a date here's me entering the birthday of Internet Explorer, get creative with yours! mkrl.xyz/virtualized-...

Nordcraft@nordcraft.com

📣 Attention internet 📣 The final Judge of the #BadUXWorldCup is @kevinpowell.co Kevin has spent the last decade teaching you all how to build great accessible websites with good UX. Now forget all that and build a horrible date picker! Submit your entry at: badux.lol

Today I had one of those dreams when you wake up and write your genius idea down. my notes: - hypothetical assertions in @vitest.dev - expect(n).toWouldHaveBeenCalled - expect(n).toMayHaveBeenCalled in my morning mind this was revolutionary, unlocking branching reality timeline API

This is so cool. One of the best explainers on this topic I've seen so far.

Sam Rose@samwho.dev

✨ Big O ✨ Let me take you on a visual introduction to what big O notation is in my new blog post: samwho.dev/big-o. With big O notation you can better understand how algorithms will perform in practice, finding orders of magnitude improvements often with very simple changes to your code.

I have accidentally created the most uncomfortable notification stack known to man 😭 Still looks cool because of the view transitions though.

Lame idea of the day: "I'm Feeling Lucky" on cal.com. If both of us are authorized with connected calendars and working hours, the button one-click schedules an event at the earliest available time for both parties.

I'm working on a massive JS Ecosystem guide and I'm SO pleased with this little prototype. Just about 10 lines of JS (pretty much only IntersectionObserver and button events) + CSS scroll-snapping. Everything is scroll-driven 🤌🤌

If you worked with me or saw my work and/or attended my talks, RTs are appreciated! Any cool companies hiring on Bluesky?

It was an absolute pleasure to give a slightly chaotic JS ecosystem tooling overview talk at @jnationconf.bsky.social Full of fantastic people and packed with content, what a conference!

Daniel Afonso@danieljcafonso.bsky.social

Speaking of awesome speakers in the @jnationconf.bsky.social JS track with have @mkrl.xyz with an history lesson

I have 1 ticket to @jsheroes.io to give away. If you are a student or simply someone who is on the verge of going - please DM me. DM me if you know someone who might need one. Very sad to miss this year due to a family emergency. Hands down, one of the best JS conferences in EU.

Little known fact, but on May 1st polish people gather around the parlament to raise awareness of the importance of RSS feeds. Truly proud to live here.

Perhaps the only Google feature I used to rely on was Timeline. It was a trade-off "you get my location for ads, I get a nice location history log". Today is the day I needed this history for a business trip rundown and I discover my 10+ years history log is permanently gone.

Tired of soulless AI chatbots? So are we. That’s why we’re redefining conversations with ethically sourced responses, free-range training data, and fair wages. No scripts, no artificial sympathy—just authentic, thoughtful interactions. Try talking to something different.

Loved being here for the first edition! The one and only international conference in North Macedonia, you simply can't afford to miss it.

WhatTheStack@wts.rocks

🚨Call for Proposals is NOW OPEN for What The Stack 2025! Got an innovative web dev idea or a killer project to share? We want YOU! 😎 👏4 Stages ⭐️Awesome CFP Committee 😍 Inspire the Web Development Community For more info visit the website: wts.sh

Every time I go to set up a small Typescript monorepo project for myself it ends up being a disaster. Every single time I think to myself "next time I should try X instead of Y" and then I spend hours upon hours configuring Y.

View full thread

I ended up with a simple @pnpm.io workspace setup. One tsconfig for each package extending the shared one. I thought I could never live without NX, but it turns out there is a rudimentary support for build order control with pnpm recursive run --sort [task] (works for a simple dependency tree)

Anyway, this was just a rent on me looking for a perfect solution. There probably is one (please let me know). Huge ❤️ to everyone working on the ecosystem tools I mentioned, it is not meant to be a dunk! What is YOUR way to go when starting a new thing?

Every time I go to set up a small Typescript monorepo project for myself it ends up being a disaster. Every single time I think to myself "next time I should try X instead of Y" and then I spend hours upon hours configuring Y.

View full thread

All I want from my perfect setup: - Unified resolutions for internal cross-package imports - Unified (as much as possible) configs for everything - Build & task execution order control - Reliable caching - Types just work in the IDE right away

Every time I go to set up a small Typescript monorepo project for myself it ends up being a disaster. Every single time I think to myself "next time I should try X instead of Y" and then I spend hours upon hours configuring Y.