It makes Python run.

It makes it easy to create Python scripts, programs, applications, or games and package them up to send to friends, users, players, or whomever you want to share your work with. FEET is currently being built for Windows, but Linux and Mac versions will hopefully arrive in the future!

FEET is just an executable, called feet.exe, that sits in a folder beside your script that you name main.py. You can zip up this folder and send it to anyone else on a Windows machine, and when they click the EXE, your program will run. They don't need to install Python and you never need to build or package anything.

Just send them your files and the runner.

When users run your program via feet.exe the first time, it will unpack a runtime to a feet/ sub-folder. You can remove this at any time, especially before zipping your program to share.


This website is powered by Jules, a static website generator I wrote when I was continually frustrated by small and mostly minor nits I had against all the other options, all of which are very good at what they do.

Jules is a bit more general and designed largely to reduce my constant fear of being locked into decisions I later regret. It is very adaptable and in the future entire components and formats could be swapped out and migrated between, allowing my indecisive nature to flurish.


Plasmid is a browser database for offline-first web apps.

Plasmid makes it easy to take advantage of storage browsers provide for our web applications today.

Building offline first web apps is a breeze with Plasmid.js, the javascript library that makes the complicated details of IndexedDB under the hood and makes it easy to build, utilize, and manage your browser-side databases.

But, users don't live on one device and the web thrives online. That's why Plasmid was built from the ground up to support synroncizing these databases with the Plasmid Sync server.

I am actively developing and using Plasmid and welcome anyone to try it out! I keep a mailing list for the project hosted at Google Groups:


And don't forget the Plasmid website:



Tracerlib allows multiple trace functions to operate together to trace a python program, and offers a simple framework to make the building and use of debuggers, coverage tools, and other tracing uses much easier.


Built in top of straight.plugin, this command framework provides both an argument parser and a command dispatcher. It is very early, evolving, and is used as the command dispatcher for Jules.


Python developers commonly ask for an easy way to implement "plug-ins" and straight.plugin offers that in a very easy interface, which builds on top of namespace packages. A simple call to load("my.namespace") will load any modules under the package my.namespace and options are also provided to locate and filter classes or objects inside the modules by type.

Active Projects

These projects are things I'm actively working on. All of them, if I'm not slacking, are published at Github and have documentation at Read The Docs.

Other places online