Dansday
Articles | Dansday
Two Cores, 31,032 Events, 284 That Mattered
The box has two cores. Discord sent 31,032 gateway events in one window; 284 were messages anyone had asked to forward. How I found the other 99% — and the four places it was costing me — by counting instead of reading code.
Published on Sep 26, 2026
Read more >>39 Effects, One Canvas, and a Lot of Cleanup
v26.7.0: member card themes you roll for with XP, and the canvas rewrite that replaced CSS animations after iOS 18 broke them. Most of the release is fixes.
Published on Sep 14, 2026
Read more >>Eleven Servers and 511 Members
11 servers, 511 members, 56 million XP. I am happy with this.
Published on Sep 3, 2026
Read more >>Two AIs That Share Nothing But a Database Row
Two models, two processes, coordinating through Redis. How each one actually works.
Published on Sep 1, 2026
Read more >>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 >>Giving an AI Direct Access to My Own Website
How an MCP server let an assistant write, publish and post to my own site
Published on Aug 29, 2026
Read more >>540 Lines to an Official Discord Application
From 540 lines and a banned library to a listing in Discord's App Directory
Published on Aug 24, 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 >>Vibrant Visual
Transforming a blocky world into a vibrant masterpiece
Published on May 17, 2026
Read more >>Chat CTA 2.0
Give our marketing team a robust dynamic configuration layer
Published on May 16, 2026
Read more >>AWS for our Minecraft Bedrock server
I chose to go with a t3 small instance
Published on May 15, 2026
Read more >>3cat c means claude
significant shift in how my team at 3cat operates
Published on May 12, 2026
Read more >>Got free macbook because of my dedication
The team at 3cat surprised me with a new MacBook M4
Published on May 11, 2026
Read more >>I always open to anyone building interesting tools
If you are working on something that solves a developer problem
Published on May 7, 2026
Read more >>Officially launched the Dansday company page
This is just the start of making my work more accessible
Published on May 5, 2026
Read more >>3cat x dansday
Added to an account with a $200,000 monthly usage limit across any Claude model
Published on May 4, 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 >>How a missing index draining our disk IO budget
Without an index, PostgreSQL has no choice but to fall back to a sequential scan
Published on Apr 27, 2026
Read more >>Gemini 3 hallucination
A random hallucination, or another user's session leaking into mine?
Published on Apr 26, 2026
Read more >>The 37MB binary surgery
Why leaving metadata in your Docker images is a million dollar mistake
Published on Apr 25, 2026
Read more >>NocoDB its solid Airtable alternative
It's not just a replacement. In many ways, it feels like an upgrade
Published on Apr 24, 2026
Read more >>Running local language models
I decided to test out Qwen's 2.5 Coder model
Published on Apr 23, 2026
Read more >>Choosing between a free and a paid AI model
This trade-off between cost and quality isn't just for housing
Published on Apr 22, 2026
Read more >>Dansday is no longer just a nickname
As part of the program, we've secured $100,000 in AWS credits
Published on Apr 21, 2026
Read more >>AWS free $200 credits
That's what happened when I logged into my AWS account and saw a banner for free credits
Published on Apr 20, 2026
Read more >>Bypassing Google Forms
Stepped in to help another team here at 3cat tackle a massive operational bottleneck
Published on Apr 18, 2026
Read more >>Keep It Simple Stupid
KISS stands for keep it simple, stupid. it is not an insult
Published on Apr 16, 2026
Read more >>How the dansday bot leveling system works
Most discord bots handle leveling by simply counting chat messages
Published on Apr 14, 2026
Read more >>Launching bot.dansday.com
I am excited to introduce my latest project, the dansday discord bot
Published on Apr 11, 2026
Read more >>AWS credits are essentially a runway extension
I recently decided to take a hard look at our aws infrastructure over at 3cat sdn bhd
Published on Apr 9, 2026
Read more >>Spending some time experimenting with Gemini recently
My first impressions are honestly a bit of a mixed bag
Published on Apr 8, 2026
Read more >>My first multi-tenant Platform as a Service
Re-architecting go blox project into a multi-tenant software as a service
Published on Apr 5, 2026
Read more >>It has been one month since I launched this new project
The project just crossed 311,000 requests with over 10,000 active interactions
Published on Apr 4, 2026
Read more >>I hit 1,000 contributions on GitHub
I was not just chasing a green contribution graph
Published on Apr 2, 2026
Read more >>I host the application using sumopod.com
Disnut infrastructure costs exactly Rp. 150,000, which is roughly RM35 or $8
Published on Apr 1, 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 >>Why I love SSR
The common critique of traditional SSR is that modern web applications need to feel alive
Published on Mar 31, 2026
Read more >>AI is not here to replace us
When I use these tools, the immediate benefit is velocity
Published on Mar 29, 2026
Read more >>3cat gave me opportunity to work from my home
Just sharing working remotely is not just about writing code from a different desk
Published on Mar 28, 2026
Read more >>Moved the DISNUT infrastructure over to Cloudflare
I effectively decreased the physical distance data has to travel
Published on Mar 26, 2026
Read more >>How the AI Terminal Finds Relevant Content
Full-text search is fast but dumb. Embeddings let the terminal find related content.
Published on Mar 25, 2026
Read more >>Building a Live GitHub Contribution Page
A contribution page that stays fresh without hammering the GitHub API on every visit
Published on Mar 24, 2026
Read more >>I built an AI terminal for my website
Letting visitors ask quick questions about my recent work, even when I am offline
Published on Mar 21, 2026
Read more >>Unprotected API on Bagisto e‑commerce installation
Critical security vulnerability within a core component of the Bagisto e‑commerce platform
Published on Mar 20, 2026
Read more >>Continuing the GO BLOX journey
Discord bot for the Indonesian Roblox community
Published on Mar 19, 2026
Read more >>Why 850 contributions matter
Take this 850 contributions or double it and give it to next person?
Published on Mar 17, 2026
Read more >>Critical XSS vulnerability discovered in Bagisto 2.2.0
A severe client‑side template injection (CSTI) flaw was uncovered
Published on Mar 16, 2026
Read more >>Building for the GO BLOX community
A custom discord bot I built specifically for my own community
Published on Mar 15, 2026
Read more >>Turned a single server into a mini‑developer platform
Built disnut. my personal cloud infrastructure in 1 week
Published on Mar 13, 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 >>