How hughhowey/neo works
NEO is a local-first, distraction-free book-writing app. Authors organize books on shelves, write and structure chapters, manage outlines and deferred passages, track goals, then export or back up manuscripts. The Electron renderer owns the writing experience and calls desktop services through a preload bridge; those services store readable files locally. Cover design and optional AI painting augment the bookshelf. Pocket is an Android companion that reads and writes the same library files. Several product features are documented but their implementation was not sampled, so their wiring is shown only where supported.
Main entry points: app.js App renderer · main.js Electron shell · preload.js Preload bridge · art.js AI cover painting
Components 23
Desktop experience
- App renderer
app.js - Electron shell
main.js - Preload bridge
preload.js
Writing workflow
- Bookshelf
app.js - Manuscript editor
app.js - Outline and notes
app.js - Darlings and stickies
app.js - Goals and progress
app.js - Cover design
covers.js - Cover workflow
app.js
Library and files
- Library files
main.js
Import and output
- Manuscript import
main.js - Document export
app.js - Zip backups
main.js - On-demand spellcheck
main.js - AI cover painting
art.js
Pocket companion
- Pocket web app
pocket/www/index.html - Pocket file bridge
pocket/www/pocket-bridge.js - Android host
pocket/android/app/src/main/java/com/hughhowey/neopocket/MainActivity.java - Shared library files
Other components
- Author
- Author's disk
- OpenAI
Connections 28
- Author → App renderer: uses
- App renderer → Bookshelf: renders
- App renderer → Manuscript editor: opens books
- App renderer → Outline and notes: manages
- App renderer → Darlings and stickies: manages
- App renderer → Goals and progress: tracks
- App renderer → Cover workflow: manages
- App renderer → Cover design: renders covers
- App renderer → Document export: prepares exports
- App renderer → On-demand spellcheck: requests checks
- App renderer → Preload bridge: calls API
- Preload bridge → Electron shell: invokes IPC
- Electron shell → Library files: reads and writes
- Library files → Author's disk: stores
- App renderer → Manuscript import: requests import
- Manuscript import → Library files: creates books
- Document export → Preload bridge: saves output
- Electron shell → Zip backups: creates archives
- Zip backups → Author's disk: archives library
- Cover workflow → Preload bridge: requests painting
- Preload bridge → Electron shell: dispatches painting
- Electron shell → AI cover painting: calls
- AI cover painting → OpenAI: requests text and images
- AI cover painting → Library files: stores painting
- Android host → Pocket web app: hosts
- Pocket web app → Pocket file bridge: calls file API
- Pocket file bridge → Shared library files: reads and writes
- Shared library files → Author's disk: syncs optionally