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
github.com/Munawwar | codepasta.com
At Carriyo, Dubai, UAE
Pinned
Munawwar Firoz
@munawwar.bsky.social
· May 17
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...
- 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!
Using thor's hammer for a tiny nail!
October 31, 2025 at 7:34 AM
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!
Using thor's hammer for a tiny nail!
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
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.
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...
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
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...
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...
Reposted by Munawwar Firoz
I decoded bonzi buddy and gave him LLM access
October 2, 2025 at 3:31 PM
I decoded bonzi buddy and gave him LLM access
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-...
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
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-...
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-...
claudefront
claudeflare
My fingers are hallucinating!
claudeflare
My fingers are hallucinating!
September 12, 2025 at 5:31 PM
claudefront
claudeflare
My fingers are hallucinating!
claudeflare
My fingers are hallucinating!
My tiny contribution to preact-iso:
Narrowing route props
Narrowing route props
September 10, 2025 at 7:11 PM
My tiny contribution to preact-iso:
Narrowing route props
Narrowing route props
npm was a mistake!
I am exaggerating a bit, but multiple vuln happening ... gah!
I am exaggerating a bit, but multiple vuln happening ... gah!
September 9, 2025 at 7:02 AM
npm was a mistake!
I am exaggerating a bit, but multiple vuln happening ... gah!
I am exaggerating a bit, but multiple vuln happening ... gah!
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.
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.
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
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.
You can now preload JS and CSS for your app from Python, Go, PHP or Ruby.
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...
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
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...
The compromised versions scan the file system, search for credentials, and post them publicly to GitHub.
www.aikido.dev/blog/popular...
Reposted by Munawwar Firoz
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.
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
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.
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.
I type `rm -fr` and not `rm -rf`
"remove for real"
"remove for real"
August 13, 2025 at 4:13 PM
I type `rm -fr` and not `rm -rf`
"remove for real"
"remove for real"
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
I tried replacing react in react-router package with preact, just to check how many of their tests pass:
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.
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
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.
It was the first experience of this kind. Though I haven't yet reviewed the PR it raised on my github.
It's 2025 and JS still doesn't have pipe operator. Sad
August 6, 2025 at 4:03 PM
It's 2025 and JS still doesn't have pipe operator. Sad
Hear me out, CSS modules + tailwind but on different CSS layers
August 6, 2025 at 10:37 AM
Hear me out, CSS modules + tailwind but on different CSS layers
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
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...
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?
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
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?
e.g. you can snapshot all calls to postgresClient.query() function
What would you call this library?
automocker?
function-snapshotter?
record-and-replay?
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...
- 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-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...
- Mobile tray
Check out the demo: munawwar.github.io/preact-combo...
npm: www.npmjs.com/package/prea...
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
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
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
webreflection.medium.com/jsx-can-be-m...
I am afraid though it would be a major breaking change.
cc @jovidecroock.com
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.
Teach a man how to useEffect() and you torture him for a lifetime.
July 17, 2025 at 2:51 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.
Teach a man how to useEffect() and you torture him for a lifetime.
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.
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
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.
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.