I am going to be honest with you. This project started out of pure frustration.
Every time I needed to do something simple — compress an image, convert a PDF, format some JSON — I would land on a site that hit me with a cookie banner, then a popup asking me to sign up, then an ad covering half the tool, and then after all that the tool would not even work properly on my phone.
I got tired of it. So I built my own.
*What I built *
dukotools.com is a free utility website with 120+ tools. No ads right now. No signup ever. Works offline as a PWA. You can install it on your phone like an app and use most tools without internet.
It covers the usual stuff — PDF conversion, image compression, background removal, JSON formatting, regex testing, SQL formatting. But it also has tools I genuinely could not find anywhere else free:
A Zakat calculator for Muslim users that handles gold and silver Nisab thresholds. A Pakistani electricity bill calculator that uses the current NEPRA tariff slabs. A CNIC validator that detects province and gender from the ID number. A cricket run rate calculator that supports custom balls per over because street cricket in Pakistan does not always use 6-ball overs. A construction bid comparison tool for US contractors that scores bids on price, completeness, and qualifications.
Some of these are niche. But they solve real problems for real people and nothing good existed for them before.
** The tech stack **
Frontend is Next.js 14 App Router with TypeScript, Tailwind CSS, Zustand for global state, and next-intl for 5 language support covering English, Urdu, Arabic, Spanish, and French. Deployed on Vercel.
Backend is Python FastAPI with PyMuPDF for PDF processing, pdf2docx for Word conversion, rembg for AI background removal, yt-dlp for video downloading, pytesseract for OCR, and LibreOffice headless for converting Excel and PowerPoint files to PDF. Deployed on Render.
Realtime features use Supabase. The rest is just browser APIs.
*The most interesting thing I built *
The online clipboard tool.
The problem: you are on your phone and you need to get a chunk of text to your laptop without emailing yourself or using WhatsApp. Most solutions require an account or an app install.
My solution: open dukotools.com/tools/online-clipboard on both devices. A QR code generates instantly on the desktop pointing to a URL with a 6 character room code. Scan it on your phone. Both devices connect to the same Supabase Realtime WebSocket channel. Type on one device and the other updates in under a second. No account. No app. Session expires in 60 minutes and nothing is stored after that.
The interesting engineering parts were managing WebSocket reconnection with exponential backoff when the connection drops, handling the edge case where both devices type simultaneously without one overwriting the other, and generating the QR code entirely client side with zero server calls using qrcode.react so the feature works even if the backend is down.
It is a small feature but users genuinely love it. It solves a daily annoyance in a way that feels like magic the first time you use it.
What was harder than I expected
Getting the background remover to work reliably in production.
rembg is an incredible open source library that removes image backgrounds using a U2Net machine learning model. The problem is it downloads a 170MB model file on first run. On Railway and Render free tier the first request after a cold start would time out waiting for the model to download.
The fix was embarrassingly simple once I figured it out. I added a line to the Dockerfile that runs a dummy background removal operation during the Docker build phase. This forces the model to download and cache during build time rather than at runtime. First request now responds in under 3 seconds instead of timing out.
One line of Python in the Dockerfile saved me days of debugging.
What I would do differently
Start marketing on day one.
I built for four months before telling a single stranger about the site. Every tool I added in month three could have waited. The first 20 tools were more than enough to start collecting feedback and finding out what people actually wanted.
Building feels productive. It is comfortable, measurable, and completely in your control. Marketing feels uncertain and uncomfortable. So you keep building instead.
But 120 tools with zero users is worth less than 20 tools with 500 daily visitors. I know this now. I am telling you so you do not make the same mistake.
Where it stands today
The site is live at dukotools.com. It is completely free. I am only starting to do marketing now after 4 months of building in silence.
If you have 2 minutes I would genuinely appreciate you trying any tool and telling me what is broken, what feels slow, or what tool you use daily that I have not built yet. That feedback is more valuable to me right now than anything else.
And if you have ever built something and kept it hidden for too long , you are not alone. Ship earlier than you are comfortable with. Every time.
Thanks for reading. I am documenting this whole journey publicly if you want to follow along.