This post is part of the Lobste.rs blog carnival.
A while ago I read this blog post “An app can be a home-cooked meal”. It really resonated with me. Later, I realized it’s because I’ve been doing this for a while, just without a name. While I don’t have a ton of home-cooked apps, I have written a few over the years for some different specific reasons.
High school and LiveJournal
When I was in middle school, LiveJournal was the social media of choice. All my friends had one, and there was a nice feed-like page that aggregated posts in a reverse-chronological order. When I started high school, friends started moving away from LiveJournal and to other blog providers (including Blogger). I missed the LiveJournal aggregation and wrote a simple RSS reader to give me an approximation of that.
This was the first piece of software I wrote for myself.
Finding housing
I’ve written and re-written this app several times because I’ve never found any other offering that has the kinds of features I’m looking for.
When I was in college, I wanted to find an apartment to move into so I didn’t have to stay in the dorms. I found myself unhappy tracking different apartments in a spreadsheet since I wanted to look at more information about buildings/units when comparing them (including pictures) than a single row would give me. I ended up writing a PHP-based webapp (on shared LAMP hosting) that gave me the CRUD workflow I wanted and let me render both detail pages for each option and a comparison view.
I did this again when I moved to Seattle for my first job out of college, this time adding more features to it such as maps.
I then updated it again when I bought my first place (since some of the data model) needed to change for purchase price + HOA fees).
The most recent time I ended up rewriting it completely (and in Go, since I work in Go professionally and don’t work in PHP), and added some neat features such as:
- scrape Redfin listings for initial data entry on properties that were interesting to me (this was all for personal use and directed similar to browsing the website, so not automated scraping)
- store points-of-interest that mattered in my daily life (and affect how my life would be in a given location)
- calculate driving time between a property and the relevant points-of-interest using the Google Maps API
- plot maps of properties
Monitoring environmental conditions
I first bought an Aranet4 sensor during COVID as a way of better understanding air changes in a room. Now I used it primarily to measure temperature, but the CO2 concentration, humidity, and pressure are also interesting datapoints. I now have three Aranet4 sensors in different rooms of my home and use them to understand how temperature affects my kids’ sleep. But reading the sensors requires me to be in Bluetooth range, and that’s a bit finicky in different parts of my home.
I wrote a little webapp running on a Raspberry Pi Zero W which connects to the sensors and displays the data on a webpage. The Raspberry Pi stays in a central location within Bluetooth range to the sensors and lets me look at the data from anywhere I have Internet access (via Tailscale).
Saving videos from Ring cameras
I use Ring cameras at my home. I’ve been annoyed by the process to save any of the videos, as my options are to either (a) go to the Ring website (which seems to frequently sign me out, and signing in is annoying with TOTP MFA) or (b) download the video to my phone using the Ring app (which consumes space on my phone I’d rather have available for other things).
This is my most-recent home-cooked app. I now have a little server that listens for email containing links to Ring videos and downloads them onto its disk.
Conclusion
All of these were pieces of software that I wrote to “scratch my own itch” or fill a personal use-case that I didn’t otherwise have a solution for. And it doesn’t really matter that they’re not useful for other people as long as they’re useful for me.