← back to connie.surf

Software with a Point of View

Chinatown.js talk, August 14 2025



PART 1: THE CONCEPT BEHIND LINK DUMP


The beginning of this talk is about Link Dump, an ephemeral link canvas I made where the links pasted will eventually disappear and remain as an exportable csv.

While creating this project I went against the normal design process that I follow during my day job as a product designer. I ended up ultimately designing for myself, more specifically, for the values I believe in.


The first value being the urgency to finish creative work and the second being a manifestation of feelings I had about data on the internet.

The urgency was because I would take notoriously long to finish creative projects. As a serial digital hoarder, I used to save so much - screenshots, notes, photos and links - with the intent of synthesizing and creating. In the end, it would remain an ever running to-do list.


At the same time I had read The Creative Act, where Rick Rubin quotes creativity as a universal force where if you don't act upon it, it would disappear and manifest elsewhere.

That sparked the first iteration of Link Dump. You could paste or import links as cards on the canvas and set a time limit for when you wanted to finish your project. The cards would age with time and when the time limit passed the canvas would erase itself. The passage of time also manifested as a screensaver that would appear if you left your tab idle for too long.

The second part was I wanted to create lighter software. The temporal aspect was important because I had a personal belief that the internet remembered too much.


When we think of cloud storage, we think of it as a weightless entity. However, the internet has an immense physicality to it from data centers in the midwest to huge cables under the ocean. As the internet becomes more integral to our lives, its physical presence only grows.


Furthermore, data is actually a huge monetization lever, and companies don't have an incentive to make it easy to mass delete items. The easier solution is just to subscribe and upgrade to unlimited cloud storage and continue to accumulate.

As a result, in my first iteration you can do everything locally. Data would be locally stored in the browser and you could eventually export it to your own hard drive when the time was up.

Allowing the user to own their data was also important to me because we don't realize that our data is owned by large corporations that can disappear at any second. Earlier in 2025, Tiktok was banned and they let you export your data as a huge CSV, but you couldn't actually save your Tiktoks because the CSV linked out to the Tiktok site as well.

But beyond the technicalities of it all, my motivations can be summarized from this one picture I saw on tumblr when I was 16.

We hold on and notice and collect, but we never really put it down. Putting it down is how you process and create and engage with the world around you. It's how you ultimately remember.

PART 2: THE PROCESS OF MAKING LINK DUMP

Beyond the end result, the process was equally as important. I created the bulk of this project between the months of March to May. I'm a designer who before this, only knew HTML, CSS and Javascript. I knew how components worked in React but I never did state management before or connected to a database.

As I've mentioned before the typical design process would be exploring and testing a prototype on Figma and building it in increments.


What I actually did was a linear process where I built out what I thought was the MVP and then kept on redoing it. The first version was just a draggable card canvas with a timer.

After that I wanted to demo it at an art event and have a participatory aspect where people contribute their links onto a group collaborative board. I then introduced a board that anyone could access via a link and had cross-device syncing and collaboration. People could upload an image from their phone and it would show up in the browser window.

Then I decided it would be a good idea to show my app to some people and ask them if they would use it. At this point, a particular feature I was proud of was this glossy modal that smoothly transitioned from the onboarding directions to the board creation screen. When I tested it some friends told me that there was too much text and inputs in the modal and they weren't going to read it.That was when I realized I needed a new onboarding mode.

I recoded it again and now on your first time viewing Link Dump, it immediately opens to a canvas that has some cards explaining what's going on. I also simplified the board creation modal to have more defaults so you don't really have to fill out much to get started and it begins.

After showing it to some people, I decided it was time to use it myself to write an essay. I had been writing an essay about the underpinnings of this project, which I called the "Organic web". After importing and organizing the links from my are.na board I realized that I had put the links into groups. Unfortunately the CSV export did not remember these groups I had created and I couldn't label them. At this point I thought if I could just build out grouping, then I could finally be done with this project.

It was also around this point I did not understand some parts of my code base anymore. Because I was using AI to assist with the state management, I started to break my code with the further changes I made. At this point I started to feel really frustrated, I had spent hundreds of hours creating slightly buggy software and I couldn't figure out how to add the final feature to allow myself to actually use it.

So what was the reason to keep doing this?


After a certain point of doing product design you start to realize that you will always be designing for a business, and a business it has to make money. A lot of things you design end up as monetization levers. When it occurs to an extreme, it's called enshittification.


Enshittification describes how companies first offer high quality services but then because they are backed by venture capital, they have to implement some decisions at cost for the user to maximize profits and exhibit growth.

I started to wonder, is there even a way to make software that is "good"? What is good anyways? If you go to the silicon valley startup scene, "good" would be "what is a niche saas market where I can follow basic design principles to make it easy do the main task and also use AI".


To me, I think of "good" software as a vector for reimagining.

I recently read this article in which two authors are discussing the state of the world. One of the authors, James, wrote this book about all the bad things tech is doing. He comes to the conclusion that we are screwed because the current system we live in keeps the existing power dynamics and there's no interest in educating on how it works. After he writes the first book, he becomes quite depressed and finds his way out through making things. The conclusion he comes to is that when you make your own technology, you can make something different and upset the existing power balance. Making is something that people are doing all the time and that you can do yourself.


That leads me to my answer which is values based software.

PART 3: VALUES BASED SOFTWARE


I'll explain this concept through an anecdote. There are so many websites where you save and categorize. There is Pinterest, and Cosmos, and Silk and River and if you're listening to this talk you are probably well aware of Are.na. So many people create the same app, but each is slightly different.

I want to highlight Are.na in particular because it was made 14 years ago, around the same time Instagram was made. What really set it apart was its revenue model, in which it doesn't have ads or collect user data as a way of monetization or any sort of algorithm. It makes money through users paying a premium subscription. People often say Are.na is "hipster pinterest" but more accurately it is a platform in which you can participate in to resist the enshittification of technology.

I believe that technology becomes a choice because when there are different options to choose from and we can choose the one that stands with our values and how we view the world.


I think technological disruption is more about seeing what you want to see in the world. One of the positive sides to vibe coding or AI assisted coding tools is a new sense of accessibility. People who were previously scared or didn't think they were smart enough to make software can now make it themselves and put into the world what they want to see.

Building becomes a new kind of freedom. A freedom to reimagine the world and what we want to see it become.

This is a transcript of my Chinatown.js talk. You can look through the slides here or the YouTube link below (warning: the microphone rings).


Related writing: The Organic Web, On Collecting and Saving the Past, On UI as a Metaphor

For more of my writing and research, visit my substack here.