12 Commits

Author SHA1 Message Date
5e0029c98b feat: add multi-encoding compression with lazy caching and pre-compressed assets
- Build-time: pre-compress static assets (.gz, .br, .zst) via compress-assets.ts
- Runtime: serve pre-compressed embedded assets with Accept-Encoding negotiation
- ISR cache: lazy per-encoding compression (compress on first request, cache result)
- tower-http: enable runtime compression for API/SSR responses (respects Content-Encoding)
2026-01-15 15:50:55 -06:00
6d42e528b7 feat: serve SvelteKit env.js for dynamic environment variables 2026-01-14 18:29:35 -06:00
019cbe76f8 add tag colors to seed data and reverse tag order in project cards
- Add color parameter to seed tags (Rust red, Python blue, etc.)
- Reverse tag display order in ProjectCard (flex-row-reverse)
- Enable release binary stripping in Cargo.toml
- Increase Railway health check timeout to 120s
- Remove backup favicon/icon files
2026-01-13 21:07:51 -06:00
aa56d31067 feat: add comprehensive CLI with API client, session management, and data seeding
- Binary renamed from 'api' to 'xevion' with full CLI command structure
- Authentication: login/logout with session persistence to .xevion-session
- API commands: projects, tags, settings CRUD operations with JSON/table output
- Serve command: run production server with configurable listen addresses
- Seed command: moved from bin/ to CLI subcommand for database initialization
- HTTP client abstraction supporting both TCP and Unix socket connections
2026-01-13 19:55:45 -06:00
ec6bb4ebfb refactor: replace shell entrypoint with TypeScript, add DB retry logic
- Migrate Docker entrypoint from inline shell script to TypeScript for better maintainability
- Add exponential backoff DB connection retry (prod only, dev fails fast)
- Increase healthcheck start-period to account for DB warmup
2026-01-13 15:08:38 -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
8dcb42184a fix: use Vite-imported fonts for OG image generation instead of node_modules fs reads
Fixes OG image generation in production Docker deployments
by using SvelteKit's read() with Vite-imported font URLs instead of
runtime fs reads
from node_modules. Also copies client assets to Docker image for
availability.
2026-01-06 13:29:33 -06:00
b4c708335b feat: add PostgreSQL database integration for projects
- Add SQLx with Postgres support and migration system
- Create projects table with status enum and auto-updated timestamps
- Implement database queries and API response conversion layer
- Add Justfile commands for database management and seeding
- Integrate health checks for both Bun and database connectivity
2026-01-06 02:07:42 -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
9de3c84f00 feat: add Docker containerization with multi-stage build
Includes .dockerignore, Dockerfile with cargo-chef caching, and Justfile commands for building/running containerized app. Updates console-logger to support both JSON and pretty-printed logs based on LOG_JSON env var.
2026-01-04 20:23:11 -06:00
07ea1c093e refactor: massively simplify to svelte with web/ directory, prepare for backend 2026-01-04 15:15:25 -06:00
af81d8e048 refactor: large refactor around monorepo
Just a commit point while I'm testing stuff. Already decided at this
point to simplify and revert away from PayloadCMS.
2026-01-04 13:18:34 -06:00