Munawwar Firoz
munawwar.bsky.social
Munawwar Firoz
@munawwar.bsky.social
Web developer - HTML / CSS / JS, node.js, preact, vanilla JS, serverless, serverful, databases, IaC

github.com/Munawwar | codepasta.com

At Carriyo, Dubai, UAE
Pinned
Announcing Preact Combobox

- Multi-select & Single-select modes
- Partial word matching, accent matching
- Lazy options loading and remote search support
- Light / Dark theme, RTL, Translation, form submit support

www.npmjs.com/package/prea...
I can't stop thinking that tr*mpcard website, a 1 page website, was built not with a index.html but with next!

Using thor's hammer for a tiny nail!
October 31, 2025 at 7:34 AM
They say "don't reinvent the wheel", but in software "wheel" just released v2 which isn't compatible with your car, and now you need to change your entire car to just install that thing.
October 30, 2025 at 12:10 PM
I finally figured out how to use Vite with multi-page apps. Took only 2 years .. I was missing a few tricks

Tailwind folks will love the instant reloads (HMR)! However with CSS files, page switches on dev causes a FOUC. Can't have it all I guess.

github.com/Munawwar/pre...
GitHub - Munawwar/preact-mpa-template at vite
⚛️ Preact Multi-Page Website Starter Template (SSR) - with fastify and esbuild 🚀 - GitHub - Munawwar/preact-mpa-template at vite
github.com
October 5, 2025 at 7:49 PM
Reposted by Munawwar Firoz
I decoded bonzi buddy and gave him LLM access
October 2, 2025 at 3:31 PM
What if you could SSR a preact bundle from go, php, python or ruby?

gist.github.com/Munawwar/fe6...
October 2, 2025 at 4:52 PM
Reposted by Munawwar Firoz
A good post on how Go's tooling is just so nice: hachyderm.io/@laird/11519...

Other ecosystems can learn a lot from Go's approach to supply chain management, standard libraries, and so on.

For example, see @filippo.abyssdomain.expert's "How Go Mitigates Supply Chain Attacks" go.dev/blog/supply-...
Scott Laird (@[email protected])
It's refreshing using #golang's ecosystem after spending time with other languages' tooling. Over the past few years, things have become really slick. I'm not talking about the language itself; it's...
hachyderm.io
September 13, 2025 at 7:26 PM
claudefront

claudeflare

My fingers are hallucinating!
September 12, 2025 at 5:31 PM
My tiny contribution to preact-iso:

Narrowing route props
September 10, 2025 at 7:11 PM
npm was a mistake!

I am exaggerating a bit, but multiple vuln happening ... gah!
September 9, 2025 at 7:02 AM
Preact-iso now has it's URL pattern matching logic ported to multiple languages!

You can now preload JS and CSS for your app from Python, Go, PHP or Ruby.
What if client side routers URL pattern matching logic was available in multiple languages?

Non-JS servers could figure out which client route matches for a request and add preload tags to preload assets (CSS, JS, images, icons) instead of just serving the app shell.
August 31, 2025 at 7:11 AM
Reposted by Munawwar Firoz
Malicious versions of the nx package + some packages under the @nx/* scope were published to npm.

The compromised versions scan the file system, search for credentials, and post them publicly to GitHub.

www.aikido.dev/blog/popular...
Popular nx packages compromised on npm
The popular nx package on npm was compromised, and stolen data was published on GitHub publicly
www.aikido.dev
August 27, 2025 at 11:52 AM
Reposted by Munawwar Firoz
"Sideloading" is the rentseeker word for "being able to run software of your choosing on a computing device you purchased". There is no reasonable case for an operating system developer having a say over what programs you run on your hardware.

#android #google
August 26, 2025 at 4:31 AM
What if client side routers URL pattern matching logic was available in multiple languages?

Non-JS servers could figure out which client route matches for a request and add preload tags to preload assets (CSS, JS, images, icons) instead of just serving the app shell.
August 25, 2025 at 10:31 AM
I type `rm -fr` and not `rm -rf`

"remove for real"
August 13, 2025 at 4:13 PM
Caption this

@ianlandsman.com
August 13, 2025 at 10:07 AM
I tried replacing react in react-router package with preact, just to check how many of their tests pass:
August 10, 2025 at 6:39 PM
Unleashed claude code on my android while I was attending a wedding.

It was the first experience of this kind. Though I haven't yet reviewed the PR it raised on my github.
August 10, 2025 at 11:47 AM
It's 2025 and JS still doesn't have pipe operator. Sad
August 6, 2025 at 4:03 PM
Hear me out, CSS modules + tailwind but on different CSS layers
August 6, 2025 at 10:37 AM
Reposted by Munawwar Firoz
Did you know that @preactjs.com is the third most use frontend framework? (According to Google CrUX by number of origins.) We spoke about what Preact is, and how it's different from React with @rschristian.dev‬, Preact core member, on the JavaScript Jabber podcast: www.youtube.com/watch?v=oR1T...
Preact, Performance, and the Future of Lightweight Frontends with Ryan Christian - JSJ 683
YouTube video by Top End Devs
www.youtube.com
August 4, 2025 at 3:11 PM
My next project is going to be a library that can snapshot functions for purpose of unit testing

e.g. you can snapshot all calls to postgresClient.query() function

What would you call this library?

automocker?
function-snapshotter?
record-and-replay?
July 29, 2025 at 5:28 AM
preact-combobox minor update (but the size of a major update)

- Mobile tray

Check out the demo: munawwar.github.io/preact-combo...

npm: www.npmjs.com/package/prea...
Preact Combobox Example
munawwar.github.io
July 28, 2025 at 7:31 PM
Preact needs to try this idea from @webreflection.bsky.social's blog post on improving JSX / VDOM rendering perf:
webreflection.medium.com/jsx-can-be-m...

I am afraid though it would be a major breaking change.

cc @jovidecroock.com
JSX can be more efficient by default
This post is a follow up for the “JSX is inefficient by default … but …” one, describing my journey to achieve pretty awesome results!
webreflection.medium.com
July 20, 2025 at 4:46 PM
Teach a man how to fish and you feed him for a lifetime.

Teach a man how to useEffect() and you torture him for a lifetime.
July 17, 2025 at 2:51 PM
Look at this DynamoDB write speed (for 100 writes, from an aws lambda at same region):

Average: 4.58ms
Median: 4.34ms
P95: 6.25ms
P99: 6.96ms
Min/Max: 3.73ms / 7.9ms

Do you need Redis if you already use DDB?
DDB is much more stable than your Redis cluster and has more storage.
July 15, 2025 at 1:35 PM