Session 1
Sunday 26 July 2026 · 19:42
The empty folder
It started at 7:42 on a Sunday evening with nothing but a folder name and a
sentence: I want a place where people can read what I write, see what I
photograph, and talk back to me — and I want to own it.
By 11:16 that night there was a working site on my laptop. Sign in with your
email, get a six-digit code, post something, like it, comment on it. Not a mockup.
The real thing, running.
That first night set the constraint everything since has been built inside:
no frameworks, no build step, and almost no outside dependencies.
Three, in total. It sounded like a limitation. It turned out to be the reason the
whole project stayed understandable to someone who cannot read the code.
v1.08
27 – 31 July 2026 · sessions 2–9
Somewhere to put things
Five days of evenings. Photographs and videos that keep their own shape instead of
being cropped into squares. A full-screen viewer with arrow keys. A gallery that
merges every photo on the site into one grid without ever duplicating a file.
Folders, because a few hundred photos with no albums is a shoebox. Bulk selection,
so filing a month of pictures is one action rather than forty.
Then something small that turned out to matter more than any of it:
a version number under the logo.
What broke
Twice I uploaded a change, refreshed the site, and saw nothing different. Twice I
concluded the deploy had failed. Both times it had worked perfectly and my browser
was quietly serving me the old page from its own memory. Hours went into a problem
that did not exist.
The fix is four characters in the corner of the screen. The version number is
baked into each upload, so if it has not changed, the new version is genuinely not
running. A question that cost me a whole evening is now answered by looking.
v2.0 → v2.03
Saturday 1 August 2026
The day I stopped building a feed
One long day, four versions. The home page stopped being a single scroll of
everything in order and became topic columns — I write into as
many topics as a post belongs to, and the reader picks up to five of them and gets
a column each, side by side.
The idea underneath it is the one I am still most pleased with. A photograph of
Chongqing at night is Photography and China. Forcing me to file it under
one would hide my best work from half the people who came for it. So topics are a
library I write into, and columns are one reader's arrangement of that library.
Same posts, everybody's own front page.
A first-time visitor never sees a chooser or an empty screen. They get my default
three. Customising is something you discover, not a form you fill in before you are
allowed to read anything.
What broke — 45 seconds
My host runs an image optimiser over everything I upload. I decided I did not want
it touching my photographs and switched it off. The site went from fast to
taking over forty-five seconds to load. Every photograph, full size, down
a domestic connection.
I turned it back on and it has stayed on. Written into the project notes in
capitals: that trade is settled, do not suggest turning it off again. Some
decisions are worth making once and then defending against your future self.
What broke — the invisible one
A panoramic photograph posted fine and then simply was not there. Not an error, not
a warning — the post saved and the picture was a broken box. The optimiser silently
refuses images past a certain size, and refuses them after the upload
succeeds, so nothing in the site ever knew.
This is the failure mode that scares me most — the one that
reports success. Now the browser quietly shrinks anything enormous before it is
sent. A 12000-pixel panorama arrives as 3000 and 241 KB becomes 22 KB, while a
normal photograph is passed through untouched, byte for byte.
That same day I also added something with no visible benefit at all: 25
automated checks that prove I can still undo everything. Not that the undo
script exists — that it genuinely works, that it restores a broken project, that it
does not delete itself in the process, and that it never touches my posts, my
photographs or my members. A way back that has not been tested is a story you tell
yourself, not a safety net.
Live
Tuesday 4 August 2026
Launch day
888story.com went live. Nine days from an empty folder to a real site on a real
domain, with real photographs on it, that anyone could read without signing up for
anything.
There is a version of this story where launch is the ending. It was not even
halfway.
v3.0
Wednesday 12 August 2026 · 22:40
The Atlas
Columns are a good answer to "what have you written". They are a terrible answer to
"how does any of this connect" — and connection is the whole point of what
I am doing. China and photography and the businesses and the reason all three are
the same project.
So I built a second layout. The Atlas draws the site as a map: my
photograph in the middle, every topic a circle orbiting it, and lines between the
circles. The lines are the good part. On any post I can say this connects to
that topic, and here is why — and the note matters more than the link. "The
shop is most of that 41%" tells you something a bare arrow never could.
It answers a question no version of the site could answer before: not just what this
topic contains, but who points at it.
What broke — and it was my fault
The first version put the map on the left and what you were reading on the right,
half and half, so you never lost your place. Reasonable. Sensible. I looked at it
and said: "that is just a massive back button."
It was. Half my screen was permanently occupied by a way to leave. Now choosing a
topic puts the map away entirely and gives the whole width to reading, and a single
✕ brings it back. That was not a coding problem. No amount of AI would have
told me the layout felt wrong — it worked exactly as specified. Knowing
the difference between "works" and "right" is the part that is still mine.
Two more things about that day I would defend to anyone. First, phones get a
different view rather than the map made small — a constellation shrunk to
375 pixels is a smudge. Second, and this is the one I am proudest of: I gave the
Atlas thirty days to prove itself.
Two layouts is a tax. I wanted a deadline where one of them dies, so that carrying
both could never quietly become permanent.
— the reason I set the beta myself, before a line of it was written
Nobody asked me to do that. The site now counts the thirty days itself and will ask
me, and only me, when the time is up.
v3.01
Thursday 13 August 2026
What a real site found in an hour
The Atlas went live. Within the hour I had found two faults, and both were the same
kind of fault — things that worked perfectly in a demo full of sample
content and misbehaved on a real site that is still filling up.
A photograph's description was being cut off at 90 characters for a tidy one-line
bar. Every caption in the demo was short, so nobody ever saw it. In the one place a
reader has stopped and is properly looking, my own writing ended mid-sentence.
And a button that hides and shows the lines between topics appeared completely
broken — because the live site had no lines yet. Pressing it changed nothing. It
now carries the count, dims when there is nothing to toggle, and says so when you
press it.
The lesson went straight into the project's own notes, where the next session will
read it: a demo is a best case, and best cases hide the states a real site
spends its first weeks in.
Ahead
Around 11 September 2026
The deadline I set for myself
Right now 888story.com runs two layouts at once. Classic columns are the default;
the Atlas is one click away for anyone curious. Thirty days from the night the Atlas
first ran, one of them gets deleted.
I do not know yet which. That is rather the point — I would rather find out by
living in both than by guessing in advance, and I would rather have a date than an
opinion.
In the meantime there are three separate ways to undo everything, and they are not
interchangeable:
The Classic button
Revert v2
Revert v1
Speed
Instant, one click
A redeploy
A redeploy
Covers
"I prefer the old one"
"v3 is broken"
"v2 is broken too"
Affects
Only the reader who clicks
The whole site
The whole site
Costs
Nothing
All of v3
All of v3 and v2
A layout switch is not a rollback. If the server is wrong, every reader is still
getting it wrong no matter which button they pressed. Knowing which of your safety
nets actually catches which fall is worth more than having a lot of them.