cmc/cleberg.net

My personal web garden & blog.

clone: git clone https://gitbay.org/cmc/cleberg.net.git

main: content/blog/2026-07-21-skunkyart-fork.org · raw

 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
 9I've forked [[https://git.macaw.me/skunky/SkunkyArt][SkunkyArt]], an alternative privacy frontend for DeviantArt that works
10entirely 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
20I didn't fork this project just for fun. At the time I found it, the upstream
21repository hadn't been updated in over a year, carried a number of unresolved
22bugs, and every instance on its public list was a dead link. Rather than let a
23genuinely useful privacy frontend rot, I decided to pick it up and keep it
24maintained.
25
26** What's Changed So Far
27
28The 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
42docker 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
50Since all of the previously listed instances are gone, the instance list is
51starting fresh. If you'd like to host one, the [[https://github.com/zerolabsco/skunky-art][README]] covers setup — including a
52Docker Compose example (plus an optional VPN egress variant) — and you can add
53your instance to the list with a quick PR or issue.
54
55As always, bug reports and contributions are welcome.