The New Version of This Site

Around one and a half month ago, on June, 23rd (Yep, it was more than a month from the pub­lish­ing of a site till I pub­lished this post —I wanted to see how the new site would work in pro­duc­tion and fix some things here and there.), I pub­lished a new ver­sion of my site. Once again. It is rather hard to re­mem­ber which ver­sion num­ber it should be now. If we'd count it from the very start, from the times when I didn't know how to markup pages prop­erly, this would be the thir­teenth ver­sion. Or some­thing around that. Of course, that is if we won't count all the un­fin­ished and trashed ver­sions.

A Bit of History

My very first site was up­loaded to the in­ter­nets on the fourth of No­vem­ber 2001. I didn't know what CSS is. At all —the site was made mostly of frames and ta­bles. That site's con­tent was mostly a bunch of my child­ish cre­ations. Like cus­tom maps for the He­roes of Might and Magic III game, some stu­pid po­etry, some other ut­ter non­sense. The site moved from one of nu­mer­ous free Russ­ian host­ings to an­other, end­ing at the “” where it stayed for quite a long time —8 dif­fer­ent ver­sions —with­out any re­sem­blance to what you can see on this site today.

In De­cem­ber 2006, I hap­pened to read all the CSS spec­i­fi­ca­tions for the first time, and, a bit more than a year af­ter that, in Feb­ru­ary 2008, I've launched a ninth ver­sion of my site, this time on my own do­main — At this time I al­ready knew some­thing about how to build web pages, all due to the years of tweak­ing the styles for Live­Jour­nal, start­ing from the CSS over­rides, and fin­ish­ing with cus­tom tem­plates on LJ's own tem­plat­ing en­gine. There­fore, I de­cided to ded­i­cate my new site to web de­vel­op­ment, and all my cre­ative stuff could be now found only in my archives and friends-only Live­Jour­nal en­tries.

At first, I used Mov­able Type as an en­gine for Then, in Au­gust 2009, when I went deeper and deeper into front-end web de­vel­op­ment and learned how to make all the things from scratch, I rewrote the site to be just a set of sta­tic HTML files. This went un­til Feb­ru­ary 2011, when I've fi­nally fed up with up­dat­ing the site man­u­ally (us­ing reg­u­lar ex­pres­sions and global search-and-re­place in my code ed­i­tor), so I man­aged to work out some au­tom­a­ti­za­tion and re­made every­thing I had us­ing nanoc sta­tic site gen­er­ator.

An­other two years passed and on Jan­u­ary 17, 2013, I re­launched the whole site once again, this time us­ing Jekyll, with the host­ing on GitHub Pages. This time though, I rethought the whole site's de­sign and went deeper into achiev­ing read­able ty­pog­ra­phy for the con­tent. That was the pre­vi­ous, twelfth ver­sion of my site.

Thirteenth Version


This time, I man­aged to rewrite every­thing from scratch. Twice! Jekyll that I en­dorsed a lot be­fore, started to be­come too tight for me. When com­ing from the box (i.e. the ver­sion that is there at GitHub Pages) it can't do too much. Any ad­vanced needs (like some of the ty­pog­ra­phy quirks) could be achieved only by a re­ally hell­ish code on its Liq­uid tem­plate en­gine, or by us­ing ex­ter­nal ruby plug-ins. I went far be­yond what was pos­si­ble in Liq­uid (and made some things there I doubt any­one had gone that far to) and was at its lim­its, and you couldn't run the ruby plu­g­ins on GitHub Pages. And if I'd need to build the site as an ex­tra step and push the built sta­tic files, I thought of us­ing some­thing that I'm more fa­mil­iar with —JS.

So I chose Doc­pad. I al­most rewrote the whole site us­ing it, but the far­ther I went, the longer the build time in­creased. At one point, when the build time went be­yond 90 sec­onds, I told my­self to stop and look at the site with fresh eyes. Af­ter some thoughts, af­ter read­ing both Doc­pad docs and the docs of dif­fer­ent other sta­tic site gen­er­a­tors, I con­cluded that noth­ing that is there on the mar­ket would fit my needs. Every­where I needed more than the pro­jects could al­low me to, so, in any case, I'd need to write more than 90% of what I need by my­self, with­out us­ing any ex­ter­nal plu­g­ins. And that meant fight­ing with how the sta­tic gen­er­a­tors were meant to work.

