Start Here
Two story series, each best read from the top. From Zero to Ship is the year-long story of building 20+ tools with AI as a non-developer. Stolen from the Feed is what I keep carrying home from this community — and actually building. The Fix Log is neither: just the errors that cost me an evening, and what actually fixed them.
From Zero to Ship

1What you actually need to build software (it isn't code)

2The day my software collapsed in front of everyone

3When a Spreadsheet Became an App (and I Wasn't a Programmer)

4When I Started Building Software for People, Not Problems

5The Phone Call That Changed How I Build Software

6The Real Job Isn't Building It — It's Keeping It Running

7How I shipped my first real tool without knowing how to code

8Six Teams, Six Different Forms: My First Real Project

9The Treasure Room That Was Too Slow: Outgrowing My Server

10The Week I Held My Breath: Moving to a Real Server

11When AI Coding Tools Were Dumb (and Nights Were Fun)

12The First Time I Opened a Door to the Outside Internet

13The Day Everything Changed: Meeting a Self-Taught Builder

14Building an Intranet to Replace Our Scattered Group Chats

15Building My Own Navigation: Why Each Tool Got Easier to Ship

16In the End, It Was Always About People

17None of It Was for Me: A Year of Building With AI

18Six Rules I Learned From a Year of Working With AI

19My Actual Tool Stack: No Coding Background Required

20Your First 30 Days With AI: A Simple Plan

21So, What's Your First One?

22Tool #23 Is the Blog You're Reading Right Now

23The Exact Prompts I Use So AI Writes Excel Formulas for Our Staff

24When AI Code Doesn't Work: My Debugging Routine as a Non-Developer
Stolen from the Feed

1The Language Barrier That Made Me Use AI Better

2The Loot Report: Five Strangers Audited My Systems in One Day

3The Loot Report, Vol. 2: Four Lines That Fixed the Boring Parts

4Who Holds the Pen: The One Check You Can't Run on Yourself

5The Stranger Who Rewrote My Test Four Times

6The Reviewer Who Was Never Outside the Room

7The Number That Agreed With Me

8Measured It, Shipped Nothing

9What Your Green Light Is Actually Testifying To

10The Numbers I Picked Until the Red Went Away

11A Recollection Reported as a Record

12The Gate That Certified What I Threw Out

13The Deploy That Only Half Arrived
The Fix Log
$
405 Method Not Allowed405 Method Not Allowed on a POST That Should Work
Your form posts to a PHP file that exists and handles POST, and the server answers 405 before your code runs. On appliance web servers behind a WAF, 405 is often a disguise for something else entirely — including your own error responses.
$
toISOString() returns the previous daytoISOString() Gives You Yesterday: JavaScript Dates in a Non-UTC Timezone
A date picker set to the 1st saves as the 31st of the previous month. toISOString converts to UTC first, so anywhere east of Greenwich, early-morning timestamps roll back a day. Here is the fix and the three places it hides.
$
GROUP BY merges different emojiMySQL GROUP BY Merges Different Emoji Into One Row
Your reaction counts are wrong: 👍 and 👎 land in the same group. In utf8mb4_unicode_ci, many emoji outside the Basic Multilingual Plane compare as equal, so GROUP BY collapses them. The fix is one COLLATE clause.
$
Call to undefined function str_starts_with()PHP 7.4: Call to undefined function str_starts_with()
Your code works locally and returns a blank white page or a 500 on the server. The cause is almost always a PHP 8 function or syntax you used without noticing, running on a PHP 7.4 host — and str_starts_with is the one that catches people first.
$
cURL error 28: Operation timed outPHP curl errno 28: Connection Timed Out — but Only From the Server
Your API call works from the terminal and times out from PHP with errno 28. If the host resolves to both IPv6 and IPv4 and your network drops IPv6, curl waits on the AAAA record until it gives up. One option fixes it.
$
old version served after deployYour PWA Still Shows the Old Version After Deploy
You deployed, you hard-refreshed, colleagues still see yesterday. The service worker is serving its cache and your new files never got requested. The fix is one line, and the reason it keeps happening is that nothing tells you when you forget it.
$
Task completed, exit 0 - nothing happenedSynology DSM Scheduled Task Runs, But Your PHP Script Does Nothing
The task shows as completed in DSM, and nothing in your script happened. The CLI PHP on a Synology NAS is not the PHP your website runs — different binary, different modules, different config. The reliable fix is to stop using the CLI at all.
$
.htaccess has no effectYour .htaccess Does Nothing on a Synology NAS
You add an .htaccess file to block a folder or rewrite a URL on Synology Web Station, and absolutely nothing happens. No error, no effect. The reason is that DSM serves your site through nginx, which has never read .htaccess in its life.