kennethreitz
ceb61c15b0
Add /health endpoint for fast health checks, fix cold start timeout
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 16:02:20 -04:00
kennethreitz
816c7e111b
Add health check for blue-green deploys
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:53:11 -04:00
kennethreitz
11f1890fca
Image embed: camera and lens names link to gear pages
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:47:36 -04:00
kennethreitz
2de886dcf5
Image embed: clicking photo links to detail page
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:46:45 -04:00
kennethreitz
dadb581689
Remove footer link from image detail embed
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:45:34 -04:00
kennethreitz
b61acea86c
Enable blue-green deploys
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:45:09 -04:00
kennethreitz
1ae4dc5518
Image embed: just photo + EXIF line, no title/description
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:44:03 -04:00
kennethreitz
8a9abdc341
Embed: start with 12 images, load more for rest
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:42:30 -04:00
kennethreitz
e3f7562bbe
Allow embed page in iframes (remove X-Frame-Options)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:28:47 -04:00
kennethreitz
b4666fb8eb
Fix embed to use bolt API correctly (no page param, use limit)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:23:49 -04:00
kennethreitz
2dac355b39
Interactive iframe embed: year pills, load more, EXIF overlays
...
oEmbed now returns an iframe pointing to /embed/ — full JS interactivity
like SoundCloud. Year filtering, lazy loading, load more button.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:19:21 -04:00
kennethreitz
f0686ce799
Force center alignment on oEmbed footer link
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:17:26 -04:00
kennethreitz
cddb882fff
Fix oEmbed year pill fonts to sans-serif
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:15:36 -04:00
kennethreitz
763a85c6ce
Fix oEmbed overlay font to sans-serif
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:14:00 -04:00
kennethreitz
8c7d87b4c5
Add year pills to homepage oEmbed (link to site with year filter)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:13:12 -04:00
kennethreitz
66a7410dc0
Revert overlay links — plain text, no clickable camera names
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:10:37 -04:00
kennethreitz
1e6109a101
EXIF overlays on oEmbed grid items, camera links on site overlays
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:08:35 -04:00
kennethreitz
f9604266ac
Revert overlay to original (camera + focal + aperture)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:06:48 -04:00
kennethreitz
ba0ab1387f
oEmbed: 44 photos (divisible by 4)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:03:34 -04:00
kennethreitz
cb21b7cf3c
oEmbed: increase max-width to 800px for bigger thumbnails
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:03:17 -04:00
kennethreitz
e9acc1a642
Add lens + ISO to image overlay, fix oEmbed period
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:02:59 -04:00
kennethreitz
36b19c8a55
oEmbed: 4-column grid
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:01:58 -04:00
kennethreitz
58f12c8cfe
oEmbed: 3-column grid for larger photos
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 15:00:32 -04:00
kennethreitz
54deaa3edb
oEmbed: "See more at photos.kennethreitz.org"
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:59:50 -04:00
kennethreitz
082b94cb07
oEmbed: 5x9 grid (45 photos)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:59:33 -04:00
kennethreitz
0d710c6971
oEmbed: 4x4 grid (16 photos), grey link color
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:59:10 -04:00
kennethreitz
3f9abec0be
Limit oEmbed width to 500px, bottom link says photos.kennethreitz.org
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:56:38 -04:00
kennethreitz
f235ed723e
Add oEmbed for collections — grid of collection photos with title
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:48:42 -04:00
kennethreitz
2aae13f554
Add oEmbed endpoint for image and homepage embeds
...
- /oembed?url=... returns rich embed JSON
- Image URLs: photo + title + AI description + EXIF metadata
- Homepage URL: 4x3 grid of random photos with link
- Discovery links in <head> of image detail and homepage
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:47:30 -04:00
kennethreitz
0040c3a51c
Remove login, dashboard, manage, upload — pure public read-only site
...
All content management via CLI (import_folder, ai_describe, cleanup).
No auth, no upload UI, no manage UI. Just photos.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:45:07 -04:00
kennethreitz
b279f5f599
Use [[services]] with http_options for 50MB upload limit
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:38:32 -04:00
kennethreitz
590f55458a
Add http_options.max_request_body_size 50MB to fly.toml
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:34:39 -04:00
kennethreitz
3feaec5bdd
Increase Django upload limits to 50MB, AI describe in thread fallback
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 14:06:49 -04:00
kennethreitz
1914e89635
Remove Flickr import entirely, fix collection ownership
...
- Deleted import_flickr command, Flickr tasks, API endpoint, template, nav link
- Fixed all collections owned by testuser → kennethreitz
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 13:36:34 -04:00
kennethreitz
085420472c
Hide image overlay text on mobile, tighten nav link spacing
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 13:28:09 -04:00
kennethreitz
b99b1f42ac
Fix EXIF bar mobile layout: tighter gaps, smaller text on small screens
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 13:24:29 -04:00
kennethreitz
f1c26d4895
Add privacy rules: Jan 5 2019 photos set to private
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 09:23:03 -04:00
kennethreitz
1c3bdc748f
Suppress httpx request logs
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 09:11:50 -04:00
kennethreitz
5656678f54
Suppress urllib3 connection pool warnings, botocore debug noise
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 09:10:39 -04:00
kennethreitz
b6ccb72536
SEO: years in sitemap, AI titles as alt text on grid thumbnails
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:45:34 -04:00
kennethreitz
d80d994ebf
SEO: add meta keywords from tags + camera + lens on image pages
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:44:51 -04:00
kennethreitz
ba20997e1b
SEO: include camera name in image detail page title
...
e.g. "Golden Hour | Leica M Monochrom — Kenneth Reitz"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:44:32 -04:00
kennethreitz
a38306c663
Auto-skip only checks filenames, hash dedup stays in import loop
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:41:06 -04:00
kennethreitz
69cbb47a06
Fix auto-skip: normalize filenames (spaces/underscores), preload hashes
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:37:29 -04:00
kennethreitz
2e7a88f125
Smarter auto-skip: match by filename first, hash only for ambiguous files
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:29:00 -04:00
kennethreitz
9220e9d6f8
Dedupe transfers collections, tags, city, AI metadata before deleting
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:21:01 -04:00
kennethreitz
4ba8e0c753
Add structured stdout logging
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:14:54 -04:00
kennethreitz
1581a7eae6
Add Years browsing: /years/ list and /years/<year>/ detail with infinite scroll
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:06:52 -04:00
kennethreitz
77fb1d6434
Empty favicon/apple-touch-icon responses, clean European city names
...
Renamed: Gemeente Amsterdam → Amsterdam, Warszawa → Warsaw,
Dublin City → Dublin, etc. Merged 3 Istanbul suburbs into one.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:02:39 -04:00
kennethreitz
292f4a173c
Add interactive map to /cities/ page with all geotagged locations
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 07:54:22 -04:00