diff --git a/CNAME b/CNAME
new file mode 100644
index 0000000..77f3be0
--- /dev/null
+++ b/CNAME
@@ -0,0 +1,2 @@
+awoo.onl
+www.awoo.onl
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..76a1594
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,4 @@
+source 'https://rubygems.org'
+
+gem 'jekyll', '~> 3.5.0'
+gem 'redcarpet'
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 0000000..7d56cbe
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1,24 @@
+safe: true
+include: [_headers]
+exclude: [.gitignore, _bin, CNAME, LICENSE, Gemfile, Gemfile.lock]
+timezone: America/New_York
+
+markdown: redcarpet
+redcarpet:
+ extensions: [with_toc_data]
+
+url: https://awoo.onl
+
+permalink: /blog/:title/
+
+defaults:
+ -
+ scope:
+ path: "" # All files in the project.
+ values:
+ layout: "default"
+ -
+ scope:
+ path: "_posts"
+ values:
+ layout: "post"
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 0000000..e956f19
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,35 @@
+
+
+
+ {{ page.title }}{% if page.title != '' %}—{% endif %}awooOS
+
+
+
+
+
+
+
+
+{% if page.has_code %}
+
+{% endif %}
+
+
+
+
+
+{{ content }}
+
+
+
diff --git a/_layouts/post.html b/_layouts/post.html
new file mode 100644
index 0000000..a14c1dd
--- /dev/null
+++ b/_layouts/post.html
@@ -0,0 +1,20 @@
+---
+layout: default
+---
+
+{{ page.title }}
+
+
+
+
+{{ content }}
+
+
diff --git a/css/application.css b/css/application.css
new file mode 100644
index 0000000..fa7de0b
--- /dev/null
+++ b/css/application.css
@@ -0,0 +1,160 @@
+/* vim: set fs=css */
+
+html {
+ box-sizing: border-box;
+ text-rendering: optimizeLegibility;
+ font-family: sans-serif;
+}
+*, *:before, *:after {
+ box-sizing: inherit;
+}
+
+body {
+ font-family: Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-size: 100%;
+ line-height: 1.5em;
+ color: #24292e;
+ background-color: #fff;
+}
+
+main, header, nav { display: block; }
+header {
+ text-align: center;
+ margin-bottom: 2em;
+}
+
+main {
+ max-width: 65ch;
+ padding-bottom: 3em;
+ margin: auto;
+}
+
+main :first-child { margin-top: 0; }
+
+code, kbd, pre, samp {
+ font-family: monospace;
+ font-size: 1em;
+}
+
+.highlight {
+ background: #fafafa;
+ overflow: auto;
+}
+
+.highlight pre {
+ padding: 2em;
+}
+
+/* 100ch is some arbitrary number that seems to work. */
+@media(min-width: 100ch) {
+ .highlight {
+ transition: width 1s;
+ width: 65ch;
+ }
+
+ .highlight:hover, .highlight:focus, .highlight.active {
+ width: 85ch;
+ }
+}
+
+a {
+ color: #0366d6;
+ text-decoration: none;
+}
+a:hover, a:focus, a:active {
+ text-decoration: underline;
+}
+
+h1, h2 { border-bottom: 1px solid #eaecef; }
+
+h1, h2, h3, h4 {
+ margin-top: 1em;
+ margin-bottom: 0em;
+ font-weight: 600;
+ line-height: 1em;
+}
+
+h1 { font-size: 2em; }
+h2 { font-size: 1.75em; }
+h3 { font-size: 1.5em; }
+h4 { font-size: 1.25em; }
+
+h3:target a:before,
+h3 a:hover:before,
+h3 a:focus:before,
+h4:target a:before,
+h4 a:hover:before,
+h4 a:focus:before {
+ display: block;
+ content: '\25ba'; /* ► */
+ position: absolute;
+ margin-left: -1.25em;
+ color: #0366d6;
+ margin-top: -0.1em; /* HACK: Why does this fix alignment? */
+}
+
+p { margin-top: 1em; margin-bottom: 0; }
+p.urgent {
+ border: 3px solid red;
+ margin: 2em 0;
+ padding: 1em;
+}
+
+ul { margin-top: 0.25em; }
+
+h1 + ul, h2 + ul, h3 + ul, h4 + ul {
+ margin-top: 1em;
+}
+
+header h1 { padding-bottom: 0.25em; }
+
+nav ul {
+ list-style: none;
+ padding: 0;
+ margin-top: 1em;
+}
+nav li {
+ display: inline-block;
+}
+nav li:after {
+ content: '\2022';
+}
+nav li:last-child:after {
+ content: '';
+}
+
+nav li a {
+ padding: 1em;
+}
+
+#table-of-contents, #table-of-contents + ol {
+ margin: 1em auto;
+ max-width: 40ch;
+}
+
+#table-of-contents {
+ margin-top: 2em;
+ margin-bottom: 0;
+}
+
+#table-of-contents + ol {
+ margin-top: 0;
+ padding-left: 1em;
+ margin-bottom: 2em;
+}
+
+#table-of-contents + ol li > a {
+ display: inline-block;
+ padding: 0.5em;
+}
+
+.vimeo-video {
+ margin-top: 1em;
+ border: 1px solid #ccc;
+}
+
+.vimeo-video p {
+ display: inline-block;
+ padding: 0.5em 1em;
+ margin-top: -0.5em;
+}
diff --git a/css/pygments.css b/css/pygments.css
new file mode 100644
index 0000000..1224755
--- /dev/null
+++ b/css/pygments.css
@@ -0,0 +1,62 @@
+.hll { background-color: #ffffcc }
+.c { color: #408080; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #008000; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.cp { color: #BC7A00 } /* Comment.Preproc */
+.c1 { color: #408080; font-style: italic } /* Comment.Single */
+.cs { color: #408080; font-style: italic } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #808080 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0040D0 } /* Generic.Traceback */
+.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #008000 } /* Keyword.Pseudo */
+.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #B00040 } /* Keyword.Type */
+.m { color: #666666 } /* Literal.Number */
+.s { color: #BA2121 } /* Literal.String */
+.na { color: #7D9029 } /* Name.Attribute */
+.nb { color: #008000 } /* Name.Builtin */
+.nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.no { color: #880000 } /* Name.Constant */
+.nd { color: #AA22FF } /* Name.Decorator */
+.ni { color: #999999; font-weight: bold } /* Name.Entity */
+.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.nf { color: #0000FF } /* Name.Function */
+.nl { color: #A0A000 } /* Name.Label */
+.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.nt { color: #008000; font-weight: bold } /* Name.Tag */
+.nv { color: #19177C } /* Name.Variable */
+.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mf { color: #666666 } /* Literal.Number.Float */
+.mh { color: #666666 } /* Literal.Number.Hex */
+.mi { color: #666666 } /* Literal.Number.Integer */
+.mo { color: #666666 } /* Literal.Number.Oct */
+.sb { color: #BA2121 } /* Literal.String.Backtick */
+.sc { color: #BA2121 } /* Literal.String.Char */
+.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #BA2121 } /* Literal.String.Double */
+.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #BA2121 } /* Literal.String.Heredoc */
+.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.sx { color: #008000 } /* Literal.String.Other */
+.sr { color: #BB6688 } /* Literal.String.Regex */
+.s1 { color: #BA2121 } /* Literal.String.Single */
+.ss { color: #19177C } /* Literal.String.Symbol */
+.bp { color: #008000 } /* Name.Builtin.Pseudo */
+.vc { color: #19177C } /* Name.Variable.Class */
+.vg { color: #19177C } /* Name.Variable.Global */
+.vi { color: #19177C } /* Name.Variable.Instance */
+.il { color: #666666 } /* Literal.Number.Integer.Long */
+
diff --git a/index.markdown b/index.markdown
new file mode 100644
index 0000000..fe9b2a0
--- /dev/null
+++ b/index.markdown
@@ -0,0 +1,22 @@
+---
+---
+
+awooOS is an experimental microkernel-based operating system. it aims to
+use libraries and services for as much as possible, with a small core
+kernel.
+
+it's built around event-based architecture — even initializing the
+hardware abstraction layer is done via an event system.
+
+there are plans to pull out the various libraries into individual
+standalone repositories.
+
+some of the libraries are:
+
+* *eventually* — event management system.
+* *hal-i386* — the hardware abstraction layer implementation for
+ the i386 platform.
+* *ktest* — kernel testing framework.
+* *libpanic* — a framework for kernel panics.
+* *scheduler* — process scheduler.
+* [*dmm*](https://github.com/awooos/dmm) — memory management library.
diff --git a/nightlies/index.html b/nightlies/index.html
new file mode 100644
index 0000000..febb17b
--- /dev/null
+++ b/nightlies/index.html
@@ -0,0 +1,54 @@
+---
+title: nightly builds
+layout: default
+---
+
+
+