MoreRSS

site iconTim BornholdtModify

I'm a seasoned entrepreneur and technical co-founder who helps amazing people get their impactful organizations off the ground.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Tim Bornholdt

88x31 Button Creator

2026-02-12 11:19:00

11 year old Tim would've killed for something like this. Instead, 11 year old Tim spent weeks understanding how keyframes work in Photoshop 3.0. 🤦‍♂️

timbornholdt-com-2026

Read this post on the web | Respond to this post via email

Lunara Day 2

2026-02-11 12:09:00

I spent most of my day working on Lunara today.

Here's what the app can do now:

In addition to albums, you can browse by collection or by artist

Lunara's new collection view, showing the Current Vibes in all its gloryThe new artists viewAn updated albums view

I'm not a huge fan of the UI on this, but I'll fix it eventually. I do love being able to search by artist... damn probably should adjust that for the albums page too, eh?

There's a "now playing" screen that shows the songs that are up next in the queue

Lunara now playing screen showing a blink 182 albumLunara now playing screen showing a rezillos album

Tapping the album art loads the album details. Tapping a song in the upcoming queue jumps right to it. Tapping the artist loads the artist page. The colors for the view are dynamically chosen based on the album art. The title of the song scrolls in a marquee (more on that below).

There's an artist page

Lunara artists page showing the bethssame screen as above but scrolled to the bottom

The artist page shows the artist image, their biography from the Plex library, buttons to play all their albums in chronological order (or shuffle the songs from all of their albums), a list of the artist's genres, and then a list of their albums. It shows the album's artwork, the title, the release date, the run time of the album, and a star rating (if present).

Images and library metadata are cached so the app loads fast

Nothing visual here but still dope.

Added a startup screen

Lunara launch screen

I can only see this screen for about half a second, but the triangles in the background sure do render randomly every time it loads.

Continued to make the album detail page look dope

Album detail page

Like the "now playing" screen, the colors are dynamically generated based on the album art.


I can't overstate how much fun I'm having with this.

It's incredible how fast I am iterating on my ideas. For example: on the now playing screen, I wanted the title of the track to be a single line long, and if the title was too long, it would scroll back and forth. This feature likely would've taken me two or three days of experimentation to get it right. Codex took 6 minutes.

Yeah, I believe this will be my primary music player by the end of this week.


Up next:

  • Settings screen. I want to run A/B experiments in my app, and having a settings screen will let me enable flipper tags to toggle behavior.
  • Offline listening. We've already got a cache system for images and metadata, so this is the next logical step. I'll download music on the device and store it such that I won't need to stream it again.
  • Queue management. I want to be able to insert an album or track to the top of the queue. I'll also want look-ahead downloading such that the next 5 songs that are in an upcoming queue are downloaded to the device ahead of time.
  • Lock screen now playing and remote controls. I gotta be able to skip tracks from the lock screen.

Read this post on the web | Respond to this post via email

Fine, I'll make my own music player!

2026-02-10 12:32:00

The most compelling use case I see for agentic programming is to enable home-cooked software on a scale like never before. As part of my burnout recovery, I noticed that I've been searching for years for a home-cooked meal I can sink my teeth into and build for myself.

I recently beta tested James Reeves' Spite. It's an exceptional, opinionated music player, targeted to fit James' vision for how he consumes music.

As I was playing around with it, it dawned on me: I could do this.

I have opinions. I have $20 per month. I have a decade of iOS development experience.

So I've decided I'm going to see how far I can push an agent to help me brew up a custom music player.

I'm calling it Lunara.

My requirements

I currently use Plexamp to achieve about 90% of what I would like to do with my music listening... but it's that 10% that I'm going to push on to see how weird I can make this app.

I want to build this in public.

I want to mostly use agentic tools. I'll drop into Xcode and help handle some of the quirks that LLMs can't handle yet, but for the most part, I'm gonna be hands off of the code itself. I will be more concerned about writing clear requirements up front, reviewing the unit tests that the agents will write, and dogfood the hell out of it.

