A few months back, I had an idea and a desire to learn a new language. I combined the two into a project called Prose, a simple command line app to organize written word intended for flexible publishing.

The basic idea of Prose is to give control and flexibility to the writing/storing/publishing process. It arose out of my hesitancy to write anything anywhere that isn't just my local machine. Websites fail, servers crash, services go away and remote databases get hacked. What if instead I just made master copies of all my writing on my own drives and in my own backups, and published those in different places?

Take it a step further. What if I could organize my writing into portable, authoritative artifacts which could then be processed by downstream apps? Enter the Prosefile, a simple structured json file which contains writing entires with metadata, which can then be formatted and passed along to other programs to parse, decorate and render.

The Prose CLI is a work in progress, but has support for adding entries from stdin or from reading in a file. My intention is to support tagging and metadata editing from the CLI. From there, the simple format allows for manipulating the data through a stream until ultimately rendering or sending the data somewhere.

Perhaps store all of your varied writing in one Prosefile, and tag the entires as blogs, snippets, and tweets, then have a program just select all the blogs and pass those along to a static site renderer. Or consider writing a bunch of entries in advance, tagging them with publish dates, and writing a small script to check the Prosefile for when to publish.

None of the options are trivial, mind you. They all take more work than just writing a blog post somewhere and hitting “save” or simply jotting down a tweet. But the trade-off, besides having some fun, is total control over your written word no matter what may happen to where it was published. The source of truth of your written work is in your Prosefile.

Recently setting up a gemini capsule (which has a variation of this post) has me wanting to finish out this CLI to a 1.0.0 state and then write myself a little static blog generator, including an atom feed artifact. Maybe this weekend...