Redoing the website

09 Aug 2013

A while ago, I've used to write blog. And I've stopped. Why does one simply stop writing blog? - The old homepage was separated from the blog (mneorr.com and blog.mneorr.com). Meaning that, I've had 2 separate analytics pages, and inaccurate visitors behavior - The old blog was made on Octopress, which is amazing but got a bit complicated for me. Being so much configurable sometimes ends up as a double-edged sword - It was just too many small things bugging me, and not pushing me to write more

Jekyll 1.0 had got released, so I've decided to build a new site from scratch. After some sketching, I've reached out to Maja and asked if she could make me an vectorized avatar. She did some amazing work.

Redesign wasn't the only thing

After some heavy redesign, the site has got a soul. But, I've never released it; There was always some place for tweaking, and tweaking, and more tweaking.

That's why deploying has to be a first-class citizen. Since this is still a prototyped WIP, deploying in 1 terminal command was a must. It's enough to save files, open up the terminal, and rake shipit. Boom! The site is live.

On the technical side

The task that takes care of ssh-ing with keys and deploying via rsync looks someting like:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ssh_user       = "youruser@your.host.com"
ssh_port       = "22"
ssh_key        = "/Users/youruser/.ssh/key.pem"
deploy_folder  = "~/developer/"
public_dir     = "_site"

desc "Deploy website via rsync"
task :shipit do
  exclude = ""
  if File.exists?('./rsync-exclude')
    exclude = "--exclude-from '#{File.expand_path('./rsync-exclude')}'"
  end
  puts "Derploying..."
  system("rsync -avze 'ssh -p #{ssh_port} #{'-i' + ssh_key}' #{exclude} 
         "--delete" #{public_dir}/ #{ssh_user}:#{deploy_folder}")
end

The Rakefile went from 554 lines to around 50. By adding just the stuff you need, your codebase gets a bit easier to maintain.

Writing in this environment is really joyful. Posts are written using markdown, getting compiled into static HTML with Jekyll. Frontend is still not totally responsive; Works good on laptops and iPads, but a bit clunky on mobile devices.

All the graphics are in .svg, which I find amazing. You don't have to do multi-exports for various resolutions like Retinaâ„¢, it's all rendered properly.