Executive Summary
This document is a proposal for creating a toolchain that lets us easily host a technical blog to capture our learnings.
Motivation
We want to start a Rootski blog. None of us are technical/business bloggers yet, but we kind of all have a sense that it would be good for our careers.
We learn tons of practical things working on Rootski. Writing about our learnings for the community is a great way to build our personal brands, solidify what we've learned, and help others out.
Philosophies
<aside>
☝ Quick note: philosophies are meant to make statements about what you generally want to see in a tool. This is where you express your opinions. Then you turn them into hard requirements. Both philosophies and requirements try to be agnostic of the actual implementation you go with.
</aside>
- You learn things more deeply if you explain them to others (especially in writing)
- It is good to publish articles on multiple sites to maximize SEO surface.
- Publishing blog entries can drive visitors to our site (whether or not they intend to study Russian) which improves the SEO of our site
- Engagement with our articles (likes, claps, comments, etc.) are important data that should not be lost when we update an article.
- Articles posted on various sites should link to other sites where the same article is posted (to help SEO in all places)
- Articles should be in version control; the article in version control should be considered the "source of truth" (as opposed to creating/updating articles in a web UI somewhere and downloading them to version control)
- Articles should be in a standard code format like Markdown or reStructuredText so that we can render them with many different tools
- Visual aids are important: we should be able to include GIFs, images, embedded videos (potentially ones that we record), and code blocks with syntax highlighting.
- Once an article is written, it should be trivial to publish it to all platforms.
- Edits need to be made to articles for many reasons: typos, incorrect information, response to feedback: once published, we should be able to publish updates without erasing the engagement (likes, etc.)
- Grammar and spelling are important. The tool should support a workflow that makes it easy to catch those mistakes before publishing.
- Articles are a good way to spread awareness of our app and development team; the tool should make it easy to link to information about Rootski so that people can learn more