The app will evolve to match my specific listening habits. As I outline in the project readme, I use Plex to manage my library. I've spent an embarrassing amount of time pruning my library, adding tags and high res album art and whatnot. I don't want to replace it; I want a new front end that integrates deeply with it.

I see my digital music garden as a large pool. I like to jump into my library and wade around, often hitting "shuffle" on my thousands of songs until something matches my current mood.

I never plan on releasing this thing to the App Store, by the way. If you want, you can absolutely download the repo and run it against your own Plex library. In fact, one of the dopest things that the agents have done so far is incorporate Plex's PIN login approach. I have a feeling I'll say this a lot, but I absolutely would not have gone that far had I been forced to write all of this myself.

Current progress

I've been obsessed with this idea for the last 24 hours. And in just 24 hours, I've been truly unbelievable progress.

Using gpt-5.2-codex-medium with the Codex app for macOS (since it gives me 2x tokens lol), here are a couple screenshots of what I've built:

This is the main page so far. It's a grid of album art. It's not very impressive, except for the fact that it's loading dynamically from an authenticated Plex session and none of this existed 24 hours ago.

Mobile app library screen showing a grid of music albums with cover art, titles, artists, and years, plus a Sign Out button


Here's the "album details" page. Again, nothing revolutionary yet... but isn't it cool?

Music app album screen showing Michael Jackson “Number Ones” cover art with track list including Don’t Stop ’til You Get Enough, Rock With You, Billie Jean, and Beat It


It also actually plays music from the library! Behold: Taco Grande in all it's glory.

Music app album details screen showing review text, genres Comedy/Spoken and Pop/Rock, rating 9.0, and currently playing track Taco Grande with progress bar

Next steps

I stayed up until midnight last night getting this far, and I'm afraid I'll get sucked into a deeper rabbit hole if I don't sign off for now. So here's my next steps:

  1. Offline media manager. I don't want to be streaming music across the internet if I can help it. I have a beefy drive on my phone, might as well use it.
  2. Queue manager. I want there to be a queue, should be able to insert albums into the bottom of the queue as needed.
  3. Now playing screen. I will mostly get close to what Plexamp does for a v1 but just need something in place for now.
  4. Caching artwork and library metadata. Right now, the app refreshes the library every time I launch the app. I don't update it that often, so I'd like it to do a one-time full sync of everything and then cache that.
  5. Hand-in-hand with that feature, I want to get a selective sync engine going which periodically detects and refreshes the local cache when there are changes remotely.
  6. Incorporate with the lock screen's now playing + remote control functionality.
  7. Get a basic settings screen in place.

Once that's done, I'm going to make this app my daily driver and go from there.

Okay if I don't just go to bed now I'll stay up for another six hours doing this. I haven't had this much fun on a computer in years. Even while writing this blog post I made some tweaks, like adding the track artist to its listing in the show album screen if it differs from the album artist.

Showing the current vol. 1 with track artists in the view

Read this post on the web | Respond to this post via email

We mourn our craft

2026-02-09 23:51:23

We’ll miss the feeling of holding code in our hands and molding it like clay in the caress of a master sculptor. We’ll miss the sleepless wrangling of some odd bug that eventually relents to the debugger at 2 AM. We’ll miss creating something we feel proud of, something true and right and good. We’ll miss the satisfaction of the artist’s signature at the bottom of the oil painting, the GitHub repo saying “I made this.”

I don’t celebrate the new world, but I also don’t resist it. The sun rises, the sun sets, I orbit helplessly around it, and my protests can’t stop it. It doesn’t care; it continues its arc across the sky regardless, moving but unmoved.

If you would like to grieve, I invite you to grieve with me. We are the last of our kind, and those who follow us won’t understand our sorrow. Our craft, as we have practiced it, will end up like some blacksmith’s tool in an archeological dig, a curio for future generations. It cannot be helped, it is the nature of all things to pass to dust, and yet still we can mourn. Now is the time to mourn the passing of our craft.

