kennethreitz
efced60c35
Serve raw files (images, etc.) from data directory in catch-all
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 14:20:35 -04:00
kennethreitz
dd751105ec
Fix data file serving for nested paths (images in galleries)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 14:18:58 -04:00
kennethreitz
c0501c6e3c
Add essay: This Site Now Runs on Responder
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 14:17:39 -04:00
kennethreitz
029083d526
Fix static file serving — add explicit route before catch-all
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 14:10:35 -04:00
kennethreitz
5cd48abb90
Port site to Responder ( #8 )
...
* Initial Responder port — core content serving working
Homepage, markdown pages, directory listings, image galleries
all rendering. Flask template compatibility via RequestWrapper
and FakeConfig shims.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
* Complete Responder port — all routes working
Ported all routes from Flask blueprints: archive, search, OG images,
RSS, sitemap, robots.txt, API endpoints, directory browser.
All 25+ routes returning 200.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
* Update Dockerfile for Responder, warm caches on import
CMD now runs engine_responder:api via uvicorn.
Cache warming happens on module import for production.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
* Rename engine_responder.py to engine.py
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
* Update colophon for Responder
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
* Fix essay pages, OG images, and PDF export
- Fix find_related_posts and find_adjacent_posts call signatures
- Fix OG image route to use path:path for nested paths
- Add PDF export route with WeasyPrint
- All test plan items passing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 14:03:05 -04:00
kennethreitz
ddd1dd7334
Rewrite music section — OP-XY, cohesive album pages, gear history
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 05:07:46 -04:00
kennethreitz
1268e854d1
Add (see archive) link to Recent Writing header
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 05:04:40 -04:00
kennethreitz
443725e60b
Revert to hardcoded Recent Writing — curation beats automation
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 05:04:24 -04:00
kennethreitz
ea18d2a05f
Make Recent Writing on homepage dynamic from blog cache
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 05:03:23 -04:00
kennethreitz
c55a773d54
Reorder opening — thesis first, personal context after
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:57:46 -04:00
kennethreitz
c7c8bf8d81
Remove hr after opening
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:56:33 -04:00
kennethreitz
89320d15cc
Add hr after opening acknowledgment
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:55:34 -04:00
kennethreitz
71641774d3
Restore Zen of Python and design philosophy to software index
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:54:27 -04:00
kennethreitz
75d39f4ced
Rewrite software index — categorized, cleaner, includes kjvstudy
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:53:39 -04:00
kennethreitz
2f0faacd61
Separate closing line on Pipenv page
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:52:46 -04:00
kennethreitz
c3f2180b15
Mention uv as Pipenv's spiritual successor
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:51:50 -04:00
kennethreitz
6e2f5e03ff
Tweak opening line
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:50:33 -04:00
kennethreitz
7c9e28b915
Shift maintainer essay from memoir to universal essay
...
Reduce first-person from 51 to 38 references. Move personal
details into sidenotes. Open with acknowledgment of mistakes.
The essay is about maintainers, not about Kenneth.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:49:49 -04:00
kennethreitz
88fc5e0b8c
Remove AI writing tells from maintainer essay
...
Cut throat-clearing ("I want to be direct"), over-explaining
("the structural reality is that"), redundant restatements,
and the "here's where the metaphor gets useful" announcements.
Tighter, less performative.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:46:57 -04:00
kennethreitz
84a82ec4c1
Add ESL contributor perspective to maintainer essay
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:45:10 -04:00
kennethreitz
b1aa45ebc6
Format CONTRIBUTING.md as inline code
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:44:26 -04:00
kennethreitz
33c982d505
Add supply chain security angle to maintainer essay
...
Burned-out maintainers are vulnerable maintainers, and vulnerable
maintainers with keys to critical infrastructure are attack vectors.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:43:22 -04:00
kennethreitz
5af97fe212
Acknowledge Certifi has new maintainers now
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:42:22 -04:00
kennethreitz
45ac66b704
Fix Certifi download claim — don't fabricate specific numbers
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:41:44 -04:00
kennethreitz
8273cc97bc
Add 4 more sidenotes and link httpbin.org in maintainer essay
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:40:14 -04:00
kennethreitz
6df755f960
Tighten maintainer essay: cut redundancy, add sidenotes, keep code blocks
...
Removed verbose sections, merged closing, added 4 sidenotes
for depth. Kept code blocks but trimmed FirstContribution.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:39:08 -04:00
kennethreitz
d15032a227
Add multi-project burnout compounding to maintainer essay
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:34:18 -04:00
kennethreitz
a6fda8e3ea
Fix facts: BDFL not primary maintainer, 30M/day not tens of millions/month
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:29:42 -04:00
kennethreitz
52d23b0bdf
Acknowledge co-maintainers in maintainer essay
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:29:05 -04:00
kennethreitz
d3cbadd4c5
Fix bullet point spacing in code block
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:28:23 -04:00
kennethreitz
8edb72e134
Remove indent from bullet points in code block
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:27:21 -04:00
kennethreitz
eae45d72b3
Format API/maintainer design parallels as bullet points
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:27:03 -04:00
kennethreitz
8459271d45
Add $ prefix to all uv pip install commands in software pages
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:26:07 -04:00
kennethreitz
0616f277a8
Italic docstrings (not grayed), link Be Cordial essay
...
Docstrings now italic but full color — they read as prose, not marginalia.
Comments stay gray italic.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:25:39 -04:00
kennethreitz
5a26d30406
Rewrite all software pages with code examples and personal context
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:24:50 -04:00
kennethreitz
a489af795a
Bold variable assignment targets in code blocks
...
Literary code: bold for nouns, italic for marginalia.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:20:30 -04:00
kennethreitz
b22aabe2c3
Fix // in URLs triggering comment highlighting
...
Only match // comments at line start, not inside URLs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:19:06 -04:00
kennethreitz
1f4a131a61
Remove highlight.js, keep minimal comment-only highlighting
...
The literary aesthetic of comment-only highlighting is intentional.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:18:20 -04:00
kennethreitz
d325d34c90
Fix syntax highlighting dark mode, use uv pip install
...
Sync highlight.js theme with dark mode toggle via MutationObserver.
Use github-dark-dimmed for dark mode. Override backgrounds to
match site theme.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:17:33 -04:00
kennethreitz
a808da2699
Add syntax highlighting with highlight.js, fix great books text
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:15:51 -04:00
kennethreitz
1ab743c006
Rewrite great books page with personal context for each entry
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:14:16 -04:00
kennethreitz
154c3279c7
Polish homepage closing section, fix timeline date order
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:13:22 -04:00
kennethreitz
9218731311
Rewrite Requests page with code examples and full story
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:12:41 -04:00
kennethreitz
d4f52013fc
Rewrite homepage — new content with visual polish restored
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:10:33 -04:00
kennethreitz
e6b8e2456d
Add essay: The Maintainer Is the Interface
...
With real examples, burnout erosion, the famous 'No' response,
and lessons learned section.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 04:09:26 -04:00
kennethreitz
96957dac22
Add The Interface Is the Subconscious to theme indexes
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 14:55:34 -04:00
kennethreitz
336495f851
Add essay: The Interface Is the Subconscious
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 14:52:10 -04:00
kennethreitz
9f539e3f24
Rewrite all theme indexes — concise, verified links, 2026 essays added
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 14:40:08 -04:00
kennethreitz
d76be1d993
Re-enable Depot builder in Fly deploy workflow
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 14:23:14 -04:00
kennethreitz
506933211b
Fix themes nav link to /themes
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 14:18:02 -04:00