summaryrefslogtreecommitdiff
path: root/README.nfo
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-08-02 15:29:34 -0500
committerChristian Cleberg <[email protected]>2026-08-02 15:29:34 -0500
commitcc8f57034cc7985e07422415d8d0bea4d6fc485c (patch)
treed029d187c96bcd8aad5ec628573b38e3fdcdd8d3 /README.nfo
parenta98c2a4542e19ce4fb632bc32fc47c18273161cc (diff)
downloadmichelangelo-cc8f57034cc7985e07422415d8d0bea4d6fc485c.tar.gz
michelangelo-cc8f57034cc7985e07422415d8d0bea4d6fc485c.tar.bz2
michelangelo-cc8f57034cc7985e07422415d8d0bea4d6fc485c.zip
convert readme to nfo; relicense to 0bsdHEADmain
Diffstat (limited to 'README.nfo')
-rw-r--r--README.nfo51
1 files changed, 51 insertions, 0 deletions
diff --git a/README.nfo b/README.nfo
new file mode 100644
index 0000000..dc495ad
--- /dev/null
+++ b/README.nfo
@@ -0,0 +1,51 @@
+┌──────────────────────────────────────────────────────────────┐
+│ M I C H E L A N G E L O [ KRZ ] krz.sh │
+└──────────────────────────────────────────────────────────────┘
+
+WHAT
+ self-hosted tumblr media client, written in go. shows photos and
+ videos from your dashboard in a masonry grid. no ads, no tracking,
+ no npm.
+
+DOES
+ - css masonry grid, variable height, packed tight
+ - infinite scroll via IntersectionObserver
+ - per-blog grid view (/blog/<name>)
+ - tag search (/search?q=<tag>)
+ - like and reblog from the lightbox
+ - dark/light via prefers-color-scheme
+ - go stdlib only, no external runtime deps
+
+SETUP
+ 1. create a tumblr app at https://www.tumblr.com/oauth/apps.
+ callback url http://localhost:8080/auth/callback (or your domain).
+
+ 2. configure:
+
+ export CONSUMER_KEY="your-consumer-key"
+ export CONSUMER_SECRET="your-consumer-secret"
+ export PORT=8080 # optional, defaults to 8080
+
+ 3. build and run:
+
+ go build -o michelangelo .
+ ./michelangelo
+
+ open http://localhost:8080. you'll be sent to tumblr to authorize.
+
+STRUCTURE
+ main.go http router, oauth flow, api proxy
+ tumblr.go tumblr api client (oauth 1.0a, no deps)
+ templates/ layout.html, the html shell
+ static/ app.css (grid, themes), app.js (scroll, lightbox)
+
+NOTES
+ - oauth tokens live in cookies. clear them or hit /logout to
+ re-authenticate.
+ - like/reblog use the tumblr v1 api; reblogging to your own blog
+ needs your blog name detected on first auth.
+ - tag search uses /tagged, one batch, no pagination.
+
+┌──────────────────────────────────────────────────────────────┐
+│ krz.sh │
+└──────────────────────────────────────────────────────────────┘