Last night, I started work on a project I’m calling Lunara. It’s my own personal iOS client for my Plex music library.

I basically rattled off a whole bunch of wishlist items at an LLM and had it organize it into a README.

I decided my goals for the project are two-fold:

  1. Experiment mightily. Use unfamiliar technologies in a domain I am no longer actively being paid to be an expert in.
  2. Use the LLMs to teach me how to work with them.

So far, in perhaps 2 hours of work, I’ve got a shell of an app that can communicate with my Plex library. All it can do right now is list out the albums, but that would’ve taken me a week or two of diligent troubleshooting before having Codex.

These “woe is my craft” posts make sense to me when you view them through the lens of an engineer who truly cares about the code.

But as someone who has never really cared much about the code, these are tools of liberation. I can come up with a hairbrained idea that’ll work specifically for me and prototype something into existence in a couple days.

There’s time to lament what once was. But like my friend Carrie used to say after losing a big race: you have twenty-four hours to feel bad for yourself. Then, you gotta get back up and keep moving forward.

LLMs are here. They enable a completely different form of developer: the homebaked variety.

Did you watch all those AI commericals yesterday during the Super Bowl? Almost all of them featured people doing their normal, boring jobs, but they were able to get computers to do all the things we, as engineers, take for granted.

This does mean us engineers won’t be paid as well as we once were, but that’s okay. Now we can go out and solve more complex problems!

You can either adapt or be relegated to the other myriad forms of artistry that hang their hat on their craft. You can hire a master woodworker to build you a table or you can go to IKEA and buy a cheap one.

Figure out what your problem is first. Then find the right approach (and tools) to solve that problem.

Read this post on the web | Respond to this post via email

My Taste Is Basic. So What?

2026-02-05 00:04:07

I can’t live in hell and make excuses for ravenously consuming a shitty reality show produced by a person I don’t know personally on a network I am unaffiliated with. You can use “I like it!” (the exclamation point is necessary) any time freaks question a regular-ass thing you enjoy, and it’ll swipe their legs out from under them every single time, and you can stand over their quivering body with your subpar tastes and laugh your face off.

Deploy it whenever you want, then sit back and watch judgmental friends splutter and try to choke out a response, because what people like that really want is to show off how much more cultured and evolved they are than you, and saying “I like it!” robs them of that opportunity.

Read this post on the web | Respond to this post via email

Practice Guide for Computer

2026-02-03 21:06:00

Originally adapted from Ron Miller's Advanced Improv Practice Guide, and discovered at the bottom of jyn's incredible blog post titled "i'm just having fun", which is a must-read.

Before starting your daily practice routine, read and seriously consider the following:

A. DAILY AFFIRMATIONS

  1. How fortunate I am that in this life I am one who has been allowed to create beauty with computer.
  2. It is my responsibility to create peace, beauty, and love with computer.

B. I WILL BE KIND TO MYSELF

  1. IT IS ONLY COMPUTER
  2. No matter my level of development in computer, how good or bad I think I am, it is only computer and I am a beautiful person.
  3. I will not compare myself with my colleagues. If they do computer beautifully, I will enjoy it and be thankful and proud that I live in fellowship with them.
  4. There will always be someone with more abilities in computer than my own as there will be those with less.

C. REASONS TO DO COMPUTER

  1. To contribute to the world's spiritual growth.
  2. To contribute to my own self-discovery and spiritual growth.
  3. To pay homage to all the great practitioners of computer, past and present, who have added beauty to the world.

D. RID YOUR SELF OF THE FOLLOWING REASONS FOR BEING A PRACTITIONER OF COMPUTER

  1. To create self-esteem
  2. To be "hip"
  3. To manipulate
  4. To get rich or famous

Read this post on the web | Respond to this post via email