Open source work for the Shuttleworth Flash Grant
In May, 2016 I received a Shuttleworth Flash Grant thanks to Shuttleworth fellow Adam Hyde. This was a surprising, exciting grant that gave me an opportunity to work on open source for at least a month without needing to split time with contract work.
I found that I needed more time to figure out how best to migrate these modules to use bel, and decided that township and staticland would be better uses of my time.
Township in particular is something that I've needed on multiple projects. Township is a collection of modules for building authentication and authorization systems using Node.js and leveldb. As part of this grant I produced:
- township-auth – handles authentication credentials
- township-access – access rules for users of an app
- township-token – JWT tokens for authentication
- township-accounts – wrapper around the auth, access, and token modules for easier use
Recently contributors have joined the project and helped to create:
- township – wrapper around the auth, access, and token modules as request handlers
- township-client – API client for the township request handlers
I created township because I found existing projects like passport challenging to use, and were mostly focused on the express framework, which I don't use. I also considered using auth0, but preferred self-hosted solutions for managing auth credentials, and didn't have a great time using their API clients.
Township emulates the approach of auth0, while keeping the JSON API and associated API clients as simple as possible.
While developing editdata, I discovered that I needed better static site hosting for publishing all the small dataset projects I work on.
I was using both GitHub Pages and surge.sh at the time, but GitHub Pages doesn't allow SSL for custom domains, and surge.sh charges a per-site fee to allow SSL for custom domains.
Let's Encrypt had just recently started offering public registration and certificates, so I decided it would be a good time to create an open source alternative for hosting static sites that automatically have free SSL certificates via Let's Encrypt.
Staticland uses township modules for authentication.
Over 2017 my next phase of work will include using editdata, township, and staticland modules together to create new services.
First I'll be migrating the editdata modules to bel, breaking staticland code into smaller modules, and creating higher-level township modules.
Next I'll experiment with creating web apps that combine the data management of editdata, the static sites of staticland, and the user management of township.