A community-curated database tracking appearances of IKEA plush toys in movies, TV, and beyond. Built with Astro, deployed to Cloudflare Workers.
Every sighting is a Markdown file under src/content/sightings/<plush-id>/, with screenshots in that folder's images/ subfolder. The schema in src/content.config.ts is the single source of truth for what's tracked — Astro validates every entry against it at build time, so a malformed entry fails the build rather than shipping broken.
As a PR: add a .md file under src/content/sightings/<plush-id>/ using the naming convention (movie-saw-2004.md, tv-show-name-s02e01.md, etc.). See CONTRIBUTING.md. Copy a template from djungelorm/example-movie-2026.md or example-tv-show-s01e01.md.
As a form: non-technical contributors use the sighting issue form. Maintainers convert accepted issues into entries.
Add an entry to the plushes array in src/plushes.ts, then add the new option to .github/ISSUE_TEMPLATE/sighting.yml.
npm install
npm run dev # http://localhost:4321
npm run build # outputs to dist/
npm run preview # serve the built site locally
npm run check # lint, typecheck, and validate content (run before opening a PR)See CONTRIBUTING.md for full contributor guidelines.
Pushes to main trigger .github/workflows/deploy.yml, which builds and runs wrangler deploy (static assets to your Workers & Pages project).
The Worker name in wrangler.jsonc must match your Cloudflare project (default: plushonscreen).
Before the first deploy:
- Create a project under Workers & Pages (or use an existing one) and set
nameinwrangler.jsoncto match. - Create an Account API token at Manage Account → Account API Tokens with:
- Account → Workers Scripts → Edit (deploy static assets)
- Scoped to your account
- Add repo secrets under Settings → Secrets and variables → Actions:
CLOUDFLARE_API_TOKEN— the token value from step 2CLOUDFLARE_ACCOUNT_ID— from the Cloudflare dashboard sidebar (Workers & Pages → Overview → right column)
Search the repo for YOUR_USERNAME and replace with your GitHub username (appears in the layout footer, about page, issue config, and example entry).
Fan project. Not affiliated with IKEA.