Dansday
Articles | Dansday
The Month I Deleted the Reasons
August 2026: a second country turned out to be four environment files, the day job got its first CI in three years — written by someone else — and I spent the month deleting the comments that explained why the code worked.
Published on Aug 30, 2026
Read more >>The Month XP Became Money
July 2026: at the day job every good change was a subtraction — a pending transaction that was never a payment, a report nobody read. On the bot, twelve days added a crypto market, a zero-edge casino and a live voice.
Published on Jul 31, 2026
Read more >>The Month a Country Became a Config Value
June 2026: a design for two countries closed unmerged; a first() call that only became a bug once used as intended; and a Discord bot whose experience points became a currency with five verbs, one of them gamble.
Published on Jun 30, 2026
Read more >>The Month the Engine Ran Out of Fuel
May 2026: ninety-one contributions after April's seven hundred and ninety. The day job held at twenty-four pull requests; both side projects stopped dead. The reason is an article I published on 14 May.
Published on May 31, 2026
Read more >>The Month My Guards Didn't Guard
April 2026: 789 contributions across four repositories. A guard reading a column that never held the value, a permission system defeated by its own author within a day, semantic search shipped in one evening, and every claim rewritten from the diffs.
Published on Apr 30, 2026
Read more >>The Month I Built the Site You Are Reading
March 2026: 105 pull requests across three codebases. A terminal that went from a model pretending to be a shell to hybrid retrieval in twelve days, a privacy mask traded for a prompt instruction, and a control panel rewritten in one weekend.
Published on Mar 31, 2026
Read more >>The Month Only Three Left Became a Setting
February 2026: forty-three pull requests, a framework upgrade that needed four repairs the week it landed, a webhook delay tuned in the dark, and a stock figure that became a text field.
Published on Feb 28, 2026
Read more >>The Month I Turned the Cache Off Quietly
January 2026: two dozen pull requests that deleted twice what they wrote, stackable vouchers patched twenty-two minutes after merging, and the response cache switched off inside an unrelated five-file tidy-up.
Published on Jan 31, 2026
Read more >>The Month the Installer Was Still Open
December 2025: the installer was still reachable, vouchers learned to stack, three session-cookie defaults nobody had set, and the second half of a price-label fix that took three months.
Published on Dec 31, 2025
Read more >>The Month In-Stock Phones Looked Sold Out
November 2025: three P0s about what the site costs to run, 1,323 lines of query optimisation abandoned, a checkout you arrive at pre-filled, and a product feed that had been reading conditions off product names.
Published on Nov 30, 2025
Read more >>The Month the Gateway and the Shop Disagreed
October 2025: the gateway and the shop disagreeing about who had paid, nineteen months without a unique constraint, and a geolocation guess that had been overriding the store customers picked themselves.
Published on Oct 31, 2025
Read more >>The Month I Stopped Invalidating the Cache
September 2025: eleven months of cache invalidation replaced by a ten-minute nginx TTL, a pull request that only deletes, and a price label corrected in one of the two places it lives.
Published on Sep 30, 2025
Read more >>The Month I Wrote the README
August 2025: a README that exposed how the project really works, a variant selector rebuilt around a slide-up, two more popup repairs, and a cache system that had been invalidating one of every two URLs since November.
Published on Aug 31, 2025
Read more >>The Month the Checkout Asked for Your NRIC
July 2025: RM800 off for pickup only, six production fixes in five days, and an invalidation job that dispatched itself twice against a metered API.
Published on Jul 31, 2025
Read more >>The Month Out of Stock Became Pre-Order
June 2025: out of stock became pre-order, a 445-line pull request titled UI, shuffled testimonials fighting the response cache, and a billed background job introduced by accident.
Published on Jun 30, 2025
Read more >>The Month Live Streaming Shipped Twice
May 2025: a livestream header shipped, reverted and reshipped in eight days, cache invalidation as a billed API, and a ten-line hotfix that three later articles depend on.
Published on May 31, 2025
Read more >>The Month the Popup Had No Close Button
April 2025: a popup with no way out, two hotfixes and a revert, a slide-out with the return policy baked into its filenames, and an error scroll hardcoded to 675 pixels.
Published on Apr 30, 2025
Read more >>The Month the Recordings Became Tickets
March 2025: six fixes drawn from watching real customers, a storage list that finally sorts by capacity, text written for Google folded away from people, and an invisible div that had been eating clicks.
Published on Mar 31, 2025
Read more >>The Month Hotjar Came Back for Five Days
February 2025: a session recorder switched on for five days, 460 lines opened twice, and homepage reviews that live in a config file under a Google logo.
Published on Feb 28, 2025
Read more >>The Month the Shop Started Selling Insurance
January 2025: the shop started selling device insurance, five rounds of design review on one popup, and a warranty advertised as free while ten per cent of its price counted toward advertised savings.
Published on Jan 31, 2025
Read more >>The Month I Put a Hat on the Cat
December 2024: a Christmas hat on the cat, a shortcut that came due, and the pull request that added a third place where the post-voucher price gets worked out.
Published on Dec 31, 2024
Read more >>The Month 863 Lines Lost to 137
November 2024: 863 lines lost to 137, a Low Stock badge at zero quantity, a WebP fallback every browser downloads, and the homepage banner leaving the framework.
Published on Nov 30, 2024
Read more >>The Month Vouchers Took Twelve Pull Requests
October 2024: a discount that took twelve pull requests, a framework that could say no but not why, and nine small changes I did not count.
Published on Oct 31, 2024
Read more >>The Month a Postcode Became 2624
September 2024: fifteen stores across five states, a shipping choice that could not survive the back button, and three Kedah postcodes that PHP had been quietly reading as octal since the day the file was written.
Published on Sep 30, 2024
Read more >>The Month the Checkout Stopped Making Carts
August 2024: a checkout page that wrote to the database every time somebody looked at it, a preview button that took a whole editor down with it, and a session key I had been clearing wrongly since February.
Published on Aug 31, 2024
Read more >>The Month I Opened the Same PR Three Times
July 2024: a second Bagisto upgrade attempted three ways in one afternoon and merged after twelve days of review, an analytics change that left and came back unchanged, and a query detector aimed at a page I never suspected.
Published on Jul 31, 2024
Read more >>The Month I Wrote the Rules Down
June 2024: the month after the launch. Six precedence rules written out longhand in a pull request comment, a nine-argument constructor deleted, 140 lines out of the product model, and the first tests I ever wrote in this codebase.
Published on Jun 30, 2024
Read more >>The Month Five Pull Requests Took Three Weeks
May 2024: thirty-five commits on one branch, a hundred and eighty queries that became twenty, and a feature that shipped in June under somebody else's pull request.
Published on May 31, 2024
Read more >>The Month a Plus Sign Broke the Checkout
April 2024: an iPad that could not be bought, a savings figure that hid itself, 262 lines of JavaScript pulled out of a template, and the branch that ran into May.
Published on Apr 30, 2024
Read more >>The Month Order 119 Became Order 423828
March 2024: order 119 became order 423828, a pull request that took two months, and a CMS preview that rendered through a stylesheet the real page never loaded.
Published on Mar 31, 2024
Read more >>The Month the Money Became Real
February 2024: a checkout that takes real money, a 1,708-file framework upgrade, an invoice written from scratch, and the two-character bug that misfiled every billing address.
Published on Feb 29, 2024
Read more >>The Month I Deleted Half a Megabyte
January 2024: Core Web Vitals came for the homepage. One banner image was 475KB. Making it 58KB was the easy part — and the pull request I opened on 15 January did not merge until March.
Published on Jan 31, 2024
Read more >>The Month I Made the Prices Real
December 2023: nine pull requests into a two-week-old Laravel codebase, a product page rebuilt two hours after I proposed it, and prices that finally told the truth while the FAQ was still in Latin.
Published on Dec 31, 2023
Read more >>