# pozor Dark-only shame board with a static Astro front end and a tiny Elysia admin/API. ## Apps - `apps/site`: Astro public board. It reads published cards from the Elysia API. - `apps/api`: Elysia admin/API. It owns cards, uploads, and the `/admin` panel. ## Local Development ```bash bun install bun run dev ``` Open: - Site: `http://localhost:4321` - Admin: `http://localhost:3001/admin` - API docs: `http://localhost:3001/docs` - OpenAPI JSON: `http://localhost:3001/openapi.json` ## Environment The API stores cards and uploads in `apps/api/.data` locally. On Vercel, set `BLOB_READ_WRITE_TOKEN` to store cards and uploaded images in Vercel Blob. Set these values locally and on Vercel: ```bash ADMIN_PASSWORD= API_URL=http://localhost:3001 PUBLIC_API_URL=http://localhost:3001 PUBLIC_SITE_URL=http://localhost:4321 BLOB_READ_WRITE_TOKEN= ``` For deployment, point the Astro app at the deployed API origin by setting `API_URL` and `PUBLIC_API_URL` to that origin. ## Images Cards support two image sources: - `Image URL`: direct public image URL. - `Upload image`: stored locally in development or in Vercel Blob when `BLOB_READ_WRITE_TOKEN` is set. ## Build ```bash bun run build ``` The Astro app can be hosted on Vercel as a static/front-end project. The Elysia API can be hosted on Vercel as a separate backend project using the Bun runtime.