Projects I work on.
I work on a lot of different projects. They are all in different stages and it can be hard to keep track of them.
This repo documents the projects that I work on in my free time.
My goal is to create tools for journalism, community organizing, music, and games.
I'm spending as much time as I can on documentation. Here are some documentation-focused tools I've been working on:
- devo – a command-line tool for creating files like README.md, CONTRIBUTING.md, code of conduct, and other repetitive code maintenance tasks.
- docpage.org – create documentation sites from a single markdown file
- markdown-reader – create a stream of markdown files
- rewrite-markdown-urls – turn relative github urls into urls appropriate for a static site
- minidocs – build a simple site for your documentation
Journalism & public-interest technology projects
Tools & APIs focused on Seattle, WA.
Documenting open data, civic tech, and civic engagement in the Pacific Northwest.
A wiki for Seattle, WA.
Large open source projects
A command-line tool to track daily notes and todos.
Host static sites with automatic SSL via Let's Encrypt.
Tools for authentication and authorization.
Tools for working with data.
Create educational workshops as websites and desktop apps.
Here are a few of my favorite small modules I've created that don't fit in one of the above sections.
- directory-command – Create a command-line tool using directory structure to define nested subcommands
- args-and-flags – parse and validate args and flags for commandline tools
- send-action – tiny module for managing state
- find-repositories Find all the git repositories in a directory
- folder-reader Create a stream that outputs the contents of a set of directories recursively
- interactive-sandbox Create editable, interactive code examples for the browser that bundle dependencies from npm
- create-html – function/cli for creating contents of index.html file
- level-model – higher-level module for creating content models with leveldb
- namespace-emitter – namespaced event emitter
- gameloop – simple game loop
- load-images – load images in the browser
- sprite-2d – render 2d sprites
I have quite a few more modules on npm.
Demos & examples
I enjoy creating demos! I learned how to write code in part by creating examples and writing about the process of creating them.
Here are some of the experiments, examples, and demos I've created over the years.
- grow – Simple click game made with choo
- Github Actions node example – This example explores using the new Github actions CI functionality for continuous testing & release
- examples-osm-p2p – Examples of using osm-p2p and osm-p2p-observations
- township-example – An example app using township modules
- github-auth-example – Example code for a post on makerlog.org about performing GitHub authentication using gatekeeper.
- experiment-yo-yo – Creating basic usage examples & experimenting with yo-yo
- experiment-d3-yo-yo – Some experiments building ui components with yo-yo.js, d3, & sheetify
- experiment-lightning-yo-yo – Examples of using lightning visualizations with yo-yo.
- experiment-choo-leaflet – experimenting with choo & leaflet
- experiment-pixel-grid-keyboard – Trying out keyboard input with pixel-grid, which is built on regl.
- gremlins-canvas-experiment – experimenting with gremlins.js and the gameloop module to draw to a canvas
- simple-game-example – simple example of a game using the gameloop module
- electron-2d-game-example – "hey, can i put a canvas game in an electron app? yeah, i guess so."
- example-crtrdg-game – example game made with crtrdg modules
Interested in contributing to one of these projects? Awesome! Get involved in the project-specific issue queues, chat rooms, or other project-specific forums.
Have ideas or fixes for this repository? Please read the contributing guidelines first.
Help keep this project open and inclusive. Please read and follow the code of conduct.