
Rokon Zaman
9yrs
building things since 2017
building things since 2017
- GitHub contributionsall time · incl. private
- $100K+earned freelancingUpwork verified
- 20+projects shippeda few documented here
9yrs
building things since 2017
building things since 2017
- GitHub contributionsall time · incl. private
- $100K+earned freelancingUpwork verified
- 20+projects shippeda few documented here
Experience
Front-end Full-stack Developer
Full-timeRevnest2023 → PresentBuilding product-side web applications with React, Redux, Next.js, Sanity and TypeScript. Focused on shipping fast, accessible UI and tightening the team's frontend foundations.
Full-stack Developer
FreelanceUpwork2023 → PresentIndependent client work — end-to-end web apps, API integrations, and one-off React/Next.js projects.
Front-end Developer
FreelanceFiverr2022 → 2023Small-scale frontend gigs — landing pages, component work, and improvements.
Reviews
Projects





Blogs
Every Phosphor Icon You Import Ships Six Times
I was hunting for the last few kilobytes on my landing page and found 51KB of SVG paths. For 26 icons. That's about 2KB per icon, and most of them are a circle with two lines in it. The reason is the API. Phosphor icons take a weight prop: That's decided at runtime. So the component has to carry…
Your GIF Is the Lossy One
One of my project pages was loading 18MB of images. Not a slow page. A page that eats a fifth of someone's daily mobile data to show them five looping demos. The demos were GIFs. One of them, a sunrise animation, was 6.85MB by itself. I converted it expecting to trade quality for size: 6.85MB…
I Deleted the Carousel Library
Two carousels on this site, one carousel library. Embla, with the wheel-gestures plugin, about 64KB raw and 20KB gzipped. Both carousels scroll sideways and snap. The browser does that: Touch drag, momentum, trackpad, keyboard, snapping. All of it free, from the platform. What a library adds on top…
I Rebuilt This Site for Three Years
I rebuilt this site for three years. It was supposed to be a weekend job. The old version ran on Gatsby — fine, fast enough, but I'd been hitting walls. The routing and GraphQL pipeline were rigid in a way that fought me every time I wanted to add anything new. There was no built-in image…