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>

  1. You learn things more deeply if you explain them to others (especially in writing)
  2. It is good to publish articles on multiple sites to maximize SEO surface.
  3. Publishing blog entries can drive visitors to our site (whether or not they intend to study Russian) which improves the SEO of our site
  4. Engagement with our articles (likes, claps, comments, etc.) are important data that should not be lost when we update an article.
  5. Articles posted on various sites should link to other sites where the same article is posted (to help SEO in all places)
  6. 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)
  7. Articles should be in a standard code format like Markdown or reStructuredText so that we can render them with many different tools
  8. 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.
  9. Once an article is written, it should be trivial to publish it to all platforms.
  10. 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.)
  11. Grammar and spelling are important. The tool should support a workflow that makes it easy to catch those mistakes before publishing.
  12. 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