Archives
All the articles I've archived.
-
Why it exists · Ward Why I built Ward: a porn and website blocker where the hard part is the off switch
1,600 one-star reviews of porn blockers say the same four things: a paywall after a quiz, a VPN that breaks the internet, an easy bypass, and a fee to uninstall. Ward's answer is a free filter that blocks on the device, a waiting time instead of a wall, and a DNS-only tunnel. What iOS does and doesn't let you do, and why the hosts file wins on desktop.
-
Engineering
Design notes from Dynet: Excel as the integration contract, transactional imports, and six roles on one API
Engineering notes from building a fibre-installation planning system on Node.js, MongoDB and React: matching hostile Excel headers, importing inside a transaction with live progress over SSE, and running six roles through one JWT-guarded API.
-
Guide · Textrix QuillBot and Grammarly alternatives on iPhone — including the one already built into iOS
A fair comparison of paraphrasing and grammar tools on iPhone — QuillBot, Grammarly's keyboard, Apple's Writing Tools, and Textrix — on languages, rewrite styles, OCR and PDF support, pricing, and whether your text leaves the phone. Written by the developer of one of them.
-
Guide · Murmur Otter alternatives that work offline: on-device voice transcription and notes on iPhone
A fair comparison of voice-to-text and AI note apps on iPhone — Otter, Apple's Voice Memos and dictation, Aiko, and Murmur — on where the audio goes, what happens to the transcript afterwards, pricing model, and what actually works in airplane mode. By the developer of one of them.
-
Guide · Underway Parcel, AfterShip, Shop or Underway? Choosing an iPhone package tracker by what it asks for
A fair comparison of the package-tracking apps people actually install on iPhone — Parcel, AfterShip, Shop, the carriers' own apps, Apple's built-in tracking — judged on carriers covered, delivery-day features, price model, and whether the app wants your inbox. By the developer of one of them.
-
Guide · Cura Termius alternatives for iPhone and Android — and when an SSH client isn't enough
A fair comparison of the mobile SSH clients people actually use — Termius, Blink Shell, Prompt, JuiceSSH, Termux — on what matters from a phone: terminal quality, key handling, price model, and whether you can see a server's health before you open a shell. Written by the developer of one of them.
-
Guide · QuestLog How to pick what to play next from a game backlog you'll never finish
A practical system for a backlog bigger than your free time: sort by time-to-beat not hype, keep four honest statuses, let something random choose on a work night, and track finishes so the pile stops growing. With the app built around exactly this.
-
Guide · Mantra How to put daily affirmations on your Android lock screen (and have them change automatically)
Three ways to get your own words on an Android lock screen — a static wallpaper you make yourself, a widget, or an app that re-renders your affirmation on a new background every morning — with the trade-offs of each and the settings that matter.
-
Guide · Murmur Offline voice-to-text on iPhone: what actually runs on the device (and what quietly doesn't)
Apple's built-in dictation, the Voice Memos transcript, third-party transcription apps and fully on-device Whisper — which ones work in airplane mode, which ones send audio to a server, and how to tell the difference. From the developer of an on-device voice-notes app.
-
Guide · Ismi Is this baby name in the Quran? How to check a name's meaning and source properly
A practical method for verifying a Muslim baby name: find the Arabic root, look it up in the Quranic Arabic Corpus, distinguish a real occurrence from a look-alike word, and check the meaning against a dictionary rather than a forum. Plus the app that has already done this for 1,826 names.
-
Guide · Underway How to track packages on iPhone without giving an app your email
Four ways to follow USPS, UPS, FedEx, DHL and other parcels on an iPhone — the carriers' own apps, Apple Mail and Wallet, Shortcuts, and a private tracker — and what each one asks for in return. Written by the developer of one of them.
-
Why it exists · ADB Remote Why I built ADB Remote: the thirty-second IDE launch for a three-second command
Android Studio is the right tool for writing code and the wrong tool for pulling a file. ADB Remote is the window in between: logcat, Gradle, device files, screenshot diffs and Git checkouts as a native macOS app built with Compose Multiplatform for desktop. Why a desktop GUI, what it wraps, and why it's signed and notarized.
-
Why it exists · Mantra Why I built Mantra: your own words on the lock screen, and the Android bug where setting a wallpaper kills your Activity
Affirmation apps push other people's quotes; wallpaper changers have no words. Mantra is the gap between them. The Play Store keyword that decided the name, the Material You re-theme that recreates your Activity a second after you set a wallpaper, WorkManager's first-run surprise, adaptive scrims from luminance stats, and why user photos are never paywalled.
-
Why it exists · QuestLog Why I built QuestLog: a game backlog tracker with a roulette wheel, and the API that died halfway through
The Friday-night problem: more games saved than played, and an hour spent choosing. QuestLog's roulette wheel, why time-to-beat is the most important field in the app, what happened when RAWG shut down mid-build and IGDB replaced it, shipping a Kotlin Multiplatform codebase to Google Play, and two Compose bugs that cost real days.
-
Why it exists · Textrix Why Textrix moved from a cloud model to on-device AI (and what it cost)
Textrix launched in 2024 sending every paragraph to a cloud API. Version 2.8 runs the AI on the iPhone — Apple's on-device model where available, a downloaded local model everywhere else. Why the switch, the 940 MB download problem, what got worse, what got better, and the keyword audit that found the app ranking for 'proofread' at #219 and nothing else.
-
Why it exists · Booksum Why I built Booksum — and what chasing 'book tracker' taught me about App Store keywords
Booksum started as a fix for forgetting what I read: scan the page, keep the passage, summarise it on-device. Then it shipped under the wrong title. The numbers behind renaming 'Book Tracker & Scan' to 'Reading Journal', the intent traps ('summary' is a meeting-notes term, 'passage' is a health app), and why brand names got stripped from every non-US title.
-
Why it exists · Marjai Why I built Marjai: 1,463 rulings, verbatim, offline, and no AI anywhere near the text
Scraping Sayyid Sistani's al-Masail al-Muntakhaba from the official site and proving zero mismatches, why the source's own numbering typo was kept, Arabic search that ignores diacritics and hamza forms, the decision to stay Arabic-only, and shipping iOS and Android from one Compose Multiplatform codebase.
-
Why it exists · Ismi Why I built Ismi: a baby-names app where every meaning has a source
Most Islamic baby-name apps ship meanings copied from each other, some of them wrong. How Ismi's names pipeline works — Wikidata harvest, Quran citation verification against the Quranic Arabic Corpus, an LLM judge that rejects homographs like 'Matt → he died' — why the app is sect-neutral, and why it ships two native apps from one dataset.
-
Why it exists · Underway Why I built Underway: a package tracker that doesn't read your email
The App Store's package-tracker category is ads, inbox scraping and $7.99-a-week trials. What it costs to track a parcel through a carrier aggregator, why live tracking is paid, why annual is priced above the category and why there is no free trial — and the carrier-terms risk that killed a beloved competitor.
-
Why it exists · Murmur Why I built Murmur: voice notes with Whisper and a 0.6B LLM running entirely on the iPhone
Why a voice-note app should never upload audio, how WhisperKit and an MLX-hosted Qwen3 fit together on a phone, the seven-second budget per note, the crash that looked like memory pressure and wasn't, and what a one-time price means for an on-device app.
-
Why it exists · Cura Why I built Cura: an SSH client that shows you the problem before you open a shell
The 2 AM pager problem, why Cura reads /proc over plain SSH instead of installing an agent, how the health score is weighted, the BouncyCastle bug that silently broke TLS for every SDK in the app, and why Pro is a one-time purchase.
-
Guide · Booksum How to Scan Book Pages to Text on Android (and Actually Keep It)
Three ways to OCR book pages on Android — Google Lens, Drive scans, and a dedicated book scanner that builds a searchable library with AI summaries and flashcards from what you read.
-
Guide · Textrix How to Summarize a PDF on iPhone (3 Ways That Actually Work)
Three practical ways to extract and summarize PDF text on an iPhone — built-in iOS tools, chatbot apps, and a dedicated utility that turns a PDF into a 3-sentence summary in under a minute.
-
Guide · Cura How to Monitor a Linux Server From Your Phone (iOS and Android)
Four real ways to check CPU, RAM, disk, and Docker on a Linux server from your phone — plain SSH commands, self-hosted dashboards, monitoring SaaS, and a mobile-first SSH client with built-in alerts.