I've written 20,000 lines of code for Ring of Keys
This week I've been working on a new, more dashboard-y member dashboard for ringofkeys.org that I designed on Sunday1. The director and I are hoping to make the platform a little more useful to members, and give more opportunities for them to connect with and see each other. This feels like a great first step toward that:
While I've been implementing this new layout the code has been coming really easy, and I've been grateful for how much easier development has been since we made the switch from GatsbyJS to NextJS last year. Remembering the complete re-platform, I got curious how many lines of code I've written for this project, and quickly found this command line script in an answer from Ahmad Awais2 on Stack Overflow (thanks to him as always!). After learning how to exclude files from
git-ls I was able to create this script:
git ls-files -- ':!:package-lock.json' ':!:public/*' ':!:LICENSE' | xargs wc -l
The things in quotes are to exclude assets (in
/public) and other large auto-generated files from my contributions. Note that this excludes all things not tracked by Git, such as the
node_modules folder, which is good.
And the remaining total lines was 20,044!
That felt like a pretty big accomplishment to me. Since I've never really been paid to be a developer or software engineer, I often struggle to see myself as one. But there's something about being able to say I've written 20K lines in a platform I built from scratch (and rebuilt) over 3 years that feels real to me, lets me say I am a developer.
It's been a good 3 years working on this project. We're up to almost 700 artists on the site; we've implemented editable profiles, Stripe subscriptions, decent editorial control, lightweight content moderation, and more with an operating cost of under $50/month. And this past year has been the most active one yet.
I'm looking forward to another great year building this platform, and hope it can be helpful to the great theatremakers that use it. If you're a designer or developer looking to donate your expertise toward a good cause, please consider reaching out to see if we can build something together!