I've been on vacation for a lot of this work block, but still got quite a bit done. The main focus has been on polishing ScreenCred. Added more gradients. For fun. I like it. Switched to using a proxy to access the TMDB API instead of going direct. Switched from Boutique to SwiftData. I only use this for recents and history. Pretty low stakes data, so I'm not bothering with migration. LMK if you…
The first post on this blog was July 23, 2016. Ten years. I'm at the point in my life that ten years feels like a few months ago at the most. But it's actually a pretty long time it turns out. When I bought and started samwarnick.com , I was still in college, living in Utah, and had just started an internship as a software developer. I didn't even have any kids [1] . I can't quite remember why I…
As part of my Lemon Point effort , I'm attempting to have clear boundaries on when I work on side projects. The current plan is two weeks on, one week off. I just finished the first two week block, and figured the off week would be a good chance to go over what I've done and maybe what's coming up. ScreenCred To take things more seriously, I moved ScreenCred off of my homegrown deploy system and…
For the last couple of years, I've withdrawn a bit and have been working mostly in isolation. I've been building things for just me and my wife, with code living in private repos. It's been fine, but I feel like I could, and maybe should, be doing more. So, I'm trying something new. You've heard this before, but I want to take app making slightly more seriously. I'm dusting off an old brand of…
I grew up near Ithaca, New York. One of the things Ithaca is known for is the slogan: Ithaca is Gorges. I love it. It's one of those IYKYK things that is fun to spot all over as you travel. I especially like the font. I believe it is ITC Korinna , a font made in the 1970s as a revival of the Korinna typeface . The font feels very cozy and nostalgic to me. Here's one of the many waterfalls near…
For an incredibly long time, I've had this core tension in my head of really wanting to build apps and stuff, but not knowing what to build. It feels like a race I am losing. Every moment I could be building, but am not because I don't know what to build, feels like a waste and like I have failed. Lately, I've just been feeling down about it all. I really enjoy building apps, especially iOS apps,…
I've never been one to think much about work outside of work hours. Generally, I forget who I work for and what I do. But lately, I've been thinking more about work. It coincided with increased usage of AI at work. My initial thought was that using AI was somehow making me think more about work. A sneaky conspiracy between my boss and AI companies. While I still think AI is partially to blame,…
I had a few things I wanted to write about. Decided to throw them into a single post instead of blasting them all out at once. So here's a few random things I've been up to and thinking about. Experimenting with local LLMs Like a lot of people, I'm fairly confident AI companies are going to start ratcheting up costs pretty soon. Just as something to do, I've been playing with local models. When…
Each week of April, a few friends and I took turns choosing a prompt that we would all blog about. It was a lot of fun. They are all much more insightful and eloquent than I am, so it was enjoyable to read everything they wrote. Week 1 I chose the prompt "What's something cool I'm caring about or into recently?" . Carter Dave Jared Me Week 2 Jared chose the prompt "What are your favorite places on…
Carter posed the question: You have been given one month away from your obligations to use your talents to enact societal good. What do you go do? I have a pretty boring answer. I only really have one talent. Hard for me to admit, but I think I am above average when it comes to programming. I think I would like to help kids and teens learn to build websites, and also help local small business…
As I was driving home from taking my kids to school, I thought about how I do not know how much it actually costs me to drive them every day, and I don't want to know [1] . I don't like thinking too much about how every little thing actually costs me. I tend to prefer things that wrap costs together and hide them from me. I paid for a maintenance plan on our last car so that I don't have to think…
The prompt was "how do I compute", but I made a typo. I'm leaving it. I go through phases of wanting a specific device for each task vs wanting a single device for everything. Right now, I'm in a phase of consolidation. I don't want a ton of devices or apps. I want to be content with what I have. My main device is a 14" M1 Max MacBook Pro with 64GB of memory. I've toyed with the idea of getting a…
1990s I don't think we always had the Internet at home, but I don't remember not having it. My first email was hosted on a server my uncle kept in my grandma's basement. I would tell people what my email was and they'd respond "no, your email is not just your first name and last name." Always made me feel pretty cool that actually, yes, mine was. In 2nd grade, we were doing research on space. Back…
I always need a project. I get pretty depressed if I don't have one. I don't always choose them. Sometimes they find me. That's what happened here. I noticed that my eating habits have become quite bad. Before I knew it, fixing my diet was my project. Without any structure or rules, my natural diet is eating an entire package of Oreos in a single sitting. A couple decades ago, this was…
I've always been pretty interested in bookbinding and publishing. As a kid, I'd make little notebooks and journals fairly often. One of my favorite projects in school was making and binding a book in the 5th grade. We researched an endangered animal in science, drew pictures in art, and write stories in English. Then, with special thread from Germany, we put it all together. During the pandemic,…
I needed a little extra motivation to write on the blog, so I proposed to a few friends a sort of challenge. Each week, one of us will choose the prompt for everyone and we have one week to blog about it. Pretty simple. So that's what we'll be doing in April! For the week of April 1–7, I picked "What's something cool I'm caring about or into recently?" [1] Look out for that soon. Inspired/stolen…
Yeah, but your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should . — Dr. Ian Malcolm I stayed up way too late last night. I had this idea I just had to do. I wanted to replicate Netlify Functions inside Deploybot 3000[^1]. If you are not familiar—and there is no reason you should be—Deploybot 3000 is my attempt at a code-first version of…
I've been playing a lot of Pokopia. I'm not sure how far I am, but I'm trying to keep momentum so that I actually finish it. There are a lot of tasks that take just a few minutes to complete, so I'm able to fit in some quick game sessions during the day and still feel like I'm making progress. It feels much faster paced than Animal Crossing, which is a good thing for me. It's a cute game and the…
I'm trying not to make every post about AI. But here we are. Since I started using agents at work, I've been feeling more overwhelmed. I've been working more. I've been trying to fit in prompts and changes while "paying attention" in meetings. Or starting multiple tasks. AI fatigue they call it. I feel it. I have a long list of things to do, and it's easy to think that with AI, I can get it all…
A couple years ago, I built an app for my wife and I to keep track of what is for dinner. It was cleverly named What's for Dinner? Yesterday, it broke. I did not renew my Apple Developer account last year. Best I can figure, the certificate I signed the app with finally expired yesterday. So neither of us could run it. I didn't feel like paying $100 for us to use the app. But I wanted to resolve…
Programming has always been a sort of creative outlet for me. Recently, I've hit a wall. With AI tools at my fingertips, I don't feel like building anything. Everything is within reach now. I could literally build whatever I want. That is boring. I probably haven't found them yet, but there aren't really any constraints anymore. Creativity thrives with constraints. At this moment, I just feel…
I'm writing this as a snapshot of my current feelings. I'm a human capable of learning and adapting, so who knows what I will think even six months from now. I use AI. I hate that it is called AI. I hate that they are trained on content without the creators' permission. I hate that people are talking about not hiring junior developers. I hate a lot about it. But I still use it. I still find value…
I definitely spend more time fiddling with my blog than actually writing for it. I'm fine with that. I recently saw a post of Ashur Cabrera's blog 2026 setup . I really liked their CLI for adding media—just drag from Finder to the terminal. I decided to implement something similar in my own CLI. Mine will copy images to my drafts folder, rename them something simple like media-1.jpeg ,…
If everything goes well, you will be able to read this post shortly after I commit it. If it doesn't, well, you probably won't know it didn't work. I replaced Coolify. As I've been doing more with Terraform and Ansible, I wanted a way to define which apps to run where with a simple file. With Coolify, everything is done through the UI. That introduces room for errors. They do have an API, but…
I've been using Coolify the last few months to self-host some apps. Despite it doing the job, I've spent the last week building my own deployment process to replace it. I won't get into it too much now, but with Terraform and Ansible, I've set up a builder VM and an app runner VM. The builder has a cron that checks repos for changes and builds Docker images of the apps. It then uses Ansible to…
I've been thinking about my hobbies and what's in store this year. I think I have finally come to terms with the fact that my hobbies come in waves. I dive deep for a bit and then switch to something else. So here is kinda a snapshot of my current interests and plans. Pokemon My interest in Pokemon is waning. In the past, that would frustrate me. But I've realized I don't need to do a hobby every…
I opened my BrickLink store— Lemon Point Bricks —about two years ago. I've had 32 orders in that time. Overall, it's been a pretty fun, money losing endeavor. Each order makes a small amount of money, but I'm still in the hole from initial inventory and supplies. I've got about 17,000 parts in my inventory. Pretty small in the grand scheme of things. But, that's a lot of pieces locked up in store…
For the last five years, my Synology DS920+ was the only machine I had for self-hosting stuff. Most recently, I had a mix of Docker containers and a VM with Ubuntu server and Coolify to host stuff. No longer! I wanted to separate out some apps and services from my Synology to something else. I bought an HP EliteDesk 800 G6 on eBay. And boy, am I going crazy [1] . A normal person might have just…
As I've been diving into the world of self-hosting, I've begun to rethink a lot of how I do things. Having used Netlify for a long time, I'm so used to pushing src to GitHub and Netlify building and deploying. I've done this with Nuxt, Astro, Eleventy, and more. With Coolify, I'm doing the same. For example, my blog is built as part of building the Docker image. It takes a couple minutes on some…
You may remember that I've moved some sites and apps that I self-host to only be accessible when connected to my tailnet. Things were working pretty well, and even with HTTPS! Or so I thought. I was working on adding a couple subdomains to proxy to services on my Synology. I eventually got those proxying correctly by using a dynamic config in Coolify. Something like: http : routers : castle-http :…
I'm making some upgrades to my homelab. In preparation, I've been doing some spring cleaning and getting things in order. One item on my list was putting some apps behind a VPN. TBH, I don't totally understand VPNs. Like a year ago, I tried installing Tailscale on my Synology and using it to have all my DNS go through my AdGuard instance. I don't totally remember why, but it didn't go well. I…
Open Graph images have been the bane of my existence. I love them. Seeing a beautiful one in a link preview on Mastodon or iMessage is just chef's kiss. But for whatever reason, generating them , caching them , etc. has nearly destroyed me. But I think I may have got an almost solid solution. On this blog, I have used eleventy-plugin-og-image for a long time. Pretty simple to use, but build times…
I've been unsatisfied with all the RSS reader apps I've tried recently. Lately, I've just been using the Feedbin web app saved to my Home Screen. But I've often thought that I'd like my RSS feed to be where I am, and not another place. For me, that's Discord. I spend a lot of time in Discord. So I thought, why not make Discord my RSS reader. In like an hour, I had a little app written and deployed…
I've been using Coolify for like a month and a half now. It's been working pretty well, but I've run into a couple annoyances. The UI is not great, it requires a separate service to backup volumes, and I cannot for the life of me come up with a good way to cache open graph images generated by my Eleventy build between builds. This was a simple thing with Netlify, but Coolify seems to aggressively…
I won't bury the lede. ScreenCred is now a web app. Find it at screencred.app . If you've never heard of ScreenCred, it's an app that takes two movies, TV shows, or people, and shows you all the common cast, crew, and projects between them. A slightly nerdy and niche tool that I made for myself. I started ScreenCred about three years ago as an iOS app. It was a fun little project and I learned a…
While making Hannah's Game , I made a Svelte confetti component. I wanted something similar in another project that was not Svelte. So I decided to turn it into a web component. I was hanging out on Mastodon when I saw a post from Zach Leatherman about an update to a web component of his. I opened up the GitHub repo and I was inspired by its simplicity—a single JS file and a super simple npm…
Apple Watch & AirPods Running is the only exercise I enjoy and it is 100% because of the Apple Watch and AirPods. Being able to go for a run and listen to podcasts without a phone in my pocket or strapped to my arm is liberating. I've been running regularly for about eight years now and it is because of this. The workout tracking is nice, but really, it's podcasts—I don't think I'd run if I could…
As an experiment, I wanted to explore what it would take to move samwarnick.com from Netlify to my self-hosted Coolify instance. I knew I could have it build and serve an Eleventy site. That was the easy part. But I actually use quite a few different features of Netlify for this blog. There were five challenges I needed to find solutions for: Caching og-images between builds. Scheduled redeploys.…
Like so many of my sudden deep dives, this is Carter's fault. One of the frustrations I recently expressed is the difficulty I have in choosing how to host projects. I think I over-index on free. Carter said "you should learn Coolify with me." I had come across Coolify about a year ago. It markets itself as a self-hostable alternative to Netlify and other services. I use Netlify to build and host…
I realized that after I posted about trying to make OG images work on Cloudflare , I stopped doing almost anything. No side projects. No blogging. No nothing. Well, not nothing, but a lot of binging shows. It broke me. Or I broke me. Well, I almost feel like working on stuff again. Not quite yet, but almost. I can feel it coming. Perfect is the enemy of good. I struggle with this. A lot. Trying to…
Buckle up for a ramble. Here's something you'd never expect from me: I feel burnt out. I know, shocking. I'm never burnt out. I just don't feel like doing anything. I'm starting to think that my daily routine is contributing to it. Somewhat out of necessity, my days are pretty structured and consistent: Wake up around 6am, get kids fed and ready for school Take kids to school and go for a walk or…
I'm migrating ScreenCred to be a web app. In a shocking move of abandoning the Perfect Stack, I'm giving SvelteKit a try. Aside from the mediocre WebStorm support, I'm liking it. But that is probably a story for another day. One feature of ScreenCred that only I care about is that when you share a link to a comparison, an OG Image is generated for it. Because of the vast number of possibilities,…
CARTER_RULES.md I thought it might be an interesting meditation to try and figure out what rules I personally follow when writing code. This is a strong opinions, loosely held approach to things—I'll do what I think is best, but I'm pretty easily convinced to pick something else, especially if you seem like you care. My rule is pretty much do what Carter does, so this is a great resource for me. I…
My wife is helping start a Pokémon club at our library. I thought it would be fun to make a new booster pack each month to give out to the kids. So I started working on September. They are pretty much just copies of the Japanese Pokémon Gym Promo packs . I had never seen them before, but instantly fell in love with how they look. So I copied them in Affinity Designer. I'm not a very good graphic…
Since letting my Apple Developer membership expire , I've been giving more thought to moving ScreenCred to the web. It's a technically simple app. But I have run into one big problem—design. Whatever web design skills I may have ever had, they have definitely atrophied. I'm stuck. One of the things I like about developing for iOS is the design shortcuts you can take. The Human Interface Guidelines…
My Apple Developer membership has expired. I didn't have auto renew enabled and I just kept putting it off and now it's expired. I don't know if I'm going to renew it or not. I started updating ScreenCred for iOS 18 and Liquid Glass. I liked the direction things were headed. But Liquid Glass seems in flux and not fully thought through. It works great in some situations and terribly in others—maybe…
I'm in between projects at the moment. I spent a couple days tearing down my desk to try different setups. TL;DR it's basically back to how it was, except my PC is now plugged into my TV. "In between projects" implies I know what's next, but I don't. There's a lot of things I could be doing right now: Part out some LEGO sets to add more parts to my BrickLink store. Sort Pokemon cards. Watch a show…
Sometimes when I shower, I zone out. I think about what I'm going to have for lunch, what I need to do at work that day, the people who have wronged me and how I will get revenge, or projects I'm working on. The usual stuff. The problem is, sometimes I forget which shower step I'm on. Sometimes I wash my hair three times. I'm ashamed to admit, but my first thought was "could I have an AI watch me…
I've long considered my hobby to be hobbies. The other day, I wondered, do I like hobbies or do I like projects? Maybe it's semantics, but maybe also an important distinction? Wikipedia defines a hobby as "a regular activity that is done for enjoyment, typically during one's leisure time." And defines a project as "a type of assignment, typically involving research or design, that is carefully…