VSProse @vsprose.bsky.social · 26/09/2026Name the person doing the action so the sentence has a clear source of energy. Active verbs make the moment more direct and immediate. Before: The door was opened by Mara. After: Mara opened the door. 000
VSProse @vsprose.bsky.social · 24/09/2026Jul 27, 2026 Three test screenshots, three filenames: light theme, filters, auth popup. All three the same file. Byte for byte, same MD5, same size, same timestamp. The suite ran the same photo three times and ticked three boxes. The auth screen was never actually seen. 001
VSProse @vsprose.bsky.social · 21/09/2026Jul 13, 2026 A 70-word chapter's progress bar sat 45% full. The 2,554-word chapter beside it barely moved. Same screen. The orange bar has no label, no tooltip, and isn't bound to anything you'd recognise. The shorter the chapter, the more finished it looks. 000
VSProse @vsprose.bsky.social · 19/09/2026Replace the adverb with action that shows emotion. Let the dialogue and beat convey anger without naming it. Before: I never want to see you again, Mara said angrily, with tears in her eyes. After: I never want to see you again, Mara said, slamming the door. 000
VSProse @vsprose.bsky.social · 17/09/2026Jul 6, 2026 We committed a file no human is allowed to touch, then wrote a 37-line test whose only job is to catch anyone who touches it. It regenerates the file and diffs it byte for byte. The DO NOT EDIT comment was already there. Nobody trusted it. 000
VSProse @vsprose.bsky.social · 17/09/2026Jun 22, 2026 Same manuscript, same screen, two page counts. Status bar: 52 pages. BOOK INFO panel: 33. Two different call sites estimated pages by different rules. An 18-page gap on the exact number a novelist carries to a publisher, and the tool couldn't pick one. 000
VSProse @vsprose.bsky.social · 17/09/2026Jun 15, 2026 The nightly regression has been red since 9 June. Not one test failed. The report upload hit 'Artifact storage quota has been hit'. GitHub recounts usage only every 6 to 12 hours and still counts artifacts it had expired. A week of green tests, logged as red. 000
VSProse @vsprose.bsky.social · 17/09/2026Use said or asked when the dialogue already conveys the emotion. This keeps the reader focused on the speaker’s words instead of instructing them how to react. Before: ‘You came back,’ she exclaimed. After: ‘You came back,’ she said. 000
VSProse @vsprose.bsky.social · 17/09/2026Cut the filter verb so the scene feels immediate. Describe what happens instead of reporting that someone noticed it. Before: I saw the rain streak the window while she spoke in a whisper. After: The rain streaked the window while she spoke in a whisper. 000
VSProse @vsprose.bsky.social · 15/09/2026May 25, 2026 Our production smoke test passed green through three broken releases. It ran npm start, which never touches the packaged bundle. We tested a copy nobody installs. 000
VSProse @vsprose.bsky.social · 10/09/2026May 18, 2026 Header: 'Words: 8K'. The panel below: 'Words: 13K'. Same book, same screen. Two code paths counting words, never speaking to each other. 000
VSProse @vsprose.bsky.social · 08/09/2026May 11, 2026 You edit a theme's description, save it, click into a chapter and back. Your words are gone, swapped for auto-generated text. The aggregator was told to 'prefer longer description', so every pass it overwrote your careful line with the machine's longer one. 000
VSProse @vsprose.bsky.social · 08/09/2026Apr 27, 2026 573 lines of WebGL shader code. Vertex maths, fragment maths, texture sampling. All so a 64 pixel portrait can flicker like a dying CRT. It's a writing app. 001
VSProse @vsprose.bsky.social · 07/09/2026Apr 20, 2026 The status bar said 'VSProse v0.6', typed by hand. Making it read the actual version number took 7 files and 46 lines. In Electron the half that draws the screen isn't allowed to open a file. It has to ask the other half, over a wire, for one string. 000
VSProse @vsprose.bsky.social · 07/09/2026Apr 13, 2026 A test called 'app starts with empty state' saved a screenshot of a full project. Ten chapters, status bar reading 'Chapters: 2/4 Words: 10K'. The app quietly reopened the last project on launch. First-time users would have opened it to someone else's test novel. 000
VSProse @vsprose.bsky.social · 05/09/2026Apr 6, 2026 To check whether the AI's writing suggestions are any good, we built a second AI to mark them. It runs after every build and commits a verdict to a permanent archive. We never got round to building the AI that checks the second one. 000
VSProse @vsprose.bsky.social · 03/09/2026Jan 26, 2026 To test one login handshake I wrote 493 lines of React: a popup with a countdown timer, a code display, buttons to poke the endpoint. No user will ever see a pixel of it. ApiTestPopup.tsx, 493 insertions, shipping to nobody. 000
VSProse @vsprose.bsky.social · 01/09/2026Jan 12, 2026 Bug 15: rename your book folder in Finder to stay tidy, and the outline and synopsis vanish. The files were all there. VSProse matched them by the old name prefix, so the new folder name found nothing. 964 insertions across 12 files to let a folder be renamed. 000
VSProse @vsprose.bsky.social · 31/08/2026Dec 29, 2025 The marketing site launched with 'VSProse' in every line of copy. The app it was selling still called itself 'manuscript-app' in package.json. The public rebrand shipped before the code did. Every commit after touched both names. 010
VSProse @vsprose.bsky.social · 29/08/2026Dec 22, 2025 One commit: 32 files changed, 5,439 insertions, 309 deletions. A whole structural analysis engine in a single go. We finished it, then shipped the editor instead. The 5,439 lines sit there now, very tidy, mostly unused. 000
VSProse @vsprose.bsky.social · 28/08/2026Mar 16, 2026 Every EPUB export died with ENOTDIR. I blamed file permissions, then macOS security. The app was trying to write temp files inside its own binary. Electron packages the app as a read-only archive. An app that can't write to itself. 000
VSProse @vsprose.bsky.social · 26/08/2026Mar 2, 2026 Our build storage hit 100% of 0.5GB. I blamed fat binaries and too-frequent builds. GitHub Actions just keeps every artifact forever by default. The fix was one line, pasted three times: retention-days: 7. Every build since day one, sat there. 000
VSProse @vsprose.bsky.social · 24/08/2026Feb 9, 2026 The animated logo flashed black rectangles on every page flip. I blamed z-index and transform timing. Pool elements render the instant they exist, a frame before the animation moves them. Commit 'prevent black rectangle artifact': display none on creation. 000
VSProse @vsprose.bsky.social · 01/08/2026First version of the mockup had chapter labels running diagonally, the way charts do when nobody wants to choose. It looked clever and read terribly. We rejected it inside an hour. The replacement rule was simpler: labels earn space as you lean in. 000
VSProse @vsprose.bsky.social · 28/07/2026Why a dial: an editor that uses AI owes you its uncertainty. Edits that would change how a character speaks come back low-confidence and pale, never silently applied. You see how sure it is, then you decide. These are your words. Building in public at vsprose.com. 010
VSProse @vsprose.bsky.social · 28/07/2026This is the sketch we started from. We've added a confidence dial to the copy-edit view: a small gauge beside each suggested edit, needle pointing low / medium / high, drawn in the edit's own colour. The less sure the machine is, the fainter the whole thing renders. As built: next post. 000
VSProse @vsprose.bsky.social · 25/07/2026"He come here Tuesday." Every grammar checker wants to fix that sentence. But it isn't broken, it's a character talking. If your editing software can't tell the difference, it will quietly sand the voice out of your book. That's the problem we're building VSProse around. 210
VSProse @vsprose.bsky.social · 25/07/2026We spent a day designing a feature and threw out every dashboard instinct we had. The design brief ended up being a sheet of paper: an author at a table with the whole book ruled out on one big A3 page, fine-liners and a ruler, writing smaller and smaller where the story got dense. 000
VSProse @vsprose.bsky.social · 10/07/2026The weekend's best idea never made a screenshot at the time. Watching the pages turn, we realised the turn could mean something: one page-turn, one colour theme. So we built that too. Live on vsprose.com, today: give the book a flip. It's strangely satisfying. 000
VSProse @vsprose.bsky.social · 10/07/2026Three days, fourteen screenshots, one purpose-built instrument, one logo. The same fuss, pointed at sentences instead of pixels, became VSProse. 100
VSProse @vsprose.bsky.social · 10/07/2026The result. Our small green book, with depth, shadows, and pages that turn. 100
VSProse @vsprose.bsky.social · 10/07/2026Feb 8, 4:45 pm. 6.5 pixels. Green numbers at last. Somewhere in the tuning, the tool also grew a click-and-drag 3-D preview nobody had asked it for. Weekends go like that. 100
VSProse @vsprose.bsky.social · 10/07/2026Feb 8, 2:02 pm. The tool now scores the failure in red: 44.6 pixels of error, worst corner 71.3. A scoreboard for being wrong. Genuinely useful, weirdly calming. You know exactly how far from done you are. 100
VSProse @vsprose.bsky.social · 10/07/2026Feb 7, 7:17 pm. Saturday evening, so we did the reasonable thing: built a full geometry-fitting instrument for the logo. Top-down view. Shape comparison. Cover angles to the degree. A coordinate dump along the bottom. 100
VSProse @vsprose.bsky.social · 10/07/2026Feb 7, 1:23 pm. It stopped being a wedge and started being two books haunting each other. The wordmark now reads WSSPP. Progress of a kind: at least it was legible enough to be wrong, then, ... something not completely wrong... 100
VSProse @vsprose.bsky.social · 10/07/2026Feb 6, 11:39 pm. Friday night. The first 3-D attempt. That is supposed to be an open book. It is a wedge? Eight seconds later we tried again and produced a mess, from a slightly different angle... 100
VSProse @vsprose.bsky.social · 10/07/2026Our logo is a small green book. Flat, two dimensions, perfectly content. In February we decided it should turn its pages. That took three days, cost us a weekend, and we documented all of it. A thread. 100