This appeared first on my own personal blog.
Today I’m launching the initial version of Little Webby Press, an online service to build eBooks and a website for the eBook. It allows the writer to go from a folder with manuscript files to a static website and eBook with a single click. Check the video below for a quick introduction, and to see it working:
The author creates a folder on their own machine and use a plain-text editor to create their manuscript files inside that folder. They create a book configuration file — usually in TOML, but YAML and JSON are also supported — that sets all the configuration options for the Little Webby Press workflow.
The folder is loaded into the Web Application and the author can then generate an eBook and a Website based on their manuscript. If they notice they want to change something, or they progressed in their writing and want to generate a new eBook, they can simply reload the web app, open the folder again, and use the action buttons to generate the deliverables. Every time there is a change to the manuscript folder, it needs to be reloaded. There is no way for Little Webby Press to monitor your disk files. Still reloading is as simple as just dragging and dropping the folder on the UI again.
Mostly because I wanted to build it. I have been publishing books for many years now, and decided it was time for me to be on control of my tools. Another important aspect is that I wanted to build something that worked purely on the client-side so that it could be offered for free and without user accounts.
There are many tools out there to generate eBooks and even more tools to generate static websites. They range from very simple to use SaaS such as Leanpub, to complex command-line tools such as Pandoc. There is a place for everyone and I wanted to create something that reduced friction between writing your book and actually getting something you can share.
You can write your manuscript files using Markdown, Asciidoctor, Textile, or raw HTML chunks. You can mix and match them in the same folder as long as you use the correct file extension for each format. I'm not aware of any other SaaS that allows you to write in all these formats.
It supports custom templates—even though the documentation about them is not yet ready—allowing the author full control over the workflow. Basically, add a
_theme folder inside the manuscript folder, and place your custom template inside it as it’s own folder. For example, if your template is named
custom, then the folder would be
_theme/custom/ and the configuration would have a line
theme = “custom”. I will document that shortly.
Even though the feature above is not documented, Little Webby Press has extensive documentation that was written using Little Webby Press itself.
There is initial support for WebMonetization. I think that it is a great standard that could foster a sustainable Web that does not rely in Ads or selling user data.
The source-code is available at the Little Webby Press Github repository. The license for the source is MIT, so use it any way you want. There is no backend, everything is processed and assembled in the frontend. I need to be honest here and make a bit of a disclaimer:
This is a project that I started to make for myself, and then decided it was cool enough to be something I’d share with others. I got a grant from Grant For The Web to build it, and that is how I could afford to devote time to this project.
The source-code is a bit messy. There are two major functions, one to generate the epub and another to generate the website, it is basically waterfall-oriented. Waterfalls are pretty, sit down, enjoy the view.
Yep, I said it. The source is not the pristine webapp you’re used to see when someone go public with a project. But, hey, I’m a writer first and a developer second. I’m happy with my source, and my results. That’s enough for me.
The whole system is built with Rollup from Svelte components and some extra JS files. There is a fake filesystem in memory, courtesy of BrowserFS, that allows the waterfalls mentioned above to be coded as if we were dealing in NodeJS with a local disk filesystem. It is all a lie, there is no file system, but don’t tell that to the routines, they’re fragile already.
Once those waterfalls finish assembling everything on the in-memory filesystem, a zip file is created with JSZip and downloaded. You can host the deliverables in any server that supports static files.
This was just a simple post to make it real. I have been working in this for a while, and a lot of it was rushed because I lost one of my jobs just before the Pandemic hit. Both the Pandemic and that job loss caused an impact in my life, and it took me a while to recover and get this rolling. The grant was fundamental for allowing me the time to breath and the safety to spend time researching better workflows and test driving this with my own books.
There are lots of opportunities for improvement, and I’ll keep working on this. Little Webby Press is a project I love and use, I think it can grow to be a wonderful alternative for authors everywhere. I hope you enjoy it too.