Scriby
Scriby is a word processor for people writing books, on a Mac. Your library is a bookshelf, the page is dark and calm, and every book is a folder of plain files on your own disk. There's no account and no subscription. Version 1.6.0 is out for Apple silicon and Intel, and it has its own website.
This entry is less about how any one part works and more about what I was trying to do, how far I got, and what's still open.
The goal
I wanted an app that does one job, helping someone finish a book, and otherwise stays out of the way. Concretely: nothing pops up while you type, the controls fade until you reach for them, words are never thrown away, and the files will still open in a text editor long after the app is gone.
I didn't start from a blank file. Scriby is a fork of NEO, a word processor for authors by Hugh Howey, released under the MIT licence. Hugh's contributing notes say NEO exists because every writing app was eventually ruined by bloat, and its ground rules were exactly the list above. The editor, the shelves, the saving and sync rules, the exports and the first interface languages are his work, and Scriby wouldn't exist without them. So the job was never to change what the app believes. It was to make it feel like a quiet room on a Mac, and to add the one thing I wanted most.
On 21 October I opened the repository with Claude Code and asked it to check what I'd got: NEO 1.5.8, about 18,000 lines in app.js alone, and 187 tests, all passing. A good place to start from.
*** break, three times for a new chapter. The first time you make Chapter 2, the opening becomes Chapter 1. (A re-creation for this page, not Scriby's editor.)What I built
My part, as the project's notice puts it, is the name and identity, the icon, a redesigned interface and design system, floating panels, menus and icons, a bottom bar that rests, a pile of layout fixes, and the Companion.
The design system is deliberately ordinary: the Mac's own system font at 13px, controls 28px tall with 8px corners, three kinds of button and no others. The chapter list, the notes and the Companion are one family of rounded panels, frosted with the colour of whichever room you write in. The bottom bar disappears entirely while you write and leaves three faint dots in its place. Touch it and it rises in 0.22 seconds; leave, and it waits 0.4 seconds before sinking, so the dots and the bar are never on screen together.
The Companion was the thing I wanted most: a drafting and world-building partner that speaks only when you press Send. It runs on Claude, OpenAI or any compatible service, or entirely on your own Mac through Ollama or LM Studio. The pane lists exactly what goes with each message. Words reach the manuscript only through Insert or Replace, which go through undo, and a replaced passage goes to the Darlings drawer first. Characters, places and rules live as cards in a story bible inside the book's folder; the model can propose a card, but nothing is added until you accept it.
Then the website, scriby.thomasalex.in: a scroll story where each scene pins, plays and fades, with the bookshelf and the Companion built in HTML rather than pasted in as screenshots. Two parts of it have their own entries: the lighthouse in the fog behind it, and how every book gets a cover.
What didn't make it
Scriby isn't notarised by Apple yet, because that needs a paid developer account. So the first launch shows a warning and you go to Privacy & Security and click Open Anyway, once. It's the single worst moment in the whole app and it happens before you've written a word.
The Mac App Store is a written assessment, not a submission. The blocker is the sandbox: a sandboxed app can't read ~/Documents on its own, so the writer would have to pick their library folder once and Scriby would have to remember that permission across launches. That touches every place the app reads the library. Nothing has been submitted or tested against App Review.
Some features are honest about being unfinished. The README says word goals and sprints need more testing, and importing an existing Word manuscript is still a bit rough. Windows, Linux and the phone apps that NEO has aren't part of this repository at all.
What surprised me
How much of a writing app is about not losing words. Every write goes to a temporary file, is flushed to disk and then renamed into place, so a power cut can't leave an empty chapter. Unchanged chapters are never rewritten, because libraries sync over iCloud and Syncthing and a timer that saves everything would fight the other device. If two devices changed the same chapter, both versions are kept. Most of this is Hugh's, and the code is full of comments about cases that look redundant and are not. I learnt to believe them.
The other surprise was names that can't change. Scriby is Scriby on the outside, but the library folder is still called NEO Library, and the app identifier and update feed still say NEO, because renaming them would break every existing library. The same identifier has to be settled before a first App Store submission, since it can never change after that.
What's next
The roadmap is short: notarised builds so the first-launch warning goes away, the Mac App Store, a consistency check between the story bible and the chapters, and end matter (copyright pages, author bios) that updates across every book at once. The rule for anything else stays the one I inherited: a change belongs if it helps someone finish a book.
- Built
- October 2026, version 1.6.0
- Stack
- Electron, plain JavaScript, HTML and CSS, no build step
- Lives at
- scriby.thomasalex.in
- Source
- github.com/tomxander/Scriby (Scriby License; based on NEO by Hugh Howey, MIT)
- Mockups
- Built with Stageshow by Benji Taylor