Like many of you, I have thousands of photos spread across devices, cloud drives, and chat histories. Finding that one specific picture from "last summer's beach trip" meant endless scrolling. Folders and filenames don't help when you can't remember when or where you saved something.Morse Code Translator So I built a tool to fix my own problem. It turned into a real product. Upload your photos, an
Picking a screenshot API feels binary until you start integrating, then the edges show: one service has a Python SDK but no async queue, another has webhooks but charges extra for authenticated pages, a third makes you wire up an S3 bucket yourself. This post walks through how Rendershot and Urlbox compare across the dimensions that actually hurt to change later. Upfront: I build Rendershot, so tr
The first AI feature I shipped on a flat plan lost money on the third user who discovered it. Not slowly. Immediately. He was running a script through it on a loop because the UI did not stop him from doing that, and his single account burned through more in API costs that week than the feature was supposed to make in a month. I shipped the fix on a Sunday and rewrote the pricing on a Tuesday, and
The problem we kept seeing Product, marketing, and CX teams want on-site feedback, NPS, and lightweight announcements (changelog nudges, maintenance banners, promos) on real pages—marketing sites, docs, and product surfaces. another heavy client SDK or a multi-week integration just to ship those surfaces. a small script + a widget on the page. Saytics—what we optimized for, the tradeoffs that fa
We Rewrote Our Angular 18 App in React 20 and Increased Developer Velocity by 40% Last quarter, our engineering team made the bold call to rewrite our 3-year-old Angular 18 production application in React 20. After 6 months of development, we cut over to the new stack with zero downtime, and the results have exceeded our expectations: we’ve measured a 40% increase in developer velocity, alongsid
L'IA vocale en gestion de chantier : retour d'expérience après 50 projets BTP Le problème : les mains pleines, le temps compté Sur un chantier, le chef de projet ou l'artisan a les mains occupées. Qu'il soit en train de mesurer une façade, de vérifier l'aplomb d'une cloison ou de valider du béton fraîchement coulé, la dernière chose dont il a besoin est de sortir son téléphone pour re
Originally published at hafiz.dev Every SaaS app eventually hits the same question: how do you make one application serve multiple customers with separate data? If you're building with Filament, the answer is closer than you think. Filament ships with a built-in tenancy system that handles tenant switching, automatic resource scoping, registration, and profile management out of the box. But here's
White labeling is more common than you might think. When developing software, you often need to deploy the same application for multiple clients, each requiring their own customization: unique color palettes, logos, or specific variants for a link. Without a proper strategy, you might be tempted to simply clone the existing repository and implement client-specific changes on demand. However, this