RSS feed — subscribe to new writing · Ahsan Mahmood
The RSS feed for new posts. Copy one address into any reader and new writing arrives without an account, an algorithm or an email.
Everything in the feed is on the blog, permanently and in full. There is no newsletter and no notification prompt — this page and that one are the whole subscription story.
Not a feed person?
One address, pasted into any reader. No account, no algorithm deciding what you see, and no email address handed over. If I stop writing, nothing arrives — which is the point.
The feed
New writing, delivered by something you already control.
- Open feed.xml
- Read the blog instead
In the feed right now
- Loading the latest entries…
A feed reader is an inbox you own. It checks the sites you chose, on its own schedule, and shows you what is new in the order it was published. Nothing is ranked, nothing is promoted, and nobody learns what you read.
If you have never used a reader
Readers worth starting with: Feedly and Inoreader in a browser, NetNewsWire on Apple devices, or Slack — its /feed subscribe command takes the same address and posts new items into a channel.
The file is regenerated on every deploy, so it is current whenever the site is. Most readers poll every hour or so; there is nothing to configure at this end.
How often it updates
Subscribing
Copy this, then paste it into your reader’s “add feed” box.
Blog posts only, newest first, with the full excerpt and a link to the post. Project additions and site changes are not in it — that would turn a reading feed into a changelog, and the two want different attention.
What arrives
In the feed right now
- What does zero-cost infrastructure cost you? — Nothing paid sits in the critical path, so the product costs nothing to run. What that takes off your bill, what it forbids, and where a free tier ends.
- Can I hire a full-stack developer remotely? — Yes. Pakistan Standard Time, UTC+5, asynchronous by default, with calls across US, UK, EU and Australian hours, and a first reply within one business day.
- How long does a web app, an MVP or a full product take? — Small features 1–2 weeks, an MVP 4–8, a full production app 8–16. Where those ranges come from, how each is delivered, and what makes one of them slip.
- How much does custom software cost, and what is in a quote? — $800 is the floor for a small, well-defined feature. Everything above it comes from a scoping call, in writing. What that quote contains, and what it omits.
- Can one codebase ship web, Android and a browser extension? — Yes. One React and TypeScript repository becomes a web app, a Capacitor Android app, and a Manifest V3 extension, packaged three times for three stores.
- What is actually changing in web development — Not predictions. Four shifts I have already had to design around: crawlers that do not run JavaScript, the platform absorbing dependencies, types as the…
- Pricing and plans without a payment processor — Why my products take payment through a redirect and an admin grant instead of a checkout integration, what that costs, and the entitlement bugs that bite…
- How this site is built, and what I rebuilt to fix — React 19, Vite, TanStack Router, Supabase and a click dummy that is the visual specification. Including the outlet bug that made nine service pages render…
- The JavaScript features I actually reach for now — Intl for anything a person reads, structuredClone, at(), Object.groupBy, and the platform APIs that replaced dependencies. Plus the number formatting that…
- Micro-animation: the 100ms rule, and everything else is… — Motion that earns its place versus motion that is decoration. Why acknowledgement beats a toast, why the browser gives you two free properties, and the…
- From junior to senior: what actually changed — Eight years from a frontend job in Lahore to running twenty-three products alone. The three shifts that mattered, and the one I was slowest to make.
- A feature-request board on Firestore, and the rules that… — Vote counts that cannot be forged, a status workflow that means something, and the security-rule subtlety that makes a list query fail while the…
- Reflectify 3-3-1: a journaling app that deliberately has… — Three gratitudes, three wins, one focus. Why the entries never leave the phone, why there is no model reading them, and what a constraint does to a product…
- PregnancyPal: building health software when the data is… — Week-by-week tracking, vitals, fertility and a community — on a free tier, with no cloud functions. What health data changes about every architectural…
- FilesHub: building the storage backend instead of paying… — A self-hosted Laravel platform that replaced Firebase Storage and every transactional-email vendor across an entire portfolio. What it took, and the…
- Trizlink: one React codebase as a web app and an Android app — Two surfaces from one repository, with a third planned. What actually got shared, what could not be, and the free-tier limits that shaped the data model.
- Refactoring a monolith you cannot stop shipping — The rewrite that loses a third of your features, the seams worth finding first, and why "delete the dead code" is the highest-value refactor nobody…
- Firebase Auth and social sign-in: the parts that are… — Social login is easy to add and easy to get subtly wrong. Custom claims that lie, rules that trust the client, and why an extension cannot use the Auth SDK…
- Accessible design systems: what React Aria gives you… — Moving from a styled component library to headless primitives plus Tailwind. What accessibility work is genuinely free, what is not, and the rich-text rule…
- Admin panels: four failures that ship looking complete — Every one of these was found in a live admin panel, and none is visible in a code review or a green build. Plus why the screen list should be derived from…
- One codebase, web and Android: what Capacitor actually costs — Shipping the same React app to the browser and to Google Play. The parts that are genuinely free, the parts that are not, and the config bug that ships…
- TypeScript patterns I actually use, and one that cost me… — Typed translation keys, satisfies, discriminated state and branded ids — plus the conditional type that took my typecheck from 14 seconds to 170 and how I…
- SEO for a single-page app, without pretending to have a… — AI crawlers do not run JavaScript. Neither, reliably, does anything else you care about. Here is how I get real content into static HTML without adopting…
- Why I reach for TanStack Router — Typed routes turn a whole category of navigation bug into a build error. Here is the one that shipped to production in my own app before I moved, and what…
- A zero-cost backend architecture that actually holds — Twenty-three products, no servers, no monthly bill. Here is what the constraint removes, what it forces you to design properly, and the day a free tier…
https://aoneahsan.com/feed