Field notes from building and running software
Practical write-ups on software development — Flutter, app operations, servers, scraping and AI — from running 15+ apps in production.
- Web & SEO A 411-Line Python Site Generator for a 3-Language Blog Why we wrote our own static site generator instead of using Hugo, and how it handles hreflang, noindex legacy posts, ad slots, JSON-LD and safe incremental FTP deploys.
- Server & Infra Prepared Statements Can Change Your JSON Types in PHP Switching mysqli query() to prepared statements turns "7" into 7 in json_encode. Measured on PHP 8.5 + MariaDB 11.8, and why an old Flutter app crashes on it.
- Server & Infra LiteSpeed .htaccess and Non-ASCII URLs, Measured Encoded or decoded patterns, how to write a space, whether a 301 keeps the query string: 23 requests against a real LiteSpeed server, and how to test safely.
- Server & Infra What Silently Broke After a Hosting Account Migration Every page returned 200 after a hosting account move, yet the FTP root, cron paths, venv, permissions and a cron field had all quietly broken.
- Flutter 16 Apps to Modern Flutter in 8 Weeks: What Broke 6 web-view wrappers went native and 10 older Flutter apps were modernised in 8 weeks. The build errors, store rejections and rollbacks we hit.
- App Release & Ops Scheduled FCM Pushes From a PHP Cron on Shared Hosting Result notifications for 8 Flutter apps from a 5-minute PHP cron and FCM HTTP v1. Send when the data changed, once a day, and never trust a 200.
- Flutter Dart http Does Not Follow 301 on POST: Measured A Flutter app search failed silently on a POST 301. What Dart 3.11 and http 1.6 do for every redirect code, compared with curl, and a tested fix.
- Server & Infra Your Host's CDN May Be Caching API Responses and 301s After a routing change, four API URLs kept serving old 301s from the CDN. What Hostinger's CDN caches, measured header by header.
- App Release & Ops Writing App Privacy Policies From Manifests, Not Memory 24 store listings pointed at a placeholder template. We rebuilt policies for 17 apps from pubspec, Info.plist and the merged Android manifest.
- Algorithms & Data Structures Binary Search in C: Re-running Our 2021 Code Binary search halves a sorted array on every step. Our 2021 example no longer compiled, its comparison counts were off by one, and it had the classic overflow bug. Fixed and measured.
- App Release & Ops Tuning AdMob in 17 Flutter Apps From Our Own Server Why we replaced Firebase Remote Config with a 141-line PHP endpoint, the app-side fallback, and what changing ad intervals without a rebuild did to CTR.
- Web & SEO WordPress to Static Without Breaking App Store URLs 24 store listings pointed at WordPress pages. How we moved to a static site on LiteSpeed, kept every registered URL at 200 and cut over in 5 minutes.
- Server & Infra Reorganize a Legacy PHP API Without Breaking Old Apps 8 API folders, 102 PHP files and apps you cannot force-update. Moving them under /api/v1 with internal rewrites, response snapshots and a proof header.
- AI & LLM AI Coding Agent on a Live Server: Guardrails That Held An AI agent migrated our live site and 8 app APIs in one evening. The mistakes it made, the checks that caught them, and what stayed with humans.
No matching articles