Vertigo is a blog platform I’ve been working for fun during the recent months. Part of it is that I’m learning to use Go, but for sure more lately it’s become one of those pet projects you just like to work on. I may never be able to run anything else than my own blogs on this, but that’s enough for me. I like to have control of my writings and Vertigo enables just that.

Vertigo is developed as an open source software and you can find the public repository on Github. The current version which I’m running is a bit modified version though, with new user registration and some other API routes disabled. I also have modified the CSS and HTML templates to more of my personal style.

The text editor

I really like the typography on Medium, so I made Vertigo bit the same. Although, so far I haven’t found any good WYSIWYG editors. I did try Quill, but after inserting the library in place I found it to be bit too heavy for my purpose (iframes…). I’m trying to make Vertigo simple, so that just did not fit in.

Instead, Vertigo ships with contenteditable element, which feels more native. And even though I have to trade Vertigo’s JavaScript virginity for it, I believe it is worth the trade. From what I’ve tested, the contenteditable works just as well on my Macbook, iPad and Android phone as it does on my PC. Every device has different operating systems and viewports, but everything works pretty much the same.

The contenteditable element also lets you to copy-paste text with the formatting in place, similarly to Gmail. Whether this is a bug or feature is for the user to decide. However, I could see this as a backdoor to implement simple “HTML editor” by having example elements, which are already formatted in place. You could then copy the formatted text into your blog post or a template. This would be a huge difference for the people who don’t understand that much of coding. Anyone who just has the skills to code HTML could make ready made templates for others.

You can also inject plain HTML code into partly formatted page, so nothing is holding you back from adding widgets like Twitter buttons or YouTube videos on to the page, even after initial publication.


I’m a huge fan of minimalistic design, which also shows up on Vertigo. By default, there are no extra elements distracting you on writing mode. Even the submit button is hidden invisibly behind the title input field. So to synchronize your progress with the server (the progress is constantly saved to localStorage) you have to hit Enter on the title input field. I initially found this subtle feature by accident, but as it seems to work on all platforms (mobile devices have the equivalent of Enter as well) I decided to leave it as so. Coupled with localStorage it gives a solid alternative to event-based AJAX saving, which I wanted avoid of adding at all costs.

Integrated analytics

I keep coming back to things which reward me constantly. I’ve noticed the same pattern in some games, which I find myself playing hundreds of hours. Therefore, I wanted to add something which would give the same kind of feeling of progression to Vertigo. So now there’s very simple counter added on user control panel after each post, which shows how many times the page has been loaded. In the future it would be nice if I’d be able to draw charts using the gathered data, kind the same way as what Ghost demoed on their Kickstarter page back in 2013. I hope the feature even in its current state will bring me same kind of cheering as what the stargazers I’ve received for Vertigo on Github have.

Never heard of static page generator?

Yes, I have, but after reading John Resig’s Write Code Every Day I thought to give Resig’s thoughts a try. I also had this dilemma where I wanted to deliver good websites to clients, but because the clients wanted to have solid CMS features, I was forced to basically use Wordpress. Since I’ve never coded in PHP and somehow the complexity of even changing theme properties got me so overwhelmed I decided to give my own playful shot at it.

I doubt I’ll actually recommend Vertigo over Wordpress for any clients, but then again, at least it’s a platform on which I can provide my full array of skills. Be it exclusively for me, I don’t really care. As long as it teaches me new and repetition stays in order (thought at that point I already know I failed myself) I’ll keep on coding.