Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
An umbrella project for our web sites at *
Ruby JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
asepsis-web @ 8aef8ea
blog @ bc3698a
drydrop @ 1c3750c
firelogger @ 967dc60
firequery @ 1ca4f46
firerainbow @ 2e5d516
hints @ 9db6e70
hodlwallet @ 1d21147
restatic-web @ 5de0fc7
support @ 9e50c91
test-web @ 88cadc6
totalfinder-web @ f435c46
totalspaces-web @ d3899ad
totalterminal-web @ 36f4ad7
visor @ 25ee2ef
www @ 3360b4d
xrefresh @ 062d55a

BinaryAge Site

This is an umbrella project to organize sites under *

  • local development server
  • maintenance utilities
  • mass deploying

The idea

The idea is to have one repo with all subdomains as separate repositories, each tracked as an individual git submodule. Individual sites have usually a dependency on shared - again tracked as a git submodule. This should give us tools to reconstruct the whole site to any point in the history while having granular control of commit rights to parts of the site. Nice transparency via GitHub is a bonus.

├── www
│   ├── shared
│   ├──
|   ...
├── totalfinder-web
│   ├── shared
│   ├──
|   ...
├── totalspaces-web
│   ├── shared
│   ├──
|   ...
├── blog

Shared stuff

Files which should be shared by all sites should go into shared repo.

  • layouts - jekyll layout files, these won't be present in the generated site
  • includes - various includes for layout files, these won't be present in the generated site
  • root - these will be generated as usual and then moved to the root level of the site, useful for generating same page for all sites, like 404.html
  • img - shared images
  • css - shared css files, we use stylus for preprocessing and concatenation
  • js - shared javascript/coffeescript files, we have defined .list file for concatenation
  • ...


Recommended (optional):

Bootstrap local development

git clone
cd site
rake init

Init task does several things:

  • fetches all submodules
  • updates push remote urls to be writable
  • hard-links all shared submodules into www/shared

Hard-linking is essential for local development. Changes you make under shared are then effective in all repos.

├── www
│   ├── shared (real folder)
│   ├──
|   ...
├── totalfinder-web
│   ├── shared (hard link to ../www/shared)
│   ├──
|   ...
├── totalspaces-web
│   ├── shared (hard link to ../www/shared)
│   ├──
|   ...
├── blog

Launch development server

  • make sure you have your /etc/hosts properly configured, see rake hosts

To run the full dev server:

in one terminal session run nginx proxy:

rake proxy

in a second terminal session run the jekyll debug server:

rake serve what=www,totalspaces,blog

optionally you may run livereload watcher via gulp in another teminal session


To run the dev server for all sites:

rake serve


You don't have to push to this site repo if you want to update some web. Just make changes in some sub-site repo and push your changes into its web branch.

We have setup post-recieve hook which will build sub-site and then will push baked static site files back into its gh-pages branch. GitHub Pages will do the deployment automatically. It will also move pointer of submodule here in the site repo.

Don't forget to push shared submodule first if you have modified some shared stuff.

Update from remote

If you want to get incrementally to remote state without doing rake init, you may reset your repo to remote state via rake reset (will destroy your local changes!!!).

Alternatively you may always use your git-fu to non-destructively pull from remotes (git submodule is your friend).

Something went wrong with that request. Please try again.