sent to my tiny internets newsletter section on 2023-08-22. Subscribe to get updates :)

Sarah Tze’s “Timelapse” from https://www.guggenheim.org/exhibition/sarah-sze-timelapse

I’ve been thinking about all the home-cooked apps I’ve made for myself over the years, prompted by this call for them for a conference talk. Through a combination of my interest in end-user programming and passion for the poetic web, I find that I’ve accumulated a large collection of tiny apps and websites, built out of very specific personal desires that have emerged. I had forgotten how many of these I had made given how long it’s been since some of them were created.

A pattern I notice is that most of them are designed to archive some continuous ritual or practice. They all rely on varying custom solutions for storing and representing data. I want there to be a better way to make, curate, and maintain small collections of data. There have been many calls for this kind of thing, but little progress in the way of a new transformative solution despite how many bookmarking apps there are (and how many continue to pop up every now and then).

i love living note

This originated from me repeatedly being intimate with this feeling of overwhelming gratitude for being alive and wanting to create a time capsule to preserve these feelings. It started off as just recording the date and time and leaving me space to write a little note about it, and increasingly I added more and more metadata to capture as much of the surrounding context as possible to “bottle” up this feeling. I added the location, front and back camera photos (BeReal style), and I really wanted a way to capture the surrounding snippet of audio (in the same way Live Photos do) but that wasn’t technically feasible.

I turned it into an iOS shortcut so I could run it from my home screen and also just tell Siri to run it by saying “i love living” so it was as easy as possible for me to capture without detracting from the moment.

Let me know if you want to use this and I can share the shortcut?

wall of windows

https://www.spencerchang.me/window/

I made a wall of windows to create the space for collecting vignettes of my life and showing the latest ones on a website. I found that having an explicit “collection” for different kinds of things prompted me to add more to them. This rings true for when I started using are.na for the first time. After a little over a year using it, I’ve collected so many things that I can refer back to (even if the search is not the best..). The in-moment act of saying ”this is interesting, and it falls under this broad umbrella of things I’ve been thinking about” creates a little wedge in my brain that makes me remember I found that thing all those months ago. All I need is the wedge to be able to rummage through all my digital drawers, paths, and traces to find what I was looking for.

The site for displaying the windows was also an experiment in an ephemeral kind of social network. It rewarded people for revisiting the site because you couldn’t access the full archive of images, only the latest ones. I wanted to see what it would feel like for a site to live, breathe, and change as I did in real-time.

I ended up extending this wall to be open to the public (guests) to submit their own life vignettes, and I ended up hosting snapshots of life from all over, from sunsets in bangkok to old game consoles, to airy treehouses. I made a tiny little social network that worked to share some intimate photos for a little bit.

bulletin

Bulletin started off as a thought around how we could create subversive tools that enable us to better control our attention online. It evolved into an “anti todo-list,” a “softer Anki,” and an embedded feed inside social media feeds that served meaningful things that I want to remember (poems, pictures, and quotes).

It’s on the backburner right now because I found that the current form is lacking something that makes it feel really good to use. I find that I get used to it and start scrolling immediately past it… Maybe it was because I was being exposed to too much old stuff because my bank of things to remember wasn’t that big? I also find that there was an inherent tension with the attention required of the things that I want to remember (usually dense and attention-intensive) and the kind of attention I wanted to spend when I was going to social media sites. This might work better if I focused on only image-focused / audio-focused media or pulled from a much larger repository of data (including things from friends that I might care about, maybe are.na channels that have a bunch of content that I don’t want to consume immediately?)

fits stream

This project was an experiment in personal data archival for a practice I started of taking a picture of my outfit every day. I initially started doing this in a Twitter thread, but I didn’t like how that spammed my existing timeline. Ultimately, I wanted a place I could store the data that could easily extend into new interfaces for showing the data and a mostly automated method that built off of my existing practice (of uploading it to an iCloud album). So I embarked on a quest to make my own data archival repository (named reservoir). This relies on a script that I run on my computer to extract photos (and corresponding metadata) from my “fits 🧢” album, uploads the photos to an S3 bucket, dumps the metadata into a fits.json file hosted on my website, and I render all the fits at https://www.spencerchang.me/fits. In the end, I effectively have my own data pipeline and warehouse just for my fits! Ideally, I wouldn’t even have to run the script, but unfortunately programmatic access to Apple Photos is terrible.

