Commit Graph

1828 Commits

Author SHA1 Message Date
kennethreitz b031a56ab6 Remove blue-green deploy strategy for faster deploys
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:45:51 -04:00
kennethreitz cbed44aa6a Add lurking detail to comments essay
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:44:50 -04:00
kennethreitz 4a033c1651 Tighten comments essay — fix emdashes and trim length
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:44:04 -04:00
kennethreitz badd38acf0 Remove top border from giscus container
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:40:34 -04:00
kennethreitz e904196f96 Add 'Don't Read the Comments' essay and disable giscus reactions
New essay about adding comments to the site, referencing Aaron Swartz's
advice and the tension between enjoying the quiet and wanting conversation.
Also disables the reactions widget — comments only.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:33:27 -04:00
kennethreitz 2f1059dd9a Widen giscus comment container to 80%
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:30:43 -04:00
kennethreitz b8109c06a9 Fix giscus dark mode to respect localStorage theme override
Reads the saved theme from localStorage instead of relying on
preferred_color_scheme, which only checks the OS setting.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:30:29 -04:00
kennethreitz 502172d3b8 Add giscus comments to posts
Uses GitHub Discussions (Announcements category) with pathname mapping,
lazy loading, and theme syncing with the site's dark/light mode toggle.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:25:33 -04:00
kennethreitz d44bdeb36c Add oEmbed proxy route to Responder engine (production server)
The Flask blueprints aren't used in production — engine.py with
Responder is what Fly actually runs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:01:18 -04:00
kennethreitz ee6424135f Move oEmbed proxy to main blueprint to avoid catch-all route conflict
The /<path:path> catch-all in content_bp was swallowing /api/oembed
even with the api blueprint registered first. An explicit route on
main_bp always wins over the catch-all.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 09:57:16 -04:00
kennethreitz d21a2f4e56 Fix API blueprint registration order so /api routes aren't caught by catch-all
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 09:50:38 -04:00
kennethreitz 3dbcb87cdf Add production environment to Fly deploy workflow
Links deploys to GitHub's Deployments tab with the site URL.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 09:44:13 -04:00
kennethreitz 0352d10279 Move oEmbed fetching to client-side for faster, more reliable page loads
Server no longer makes HTTP requests during markdown rendering. Bare URLs
render as placeholders with fallback links, and JS fetches oEmbed data
asynchronously via a new /api/oembed proxy endpoint.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 09:43:28 -04:00
kennethreitz 291f36feb0 Rewrite photography archive section to focus on what makes it great
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 16:00:10 -04:00
kennethreitz a9d5cad2f4 Replace static photo with oEmbed on photography page
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:40:32 -04:00
kennethreitz 8f4dd2e370 Move Recent Writing section above Now Playing on homepage
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:36:27 -04:00
kennethreitz 527e39b016 Add photos.kennethreitz.org oEmbed to building essay
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:35:11 -04:00
kennethreitz bd2e74e9d6 Refactor photography page with section headers and better flow
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:16:57 -04:00
kennethreitz b4a779482c Add intro text and section divider to photography page
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:05:31 -04:00
kennethreitz 9a8b867496 Replace oEmbed provider whitelist with auto-discovery
Instead of maintaining a hardcoded list of oEmbed providers and endpoints,
fetch the target page and look for <link rel="alternate" type="application/json+oembed">
discovery tags. Any site with proper discovery (photos.kennethreitz.org, WordPress, etc.)
now works automatically. Includes negative caching for non-oEmbed URLs.

