15 Commits

Author SHA1 Message Date
kennethreitz 9bb24db03f Upgrade responder to 3.6.2 (rate limiter memory leak fix, XSS fix)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 09:39:39 -04:00
kennethreitz f4730575d5 Use responder 3.6.1 built-in GZip instead of manual middleware
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 17:56:44 -04:00
kennethreitz 3de8f9b558 Switch from uvicorn to Granian — Rust-based ASGI server
2.7-6.2x faster across all routes. Essays 7,928 req/s (was 2,747),
Archive 8,449 req/s (was 1,354). Everything sub-1.3ms.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 03:44:54 -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 768af380ac Add gunicorn with gevent worker support
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 15:32:00 -05:00
kennethreitz f50dad4574 Switch to uvicorn, fix breadcrumbs for all content pages
- Replace gunicorn/gevent with uvicorn for ASGI support
- Add asgiref to wrap Flask WSGI app for uvicorn compatibility
- Enable auto-reload in docker-compose for development
- Add current_path to all content render_template calls
- Simplify breadcrumb template to exclude current page
- Only show breadcrumbs for nested paths (> 1 segment)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 16:58:17 -05:00
kennethreitz 6aef3808c1 Update site to Python 3.14
Update Dockerfile base image, pyproject.toml requirements, and .python-version to use Python 3.14. This includes updating the uv.lock file with the new Python version constraint.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 10:57:21 -04:00
kennethreitz 71d4db055e Add PDF generation support and improve documentation
- Add WeasyPrint dependencies to Dockerfile for server-side PDF generation
- Update README with Quick Start guide for Docker and local development
- Add PDF template for article rendering
- Add error template for better error handling
- Reorganize photography into top-12 subdirectory
- Update pyproject.toml with PDF generation dependencies
- Enhance content.py with PDF rendering capabilities
- Improve directory template with gallery features

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 15:17:43 -04:00
kennethreitz e05a1b8a37 Add theme calculation and dropdown for articles; enhance archive navigation 2025-09-29 15:04:25 -04:00
kennethreitz be7434ad14 revised lockfile 2025-09-26 13:16:08 -04:00
kennethreitz 99b6715e37 test 2025-09-14 12:59:11 -04:00
kennethreitz 6f67808233 Refactor code structure for improved readability and maintainability 2025-09-01 12:51:00 -04:00
kennethreitz 3c884770ed test 2025-08-24 15:25:22 -04:00
kennethreitz a706563036 Refactor code structure for improved readability and maintainability 2025-05-23 10:01:30 -04:00
kennethreitz e92f072db6 improvements 2025-03-26 15:11:28 -04:00