11 Commits

Author SHA1 Message Date
01489df25e chore: update frontend dependencies 2026-01-15 13:16:54 -06:00
e83133cfcc feat: add media upload pipeline with multipart support, blurhash generation, and R2 storage
- Add project_media table with image/video variants, ordering, and metadata
- Implement multipart upload handlers with 50MB limit
- Generate blurhash placeholders and resize images to thumb/medium/full variants
- Update ProjectCard to use media carousel instead of mock gradients
- Add MediaManager component for drag-drop upload and reordering
2026-01-14 22:34:15 -06:00
59b2f15df7 fix: use proper standard $pageview event for posthog, enable exception tracking 2026-01-14 19:13:25 -06:00
d360f2284e feat: add PostHog telemetry with type-safe event tracking
Track page views, project interactions, theme changes, external links, PGP actions, and errors. Console logging in dev when PostHog not configured. Requires PUBLIC_POSTHOG_KEY and PUBLIC_POSTHOG_HOST env vars.
2026-01-14 12:25:10 -06:00
462b510e14 feat: add icon picker for tags with Iconify integration
- Add icon field to tag creation/update API and handlers
- Install @iconify packages (json, types, utils) as production deps
- Build IconPicker component for tag admin UI
- Fix apiFetch lazy initialization for build-time safety
- Update Docker to install production dependencies for SSR runtime
2026-01-07 20:57:12 -06:00
4667799457 feat: add HTML minification for production builds 2026-01-06 13:26:39 -06:00
16bf2b76f3 feat: add admin panel with project and tag management
- Full CRUD interface for projects with GitHub integration and tagging
- Real-time event log with expandable metadata viewer
- Reusable component library (Badge, Button, Input, Modal, Table,
TagPicker)
- Server-side API client with Unix socket and HTTP support
- JWT-based authentication with Svelte 5 reactive stores
- Settings management for social links and site identity
- Remove /admin path from tarpit to allow legitimate access
2026-01-06 10:07:59 -06:00
96595b073d refactor: replace sveltekit-og with native Satori implementation
- Remove @ethercorps/sveltekit-og and bits-ui dependencies
- Implement direct Satori + Resvg rendering pipeline
- Add OgImage.svelte component for template generation
- Create /internal/ogp preview page for development
- Load fonts from node_modules via fs for production compatibility
- Add 2s startup delay before OG image regeneration
2026-01-05 15:15:08 -06:00
81d9541b44 feat: add health checks, OG image generation, and R2 integration
- Implement health check system with caching and singleflight pattern
- Add OG image generation via Satori with R2 storage backend
- Configure Railway deployment with health check endpoint
- Add connection pooling and Unix socket support for Bun SSR
- Block external access to internal routes (/internal/*)
2026-01-05 03:16:55 -06:00
d86027d27a feat: add Rust reverse proxy with JSON logging
- Axum-based API server with Unix socket and TCP support
- Custom tracing formatters for Railway-compatible JSON logs
- SvelteKit hooks and Vite plugin for unified logging
- Justfile updated for concurrent dev workflow with hl log viewer
2026-01-04 18:21:00 -06:00
07ea1c093e refactor: massively simplify to svelte with web/ directory, prepare for backend 2026-01-04 15:15:25 -06:00