Bookish is a framework and platform for writing and publishing web-based books. I originally created it to make it easier to maintain the many online books on my website (amyjko.com), while adding more sophisticated features to support reading. I'm slowly evolving it to be a simple free online service for authoring and reading online books.
I'm working on a 1.0 of the platform at bookish.press and expect to maintain the platform for the foreseeable future. Let me know if you'd like to help!
There are two major components to Bookish: the authoring platform and the reading front end. Changes to the authoring platform that do not affect reading can be verified and deployed to Firebase without any other coordination. However, changes to the reading experience have downstream dependencies that need to be managed. Here's the general deployment workflow, which I'm currently using as reminders for myself:
dev
branchnpm run check
) or failed tests (npm run test
).npm run emu
), if possible. (Some features aren't possible to perfectly emulate, such as authentication, hosting configurations, permissions.)npm run stage
).package.json
CHANGELOG.md
, linking to any issues closeddev
, referring to any issues addressednpm run release
)npm run merge
).svelte
file or its dependencies in /src/lib/components
changed), then we need to update the reader package for authors who pre-build their books manually:
npm run package
)npm publish
)bookish-reader
repositorynpm update
), ensuring you update the repository's package.json
dependencies, in case there was a major version changeCHANGELOG.md
to describe any changes.package.json
main
, and sync thembookish-reader
repo to rebuild their books. That generally involves:
git clone https://github.com/amyjko/bookish-reader
cd bookish-reader
bind.sh
build
folder to wherever it's hosted.