Documentation‎ > ‎Website‎ > ‎

Migration

It has been decided to migrate the website to a more controlled platform. While google sites has served us well so far, it is not known how long it will be supported. Google has already rolled out its successor to sites and is promoting transition which means that it is only a question of time before the old one will be phased out. The new version of google sites does not meet our needs by far and so we will preemptively start the migration process now.

Here are some key thoughts for the process:
  1. Keep webpage content as markdown in git
  2. Create a commandline utility  that generates static HTML file structure from said sources
  3. Add extensions to markdown/mustashe for adding layout and styling 
  4. Use bootstrap for layout and widgets support
  5. Use the google sites api to scrape existing content into first version of new site
  6. Set up git webhooks on an nginx docker on digital ocean for automatically rebuilding and hosting website
  7. Start slow, and iterate until the end result is as good or better than the google site version of site
  8. Set a date for the transition and go live
  9. Eat cake


Source format

Format of sources: markdown or html.

markdown will be processed like this:
raw_md -> mustashe -> md -> html

html will be processed like this:
raw_html -> mustashe -> html

Conversion utility

Conversion utility is commandline program called "web". IT should recursively scan source dir for content, perform the conversion and build up a directory hierachy in the output folder and populate it with .html files. The result should be readyu for sertving from a static webserver like nginx by simply copying the files to it's webroot folder.

Extensions
Markdown is wonderful for content, however we need layout and styling as well. We have added mustache to the pipeline to offer a simple way to augment the content with semi dynamic data such as table of contents, and also for adding the necessary styling and layout directives. The most basic layout is the two column layout which is used in all the pages on google site.

A simple protocol must be created that we can stick to for layout and style work.

Bootstrap layout

The extensions will take our custom mustache based layout/styles protocol and turn it into bootstrap html/css.

Google sites scrape

Google sites has many strong sides, and one of them is that it has a full web API that allows easy scraping of individual pages and even paragraphs of content. We will leverage this to migrate the content into our git repository.

Documentation:
https://developers.google.com/sites/docs/1.0/developers_guide_protocol#ContentFeedQueries

Example query:
https://sites.google.com/feeds/content/octomy.org/octomy?path=/

Hosting

We will use a digital ocean droplet for hosting because it is really cheap and we don't need anything else at the moment. The website will be contained in a docker so that we can migrate it easily if needed.

MVP to MLP

The first major milestone of this project is the first version of the website hosted and ready for visitors. It may be buggy and ugly and missing some non-essential features, but we will call it the MVP (minimum viable product).
The second major milestone is the version of the website that is as good as or better than the current google sites version. IT should be feature complete, not buggy and not ugly. we will call it the MLP (minimum lovable product).

Transition

Once we have reached the MLP milestone it is time to transition. We will mark a date and perform a simple domain swap. At this point the old google site should be kept for safe keeping in case of problems for a while before being retired completely.

Cake

The cake was a lie. We just drink cola to celebrate instead.

Comments