status api

I’m reflecting that a bunch of these tiny apps were made in order to enable some “live” widget on my website. My status API is an API that returns some of my latest activities, captured from different data sources. This ends up powering the marquee on my personal website, showing my latest activity.

the marquee on https://www.spencerchang.me/

from https://status.spencerchang.me/api/me

I really like the idea of collecting all your digital activity traces so you can do fun things like look back on where you were running a year ago or that you visited the link you’re on now X months ago.

For a long time, I wanted to make an app that was a personal digital panopticon so you could look back on exactly what traces you left doing things on your computer a year ago (e.g. this Github commit, liked this Tweet, lingered on the comment on this Youtube video). Even though Rewind has shown the technological innovation needed to make this technically feasible, in practice, I found it way too noisy. I want my personal panopticon to only record the things that I express some sort of revealed preference for (I liked it, I saved it, I highlighted some words on it and copied it, I started typing a reply but didn’t send it, etc.). There are so many actions we do on our computers that show them what we are thinking about and find intriguing, and there’s so much more they could do with that information in deciding which of the bytes they are showing us are important.

website screenshot archive

I made this net-shots repo to archive a bunch of pictures of my website. It uses the shot-scraper template created by Simon Willison. The impetus for this shares a lot with the previous one. I wanted to create something that could create a daily archive to record the legacy of the website and how it evolves over time, like a selfie-a-day tool for your digital spaces. I tinker a lot with my personal website (and the window site also updates often), so this is an add-on tool for a lot of these “living” websites that can document that change over time.

Up until now, I gave up on making it properly archive everything as opposed to just having the latest picture in the Github repo but finally for this post made it so that it uploads a copy to S3 every time it takes a snapshot. I guess ideally it would recognize if it was duplicate by doing a diff pass over the existing image (so if anyone would like that pls make a PR so I can take advantage too). Excited to see how this archive develops a year from now.

expense tracker

I may have the most elaborate personal finance app that is only built for one person. Effectively I’ve made my own YNAB / Mint in order to keep on top of my finances. I have a script I run every month that leverages access codes to banks accessed via Plaid to upload transactions as rows into a Coda table. I’m able to triage all my transactions through this interface, categorize them, and chart data against different time scales to evaluate how my spending and earning are evolving over time (especially helpful in this funemployment stage of life). I can create custom tags for different events (like trips or furnishing my house, etc.) so I can keep track of how spending is evolving over time for those things that span many different categories. And I can map out reimbursements so I make sure I didn’t forget to split large charges.

https://twitter.com/spencerc99/status/1421711250627518465

A lot of people have asked me if they can use this tool. The problem is that it uses so many custom-built quirky systems that I now have a trained mental muscle for operating which would be very confusing under traditional interface standards. For example, for some reason I decided that positive numbers would be expenses and negative numbers would be income early on. I also delete credit card payment charges (and the respective bank transfer transaction) because they don’t provide any new or extra information. And because I also include Venmo as an import source, I delete any transactions titled “Venmo” from my bank because they would double count the transaction when it pulls directly from account to pay. There’s all these weird practices I do that are now normalized because I don’t need to fix these things in order for it to work for me.

misc smaller things

  • clipboard saver: automatically archiving the things I copy on my computer into a .csv file via an app called Maccy, another form of archival of the everyday actions we do in digital space.
  • text assistant / poetry bot: a collective poetry bot that posted to poetry.bsky.social whenever someone texted me (each person could specify their signifying stamp as a pseudonymous form of authorship)
  • poem called love: an interactive version of alex dimitrov’s perpetual poem “a poem called love”

What homecooked apps have you made? What have they taught you? What do you find yourself yearning for in your software and digital spaces that you can’t have now?

I don’t think I’ll stop making apps for myself and my friends anytime soon. playhtml is the beginnings of something that bridges making a tool for everyone to build something with this kind of personalized, handmade web. I want people to make a bunch of homecooked websites and fun interactions for themselves and their friends using it. Let me know if you have any dreams in mind?