What my last project taught me
Before this, I built learning-journey-os, another retro desktop-style site on a different stack. It taught me something important: the fake operating system is fun, but it is not the hard part.
The hard part is publishing.
Can I write something, save a draft, come back later, publish it, and trust it will still be there? Can I organise my thoughts without them ending up as final-final-actually-this-one.md in a random folder?
custardsquare.exe is a clean start with that lesson baked in. Same personality. Better foundation.
Why Payload and Next.js this time
I wanted a real CMS, not a custom one from scratch, not content buried in markdown files I forget to commit.
Payload CMS gives me /admin: drafts, publishing, media uploads, basically a boring reliable backend. Exactly what I need.
Next.js gives me proper public routes/articles, SEO, sharing, without trapping long-form reading inside a tiny draggable window.
The desktop is for discovery. The article page is for reading. That rule kept me honest when I wanted to jump straight to building windows and taskbars.
Content first, desktop second
This is the bit I have had to keep telling myself.
It is tempting to build the boot sequence, the Start menu, the pink vaporwave wallpaper, the pixel icons. That is the exciting part. But a beautiful shell with no publishing workflow is just… a screensaver.
So the first real milestone was not “make it look like Windows 98.” It was:
Can I write an article in /admin and publish it?
If the answer is yes, the project is real. The desktop can come later. The crumbs need somewhere to land first.
Why a fake desktop at all?
Old operating systems had personality. Chunky buttons. Title bars. Folders that felt like places. You clicked around and discovered things.
Modern interfaces are often beautiful, but sometimes too polished to feel lived in. I wanted custardsquare.exe to feel like you opened an old computer and found someone’s learning process scattered across the desktop — articles, notes, a resume in Notepad, sketches in Paint, a Recycle Bin that probably contains emotional damage.
Part blog. Part portfolio. Part tiny OS for my brain.
Why “custardsquare.exe”?
Because it made me smile.
A custard square is soft, layered, slightly messy, and very New Zealand bakery coded. The .exe makes it feel like a program you run, not a page you visit.
So the site boots with:
Starting custardsquare.exe…
Loading thoughts…
Indexing crumbs…
Restoring desktop…
Welcome, visitor.
Much better than “Welcome to my personal blog.”
What will live here
A mix of things, at different stages of done:
technical notes and debugging stories
UX/UI thoughts
project write-ups
career reflections
experiments and half-finished ideas
Some posts will be polished. Some will be seedlings. Some will start with “I thought this would be simple” and end with “it was not.”
That is the point. Learning in public without pretending everything is already neat.
The serious bit underneath the silliness
Under the retro chrome, there is a real publishing system: Postgres, a proper admin, draft and publish workflow, public article routes, and room to grow.
The public side gets to be magical.
The admin side has to be boring and reliable.
A second brain only works if it is easy enough to keep feeding.
Credits
Icons throughout the site come from the beautiful Windows 95 Plus-inspired packs by aconfuseddragon on itch.io. Thank you for the pixel work that made this idea click. This is a personal nostalgic project and is not affiliated with Microsoft.
What I hope this becomes
A place to document what I am learning without needing perfection first.
A place where someone can click around, or read an article properly on its own page, and understand how I think, what I care about, and how I approach building things.
I like useful software. I like thoughtful interfaces. I like learning by doing. I like old desktop metaphors more than is probably reasonable.
I did not build custardsquare.exe because the world needed another blog.
I built it because I needed a place for the crumbs.