ZYVOPMulti-Platform Sync
SeriesAI NewsWhy ZyVOPJoin Discord
LoginGet Started
ZYVOP
The Developer Publishing Hub
PrivacyTermsGuidelinesDMCACommunity
ยฉ 2026 ZyVOP
HomeThe editor said "saved". I reloaded the page and the server had kept exactly one character of my post. What the preview shows and what the server holds are two different questions

The editor said "saved". I reloaded the page and the server had kept exactly one character of my post. What the preview shows and what the server holds are two different questions

M
Mathieu Ades
Founder
ยท
September 9, 2026
3 min read
The editor said "saved". I reloaded the page and the server had kept exactly one character of my post. What the preview shows and what the server holds are two different questions
Article

I publish through browser editors I do not control, driven by a script that types for me. Most of the time that is boring, which is the point. That afternoon it was not.

The first attempt

The post was 1366 characters long. My script found the body field, wrote the text into it the way a script does, by setting the field's value and firing the events a keyboard would fire, and then read the field back. The field said 1366. The title had gone in the same way a minute earlier and the browser tab had already changed its name to match, so I had every reason to think the body had landed too.

I clicked save. The button changed to "saved". I took that at face value for about two seconds, until I noticed the preview pane next to the editor still said there was no content.

A field that reports 1366 characters and a preview that reports none cannot both be describing the same thing. One of them was describing what I had written and the other was describing what the editor believed. Those are not the same object.

The witness that settles it

The only reading that matters is what the server holds, and the only way I know to read that is to throw away the page and load it again. So I reloaded.

The title came back intact. The body came back as one character.

Not empty, one character. I do not know which one and it does not matter. The editor had two layers: a plain field that my script could write into, and a proper editing component sitting behind it that keeps its own copy of the text and is the only thing the save button consults. My script had filled the front layer. The back layer had received a single keystroke's worth of notice that something happened, and nothing else. "Saved" was true. It had saved what it had.

The second attempt

The fix was to stop pretending to be a keyboard and to be one. My browser tooling can type text into a field the way a person does, one input event per character, and the editing component listens to that. I typed the body that way, watched the preview fill in with headings and paragraphs, saved, and then did the one thing I had skipped the first time: reloaded before believing anything.

Twenty paragraphs came back. Five headings. The closing sentence with the link in it. Only then did I open the publish dialog.

After publishing I read the public page with a script that has no session at all, and compared it paragraph by paragraph against my source file. Twenty out of twenty. That is the number I wrote in my ledger, not "saved".

What I nearly recorded

If I had trusted the button, I would have published a post consisting of a title and one character, my ledger would have said it was live with its full text, and my daily check would have agreed, because it counts whether the page is public, not whether the page is whole. I would have found out days later, from a view count that never moved, or from a reader kind enough to say so.

The failure would not have been the editor's. The editor told me the truth in the preview pane the whole time. The failure would have been mine for reading the field I had written instead of the pane I had not.

The rule I am keeping

Any time a tool of mine writes into something it does not own, the reading that counts is the one taken after the writer has let go. Reload, refetch, reopen, and read what is there now. A value read back from the field you just filled is your own sentence coming back to you.

And the smaller rule under it: when two indicators on the same screen disagree, that is not noise to pick the nicer one from. It is the whole finding. The disagreement was the bug, visible, before I had lost anything.

Disclosure

I build BlueTicks for Gmail, a Chrome and Firefox extension that shows WhatsApp style ticks in your Gmail sent list, one tick sent and two blue ticks opened. It costs 4 dollars a year, and the free tier covers 30 emails a month. Everything above comes from distributing it in public and writing down what my own tools did. You can find it at blueticks.io.

Comments (0)

Join the discussion by logging into your account.

M
Mathieu Ades

Founder

Passionate developer sharing knowledge about modern web technologies and best practices.

Subscribe to Mathieu Ades's Newsletter

Direct email dispatches when new stories are published. Zero algorithms.

M
Like
Love
Clap
Fire
Party
Wow

More from Mathieu Ades

View profile

I posted a reply, read the thread without a session, and the reply was not there. Ninety minutes later it was. The same cache had taken five minutes the week before, and my rule only knew the five

Nothing I publish is recorded as public until a reader with no account can see it.

4 minSep 20

I wrote that my extension had six unasked reviews. Two weeks later a reader asked what they said, I read them one by one, and one of the six was mine. A counter says how many, not who

Two weeks ago I published a post about a rule: I never ask anyone for a review, and the six reviews my extension has on the store arrived without a request.

4 minSep 20

Three of my texts said a platform allows only two replies a day. No platform had said so. The limit was mine, and one of the three was already public

Every text I publish is read again the evening before it goes out, and one of the things I look for in that reading is a claim about the present: a sentence...

4 minSep 21

My proofread checks the price, the dashes, the shared passages and every word that points at time. A text due the next day said "I do not have it" about a thing built two days earlier. It passed

Every text I publish is written ahead, sometimes ten days ahead, and the evening before it goes out it gets a proofread from the date it will appear.

4 minSep 19

The editor said Saved. The server had said 400. The draft did not exist, the limit that refused it was in my own notes, and no tool of mine had ever read that note

I prepare the next day's posts the night before: title in the field, body imported, Save Draft, and the address of the draft written into the ledger so that...

4 minSep 19