diff --git a/deku.md b/deku.md
new file mode 100644
index 000000000..a326c11b0
--- /dev/null
+++ b/deku.md
@@ -0,0 +1,86 @@
+---
+title: Deku
+category: JavaScript libraries
+---
+
+```js
+/** @jsx element */
+import element from 'virtual-element' // replacement for React.createElement
+import {render, tree} from 'deku'
+
+var app =
+```
+
+## Reference
+
+```
+name = 'MyComponent'
+
+// Defaults
+initialState (props) {...} // return initial state
+defaultProps = { style: 'rout' }
+
+// Render
+render ({props, state}, setState) {...}
+
+// Lifecycle
+beforeUpdate ({props, state, id}, nextProps, nextState) {}
+afterRender ({props, state, id}, el) {}
+afterUpdate ({props, state, id}, prevProps, prevState, setState) {}
+afterMount ({props, state, id}, el, setState) {}
+beforeUnmount ({props, state, id}, el) {}
+```
+
+See:
diff --git a/meow.md b/meow.md
new file mode 100644
index 000000000..29bc4d8fa
--- /dev/null
+++ b/meow.md
@@ -0,0 +1,30 @@
+---
+title: Meow
+category: JavaScript libraries
+---
+
+```js
+const cli = require('meow')(`
+ Usage: appname [options]
+
+ Options:
+ -h, --help show usage information
+ -v, --version print version info and exit
+`, {
+alias: {
+ alias: { h: 'help', v: 'version', x: 'excludeTag' },
+ string: ['lang'],
+ boolean: ['pager'],
+ default: { lang: 'en' },
+ '--': true,
+ stopEarly: true, /* populate _ with first non-option */
+ unknown: function () { ... } /* invoked on unknown param */
+})
+
+cli.flags // { excludeTag: true }
+cli.input // []
+
+// yes, flags are camelCased
+```
+
+Also see [minimist](minimist.html).
diff --git a/mongodb.md b/mongodb.md
new file mode 100644
index 000000000..dfd5c75bf
--- /dev/null
+++ b/mongodb.md
@@ -0,0 +1,10 @@
+---
+title: MongoDB
+category: Development
+---
+
+## Querying
+
+```
+{ name: 'john' }
+{ name: { $eq: 'john' } }
diff --git a/virtual-dom.md b/virtual-dom.md
new file mode 100644
index 000000000..ccffc51dc
--- /dev/null
+++ b/virtual-dom.md
@@ -0,0 +1,29 @@
+---
+title: Virtual-dom
+category: JavaScript libraries
+---
+
+See
+
+```js
+var h = require('virtual-dom/h')
+var diff = require('virtual-dom/diff')
+var patch = require('virtual-dom/patch')
+var createElement = require('virtual-dom/create-element')
+```
+
+### Rendering
+
+```js
+tree = h('div', { style: { color: 'blue' } }, [ 'hello' ])
+el = createElement(tree)
+document.body.appendChild(root)
+```
+
+### Updating
+
+```js
+tree2 = h('div', { style: { color: 'blue' } }, [ 'hello world' ])
+delta = diff(tree, tree2)
+el = patch(el, delta) // patch() modifies el
+```
diff --git a/vue.md b/vue.md
new file mode 100644
index 000000000..b1f319300
--- /dev/null
+++ b/vue.md
@@ -0,0 +1,107 @@
+---
+title: Vue
+category: JavaScript libraries
+---
+
+### Lists
+
+```html
+
+ {{ todo.text }}
+ {{ $index }}
+
+```
+
+### Events
+
+```html
+
+```
+
+### Components
+
+```js
+new Vue({
+ components: { app: App }
+})
+```
+
+## API
+
+```js
+Vue.extend({ ... }) // creating components
+Vue.nextTick(() => {...})
+
+Vue.set(object, key, val) // reactive
+Vue.delete(object, key)
+
+Vue.directive('my-dir', { bind, update, unbind })
+//
+
+Vue.elementDirective('my-dir', { bind, update, unbind })
+// ...
+
+Vue.component('my-component', Vue.extend({ .. }))
+
+Vue.partial('my-partial', 'hi {{msg}}
')
+//
+```
+
+```js
+new Vue({
+ data: { ... }
+ props: ['size'],
+ props: { size: Number },
+ computed: { fullname() { return this.name + ' ' + this.lastName } },
+ methods: { go() { ... } },
+ watch: { a (val, oldVal) { ... } },
+ el: '#foo',
+ template: '...',
+ replace: true, // replace element (default true)
+
+ // lifecycle
+ created () {},
+ beforeCompile () {},
+ compiled () {},
+ ready () {}, // $el is inserted for the first time
+ attached () {},
+ detached () {},
+ beforeDestroy () {},
+ destroyed () {},
+
+ // options
+ directives: {},
+ elementDirectives: {},
+ filters: {},
+ components: {},
+ transitions: {},
+ partials: {}
+})
+```
+
+## Vue templates
+Via [vueify](https://www.npmjs.com/package/vueify)
+
+```js
+// app.vue
+
+ {{msg}}
+
+
+
+```
+
+Also
+
+```html
+
+h1(class='red') {{msg}}
+