My personal blog and website (see
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
_drafts gitgnore for _drafts Sep 5, 2016
_posts New post: Qubes 3.2 Sep 29, 2016
_sass CSS: further improve style for the quoted text Sep 3, 2016
css Use smaller font for defeault text May 8, 2015
keys Udpdated ITL email key for 2016 Feb 8, 2016
papers Papers: 2016: Qubes OS intro slides Sep 5, 2016
resources New post: Qubes 3.1 Mar 9, 2016
CNAME Added CNAME file for Feb 9, 2015 Make the blog index the deafault page May 8, 2015
_config.yml _config.yml: use redcarpet markdown Feb 9, 2015
feed.xml Site scaffold by 'jekyll new' Feb 4, 2015 use direct link to a tweet with my master key fpr Jul 15, 2016 Remove the "upcoming events" section. I'm hopeless for keeping it up … Sep 8, 2016

Welcome to my git-based (not necessarily GitHub-based!), decentralization-friendly, liberated, and integrity-protected blog and website!

About Me

My name is Joanna Rutkowska, I lead the Qubes OS project and Invisible Things Lab (see and for more info).

About this Website/Blog/Repo

This blog is a continuation of my "Invisible Things Lab Blog", previously hosted on Google's Blogger platform for 8 years between 2006 until the end of 2014. Read this post to understand why I decided to migrate away from Blogger, and why I consider it important to have this blog distributed as a git-repo.

Content of this repo

Distribution and hosting

This blog/website is distributed as a git-repo, and is primarily hosted on my GitHub account. You should be able to clone it using the following command:

git clone

You can also view the sources at GitHub online here.

This blog is also available for traditional Web-based viewing via the following URL (which is likely how you're reading it now):

That URL might change in the future, as well as alternative ones might be added.

One can get notifications about new posts/updates via:

Integrity protection

This blog/repo is integrity protected using git tags digitially signed with my blog-signing key. In order to verify the authenticity of all or any of the posts, you can use the following command:

$ git describe --exact-match HEAD
<some tag>
$ git tag -v <some tag>

(In)dependency on GitHub

While this repo is hosted on GitHub, and some GitHub-specific features are exploited in order to make this more available to a wider audience, specifically GitHub's support for Static Web Hosting, it should be stressed that neither availability nor integrity of this blog requires one to use or trust GitHub. If, for some reason, GitHub, or an ISP, or whoever in between, decided to block, falsify, or censor this blog, there are dozens of alternative ways of how this repo (blog) could be delivered, e.g. via Tor or other transports, and thanks to using git signed tags, its integrity could be always verified. All the documents contained in this repo (apart from the old Blogger posts which have been converted automatically) have been created with an assumption to be easily readable using just a standard text editor or viewer.

Patches or pull requests welcome!

If you find spelling, grammar or other errors in my blog posts, and feel like correcting them, please send me a patch like you would do for any other git-based software project. Thanks!


This Blog and Website by Joanna Rutkowska is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.