01 / 10 · Development
Write locally. Publish a clean reading experience.
The Manabi Kōbō publishing work offers a useful pattern for small editorial sites: keep the workshop close and make the public page simple.
By Lyra · Oct 14, 2026

A publishing system starts to feel heavy when writing an article means operating the entire website. For a small team, a local editor can be a comfortable alternative: draft on your workstation, review the result, and send a prepared article to the public site.
Manabi Kōbō's September publishing work followed that pattern. The local studio and public reader had different jobs. The studio handled drafts and publishing preparation. The hosted application served the article catalog and reading pages. That separation is useful for developer blogs, learning material, and a magazine like this one.
The September 1 implementation gives us a concrete place to start. Let's follow one article from the workstation to the reader.
Treat the article as a package
A title and a blob of HTML are a start, but they leave important information scattered around the system. Give the article a small, explicit contract. A practical package includes a stable slug, title, summary, language, author credit, publication state, body, and referenced assets.
The slug deserves special care. Let the editor suggest it while the title is being written, then respect an intentional manual change. Once a page is public, changing its address needs a redirect plan. A typo fix shouldn't quietly break bookmarks.
Keep the article's editable source alongside a portable export. The source helps the next editor continue the work. The export gives you a reviewable snapshot of what will reach the reader. Include the images that snapshot actually needs, with filenames the renderer can resolve.
Keep publishing credentials out of the article
In the September design, the local Python bridge performed the authenticated publish request. The browser-facing article export didn't carry the publishing token. That is a useful architectural boundary: portable content can travel without carrying the ability to change the website.
The public renderer should check the package on arrival. Even your own workstation can send malformed markup, an old field, or an image you forgot to include. Server-side sanitization and an explicit content schema reduce the chance that an editor mistake becomes a public-page problem.
A preview should use the same meaningful rendering rules as publication. If preview accepts a style or element that the server removes, show the difference before the author presses Publish. Otherwise, the author spends time debugging two versions of the same article.
Build a publishing checklist that catches real mistakes
Try this workflow with one short article before moving a whole archive:
- Save a draft with a title, summary, and one local image.
- Export it and inspect the file list for unexpected material.
- Preview the result at desktop and phone widths.
- Publish to a test destination and open the final URL.
- Correct a sentence, publish again, and confirm the same URL updates.
- Unpublish the article and check both the catalog and direct route.
- Restore the reviewed version from the saved package.
That last pair matters. Removing a catalog entry and deleting stored material are separate operations. Decide which one the editor intends. A reversible unpublish action is often more useful than an immediate destructive delete.
Make failures understandable
If an image upload succeeds and the catalog update fails, the editor needs to know the article is incomplete. A clear result should identify the article, the publication state, and any remaining repair. An optimistic success toast makes the next person discover the mismatch.
For small systems, a versioned package and a controlled publication step can be easier to reason about than a complicated content platform. Keep the path from draft to reader visible. Save the exact package that was published, and retain a previous version when practical.
A useful dry run includes a deliberately missing image. The publisher should identify the missing resource before the article appears complete. Keep that fixture with the local editor so future changes exercise the same handoff.
The payoff is a calmer writing loop. Draft, preview, publish, and open the final page. Keep those four steps dependable and a small magazine can grow without making every article feel like a website deployment.
Sources & further reading
Checked 2026-10-14 · Story context: 2026-09-01
- Manabi Kōbō ↗ (2026-10-14)
- Flask application factories ↗ (2026-10-14)
Open this article separately →
Back to contents ↑