Also adds oEmbed embed of photos.kennethreitz.org to the photography page.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:51:53 -04:00
kennethreitz 7db05deae7 Rewrite photography home essay with deeper philosophical voice
Rewrote with stronger opening, woven philosophical depth, expanded
architecture section (multi-tenant to single-tenant pivot, Alpine/JWT
to HTMX/sessions evolution), new "What the Mirror Shows" section on
the recursive loop, cross-links to related essays, and reduced em
dashes throughout.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:02:09 -04:00
kennethreitz 25ccc65cfa Add section on bolt, Alpine removal, and architecture evolution
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 13:48:14 -04:00
kennethreitz 99b70c3271 New essay: Building a Home for Twenty Thousand Photographs
Technical deep dive on photos.kennethreitz.org — pipeline, AI metadata,
geography, deduplication, and what happens when you make 20k photos searchable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 13:38:31 -04:00
kennethreitz d23cf7e22d Add photos.kennethreitz.org links to photography section and blog post
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 01:32:04 -04:00
kennethreitz 5a5cb21b49 Remove unused nginx.conf and start.sh
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 11:50:28 -04:00
kennethreitz 1376ce136a Remove photography static mount — conflicts with app routes for index pages
Keep /static served by Granian natively, photography goes through app.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 11:46:24 -04:00
kennethreitz 42b3c0e19c Drop nginx, use Granian native static file serving
Per gi0baro's benchmarks, nginx halves dynamic throughput (1120 vs 2300 req/s)
while only marginally improving static serving. Granian's --static-path-route
serves photography and static files directly with 7-day cache headers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 11:45:04 -04:00
kennethreitz 9dc56f83dc Add ayahuasca essay to essays index and spiritual practice theme
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 04:44:07 -04:00
kennethreitz 341e616297 Add essay: Why I Stopped Doing Ayahuasca and Started Paying Attention
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 04:35:37 -04:00
kennethreitz aa699211ee Fix nginx: only serve image files directly, pass directory requests to app
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:57:03 -04:00
kennethreitz 7bbd58e85a Add nginx in front of Granian for static file serving and request buffering
Nginx serves photography images and static assets directly from disk,
proxies everything else to Granian with response caching. Adds gzip
compression and request buffering.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:35:59 -04:00
kennethreitz 082a4cbfe5 Update essays index and theme pages with new photography and awareness essays
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:19:28 -04:00
kennethreitz c05e14ce71 Add essays: Sixty Thousand Images, Drop the Word (awareness vs consciousness)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:11:05 -04:00
kennethreitz c4101d5f78 Add essay: Sixty Thousand Images and Nowhere to Put Them
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 17:35:55 -04:00
kennethreitz 7949d3ca40 Move Now Playing above Now Reading on homepage
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 17:12:12 -04:00
kennethreitz 50a1cc7f9e Add album release update note to NumPy as Synth Engine essay
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 16:57:28 -04:00
kennethreitz 4cf044492f Use full iframe embed for Interpretations player in NumPy essay
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 16:53:51 -04:00
kennethreitz c5767b79c6 Add Interpretations embed to NumPy as Synth Engine essay
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 16:53:37 -04:00
kennethreitz 4a3fa287d8 Fix oEmbed URL matching regex to include interpretations.kennethreitz.org
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 16:35:37 -04:00
kennethreitz 3394a65266 Add Interpretations oEmbed provider and use bare URL in album essay
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 16:31:39 -04:00
kennethreitz 8a8f493606 Link to Interpretations album essay from NumPy as Synth Engine
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 16:24:49 -04:00
kennethreitz 20af67b286 Fix nicotine reference to vape, not cigarettes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 14:57:57 -04:00
kennethreitz ea16ae8677 Add Sarah's perspective on hospitalization reality to What Success Looks Like
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 14:56:15 -04:00
kennethreitz 51b5d61e02 Add Now Reading section to homepage featuring Sarah's poetry collection
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 14:48:59 -04:00
kennethreitz be1a9f9b7b Add What Success Looks Like to mental health, essays, and theme indexes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 12:21:57 -04:00
kennethreitz c6c1c2e35f Add essay: What Success Looks Like — mental health and breaking the winter cycle
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 11:15:31 -04:00
kennethreitz 84621df251 Add blurb under embedded player with links to Interpretations page
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:46:15 -04:00
kennethreitz 9766aa4524 Add Interpretations player to homepage above Recent Writing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:36:15 -04:00
kennethreitz 3411f382f2 Add embedded album player to Interpretations page
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:34:37 -04:00
kennethreitz de4f91fbc3 Fix year to 2026 on Interpretations page
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 17:32:00 -04:00