In the end, I wrote the whole sta­tic site gen­er­a­tion thing by my­self, us­ing gulp as a foun­da­tion and reusing some of the cus­tom JS I wrote for the Doc­pad ver­sion. Dis­claimer: don't look into the source (BTW, I made a short talk with this ex­act name.). Every­thing. Is. Very. Bad. I have learned gulp on the fly, pro­to­typed, ex­per­i­mented. But even this non-op­ti­mized and not pro­filed code runs 10 times faster than what I have man­aged to get from Doc­pad —around 8-9 sec­onds top, with more fea­tures and com­plex­ity. With watch­ers, dif­fer­ent parts could be re­built even faster, and I have plans to add par­tial re­builds just for spe­cific posts that would make every­thing light­ning-fast. And it is al­ready much eas­ier to add new fea­tures even with the cur­rent messy code base.

Any­way, I'm glad that I went out of us­ing the ex­ist­ing sta­tic gen­er­a­tors and learned the ba­sics of gulp; maybe one day I'll sep­a­rate some parts of my en­gine so you could reuse it too. But I can't promise any­thing there. Maybe at one point I'll even rewrite every­thing on some­thing new, like all that fancy re­act-web­pack stuff, who knows! But right now al­most every­thing is fine for me.

Markup, Design, and Typography

You shouldn't look into the sources of CSS too. Most of the styles are there from the pre­vi­ous ver­sion of the site, and while some things are rewrit­ten a bit, I'd like to rewrite every­thing from scratch there again. No, I still like a lot of what I wrote, but the source is dirty, badly struc­tured, don't look at it. The tasti­est stuff would be ex­plained in the fu­ture posts (Yeah, I of­ten over­promise all the new posts, but for once, I'm go­ing to ful­fill it, I swear! :)) anyway.

The de­sign may seem to be the same as it was be­fore at the first glance. But a lot of lit­tle de­tails had changed, es­pe­cially in ty­pog­ra­phy. I'm still us­ing a cus­tom font that I bought —21 Cent by Let­ter­head, but this time, I bought an­other font style for the head­ers. I've started to use more Open­Type fea­tures (Maybe even I've overused them some­where just for the sake of demo­ing them.), added hy­phen­ation, and —oh wow! —jus­ti­fied text. And it even looks not that aw­ful —thanks to the hy­phen­ation and enough of avail­able space for the text. Over­all, I use a lot of ex­per­i­men­tal and not op­ti­mal stuff there. I'm sure I would change some of those things in the fu­ture, and I cer­tanly would drop other things if they would't work out.


I have a lot of plans and ideas about what should be there on this site. Right now there are all the same ar­ti­cles that were there be­fore, but I'm re­mov­ing the un­nec­es­sary split­ting to all the dif­fer­ent cat­e­gories (they would be there, but just as one of many other fil­ters), and cre­ated a list of every­thing that I have there in­stead, so it would be eas­ier to find an ar­ti­cle or an ex­per­i­ment you need. I'm plan­ning to fill it up over time not only with new posts and ex­per­i­ments, but also with dif­fer­ent old con­tent that I hadn't yet pub­lished or trans­lated from Russ­ian for some reasons.

Other than reg­u­lar­ily writ­ing new con­tent (hope­fully), I would up­date the ba­sic struc­ture of the site too. There'll be a reg­u­lar “about me” sec­tion one day, aside from a proper CV, and along­side other in­ter­est­ing new pages.


Thank you if you man­aged to read this post till this point. At first, I planned to make just a short post telling you “Hey! Here is a new ver­sion!”, but I went rather deep into the site's his­tory and ver­sion­ing (Maybe one day I'll write more about all the dif­fer­ent old ver­sions. When I'll be ready.), then sub­merged into the whole dou­ble jekyll→doc­pad→gulp rewrite. In the end, it be­came a not-so-short post, so sorry for that :)

As al­ways, if you'll find any ty­pos or mis­takes in the texts, or bugs in markup —feel free to write me an e-mail, fill up an is­sue at GitHub, or let me know at twit­ter any­time. I'll be glad! If you'd re­view the de­sign and ty­pog­ra­phy in de­tails and would have any ques­tions —they're wel­come too, of course! While I have plans for fu­ture posts, if you would be in­ter­ested in some­thing spe­cific, I will be happy to elab­o­rate on it, as this would be a nice mo­ti­va­tor for me to con­tinue writing.