Commit 138e34b097
Verified · cmc
Layout: unified · split
content/blog/2026-07-21-skunkyart-fork.org added +55
| @@ -0,0 +1,55 @@ | ||
| 1 | #+date: [2026-07-21 Tue] | |
| 2 | #+title: Forking SkunkyArt | |
| 3 | #+description: Announcing my fork of SkunkyArt, an alternative privacy frontend for DeviantArt, now maintained under Zero Labs. | |
| 4 | #+slug: skunkyart-fork | |
| 5 | #+filetags: :development:self-hosting: | |
| 6 | ||
| 7 | * SkunkyArt | |
| 8 | ||
| 9 | I've forked [[https://git.macaw.me/skunky/SkunkyArt][SkunkyArt]], an alternative privacy frontend for DeviantArt that works | |
| 10 | entirely without JavaScript, over to the [[https://github.com/zerolabsco][Zero Labs]] organization on GitHub. | |
| 11 | ||
| 12 | ** Project Links | |
| 13 | ||
| 14 | - [[https://github.com/zerolabsco/skunky-art][Source]] | |
| 15 | - [[https://github.com/zerolabsco/skunky-art/blob/master/INSTANCES.md][Instances]] | |
| 16 | - [[https://github.com/zerolabsco/skunky-art/issues][Issues]] | |
| 17 | ||
| 18 | ** Why Fork? | |
| 19 | ||
| 20 | I didn't fork this project just for fun. At the time I found it, the upstream | |
| 21 | repository hadn't been updated in over a year, carried a number of unresolved | |
| 22 | bugs, and every instance on its public list was a dead link. Rather than let a | |
| 23 | genuinely useful privacy frontend rot, I decided to pick it up and keep it | |
| 24 | maintained. | |
| 25 | ||
| 26 | ** What's Changed So Far | |
| 27 | ||
| 28 | The fork is already a handful of releases ahead of upstream. Highlights so far: | |
| 29 | ||
| 30 | - *Security & hardening*: fixed a forged-subdomain bypass in the media proxy, | |
| 31 | hardened the HTTP transport, server timeouts, and panic paths, and tightened | |
| 32 | the random-art retry loop. | |
| 33 | - *Bug fixes*: restored media serving, corrected the cache max-size conversion, | |
| 34 | fixed the build on macOS, and cleaned up various smaller issues. | |
| 35 | - *Dependencies*: migrated to a maintained fork of the underlying DeviantArt API | |
| 36 | library, [[https://github.com/zerolabsco/devianter][devianter]], and bumped long-stale dependencies (with Dependabot | |
| 37 | keeping them current going forward). | |
| 38 | - *Distribution*: prebuilt multi-arch Docker images (=linux/amd64= and =linux/arm64=) | |
| 39 | are now published to GHCR on every release tag: | |
| 40 | ||
| 41 | #+begin_src sh | |
| 42 | docker pull ghcr.io/zerolabsco/skunky-art:latest | |
| 43 | #+end_src | |
| 44 | ||
| 45 | - *Tooling*: added CI, golangci-lint, and outbound request throttling for | |
| 46 | DeviantArt. | |
| 47 | ||
| 48 | * Run an Instance! | |
| 49 | ||
| 50 | Since all of the previously listed instances are gone, the instance list is | |
| 51 | starting fresh. If you'd like to host one, the [[https://github.com/zerolabsco/skunky-art][README]] covers setup — including a | |
| 52 | Docker Compose example (plus an optional VPN egress variant) — and you can add | |
| 53 | your instance to the list with a quick PR or issue. | |
| 54 | ||
| 55 | As always, bug reports and contributions are welcome. | |
content/blog/2026-07-25-app-store-small-wins.org added +56
| @@ -0,0 +1,56 @@ | ||
| 1 | #+date: [2026-07-25 Sat 12:00:00] | |
| 2 | #+title: Small Wins on the App Store | |
| 3 | #+description: My first tips and 5-star ratings on the iOS apps I built for fun and open-sourced. | |
| 4 | #+slug: app-store-small-wins | |
| 5 | #+filetags: :development:ios: | |
| 6 | ||
| 7 | I wanted to briefly share a couple achievements I've experienced lately from | |
| 8 | the apps I've published on the iOS app store. | |
| 9 | ||
| 10 | If you're new to my blog: I'm not a full-time developer and don't do this for a | |
| 11 | living. I develop sites, apps, etc. for fun as a hobby. I open-source everything | |
| 12 | I create so others can share or fork as they please, and I've never even | |
| 13 | included a tip option (until now - that iOS developer subscription is | |
| 14 | expensive!). | |
| 15 | ||
| 16 | * My Apps | |
| 17 | ||
| 18 | However, I've launched a few apps on the Apple app store in the last year: | |
| 19 | - [[https://apps.apple.com/us/app/domaindig/id6760368004][DomainDig]] ([[https://github.com/zerolabsco/domain-dig][Source]]) - A domain inspection toolkit for DNS, SSL, ports, etc. | |
| 20 | - [[https://apps.apple.com/us/app/hutch-for-sourcehut/id6760742299][Hutch for Sourcehut]] ([[https://github.com/zerolabsco/hutch][Source]]) - A mobile client for SourceHut. | |
| 21 | - [[https://apps.apple.com/us/app/daybyday-learn/id6760321939][DayByDay]] ([[https://github.com/zerolabsco/daybyday][Source]]) - A children's app to learn various topics through | |
| 22 | voice-enabled learning cards. | |
| 23 | ||
| 24 | I didn't expect anyone to really use these and I don't promote my apps anywhere. | |
| 25 | ||
| 26 | I created DayByDay for my daughter, as a flashcard-style app that would be easy | |
| 27 | for her to use and something we could do together in the small moments of the | |
| 28 | day. | |
| 29 | ||
| 30 | I created Hutch because I wanted a faster way to use SourceHut on the go, | |
| 31 | especially since I use private mode in Safari and am constantly logged out of my | |
| 32 | accounts. Hutch lets me read my mailing lists, manage tickets, and run builds | |
| 33 | wherever I want. | |
| 34 | ||
| 35 | Finally, I created DomainDig because I was lamenting the updates Njalla made to | |
| 36 | their [[https://check.njal.la/dns/][DNS Checker]] - it used to be a plain text page and is now wrapped in | |
| 37 | Njalla's branding and lacks some info I want when looking into a domain. | |
| 38 | ||
| 39 | * My Achievements | |
| 40 | ||
| 41 | I'm proud to announce two (baby-sized) achievements I didn't expect to happen: | |
| 42 | ||
| 43 | 1. I received my first two tips through the Hutch app! For a few dollars, two | |
| 44 | people have made my whole month. It's extremely satisfying to know someone | |
| 45 | used the app and found it valuable enough to voluntarily send some money my | |
| 46 | way. | |
| 47 | 2. I received two 5-star ratings on the DomainDig app. Again, such a pleasure to | |
| 48 | know people do appreciate the value that the app brings. | |
| 49 | ||
| 50 | I'm not going to pretend two tips and two ratings will change anything. I'll | |
| 51 | keep building these apps in the small moments the same way I always have, | |
| 52 | because that's the part I actually enjoy. But it's a nice reminder that "nobody | |
| 53 | will use this" isn't always true. Sometimes a stranger finds the thing you made | |
| 54 | for yourself and gets something out of it too. | |
| 55 | ||
| 56 | So, to the four of you: thank you. You made my month. | |