If there's one thing that these weekly journals have revealed to me thus far, it's that I should probably plan for the inevitable collapse of my motivation. Last week was one such week I probably could have planned for.
Cistern progress
I spent the start of the week working on Cistern, but I don't have much to show for it. Long story short, I started writing the React Native producer app, but I quickly ran into a conflict with my core requirement for a Cistern iOS app: Seamless Siri Shortcut actions.
While shortcut actions are completely possible with an Expo app, I want to avoid opening the app when running the shortcut. My ideal scenario is that when I press the Action Button, I get a prompt, I type in my memo, and it gets sent to my PDS. The way to achieve this is with a little Swift module.
The issue with this is that all of my SDK logic is in JS, and therefore the React Native side—and I can't just delegate operations to a headless version of my app. So, in order to get what I desire, I would need to 1) figure out a way to share credentials between the React Native and Swift environments, and 2) reimplement all of the required crypto operations in Swift. At that rate, I should really just write the whole application in Swift.
Alas, that was the final straw this week. I didn't have the emotional energy, so I had to put it down.
Trinkets!
Daily affirmations: I can finish this project before starting another. I will not start another project before finishing this one. This project will be completed and then others can be later. This project is now, other project is later. Other projects are cool but your current project is really cool
Oops. Ironically, I reposted this before everything fell apart.
Well—I figured that if I didn't have the energy to learn iOS app development, maybe I could do a little exploration with my Thingiverse-on-atproto alternative. The name I'm running with is Trinkets, at the domain trinkets.network.
Turns out I didn't have enough energy to push very far into this, either. The only things I figured out are that I'm gonna use Bun for the runtime, and I'm debating between Astro and Sveltekit for the web framework. Svelte is definitely in the equation, thanks to the excellent-looking Threlte library—it's just a matter of how much or how little of the website I want to be managed by Svelte at any given time.
On one hand, I think Trinkets fits the bill as a content-first website, which would make it a good match for Astro. However, Sveltekit would allow me to make the initial version of the website without a backend, as Bailey Townsend suggested. Still—I'm planning to incorporate backend elements in the long-term anyways, so maybe I should just start there?
I spent some time waffling, but I ended up writing some Astro as it's a framework I'm interested in learning. For what it's worth, the Threlte website is an Astro site as well, so I'm not convinced there's a right or wrong answer. Either way, I'll be able to build an excellent model viewer.
Deployments, deployments, deployments
After a little progress with Trinkets, I found something that would actually hold my attention this week: Writing a bunch of YAML.
For context, I community-host a bunch of services on my homeserver, which is a Fedora machine dedicated to Perforce and a bunch of Podman containers. I manage all of the pods with Kubernetes config files, because I dislike the Quadlet syntax, and Kube Quadlets are a thing.
Here are the things I deployed this week:
RomM, a ROM manager for emulators. While I'm happy that this exists, it doesn't seem to use the DB sidecar container for anything??? Every time I take the container down, all of the user accounts are deleted, and none of the metadata persists. It's a mystery to me, and it makes the upgrade pathway look a bit dubious.
Mealie, a recipe manager. It looks a little dated, but it seems like it'll get the job done. You can manage multiple households, so everyone can contribute recipes and organize their own cookbooks, but my partner and I can have our own meal plan. Up until this point, we've used Pestle, which is great, but Home Assistant integration and the ability to manage recipes from my desktop led me to try out Mealie.
paperless-ngx, a document organizer. Originally, I tried deploying Papra, which I think is the nicer-looking option, but for some reason it was expecting environment variables to be parsed as booleans??? I didn't look into the source code—it's a Node app, I think—but however they were reading the environment didn't play nice with Podman, so I couldn't toggle features like OIDC. That's fine by me, paperless-ngx exists and is much more mature.
This flurry of deployments was started by the announcement of Supernote Private Cloud—which, ironically, I haven't gotten to function yet. However, once that's functioning, I'm excited to integrate it into a Letta agent workflow for turning my files into Obsidian notes with diagrams.
Some other things I'm looking to deploy:
Windmill, an automation platform. It's like a lower-level n8n—notably, I can write custom Go for automations. I plan to use this for scheduled jobs and webhook management.
croc, a file-sharing utility. I'll host a relay for my friends. It's like magic-wormhole, but installing it isn't a pain in the ass.
neko, a virtual web browser. I've run some watch parties using this before, and it was a good experience. I wish it had OIDC, though.
Coder, a manager for virtual developer environments. I'm not sure I'll commit to deploying this yet—but I'm eyeing this for orchestrating coding agent workflows in Letta. Coder Tasks is an intriguing integration.
I think most folks would agree that I'm a weirdo for finding comfort in writing Kubernetes YAML, and I'm inclined to agree with them. Then again, it's kind of like origami. Maybe I should just get back into doing origami again.
At any rate, that was my week. Hopefully I can pick back up on my projects or my other writing soon. Until then, thanks as always for reading this far, and I hope you have a great week!