Proof of Concept Checklist
voidpet-spa/
├── src/
│ ├── lib/
│ │ ├── components/
│ │ │ ├── ui/
│ │ │ ├── filters/
│ │ │ └── voidpets/
│ │ ├── data/ # Helper modules to load static data
│ │ ├── stores/ # Svelte stores (filters, voidpet data cache)
│ │ └── utils/
│ │
│ ├── routes/ # SvelteKit routing (SPA-friendly)
│ │ ├── +layout.svelte
│ │ ├── +page.svelte
│ │ │
│ │ ├── api/voidpets/ # (Optional) dynamic endpoints using static data
│ │ │ ├── +server.ts # e.g., return list of voidpets
│ │ │ ├── [id]/+server.ts
│ │ │ └── filters/+server.ts
│ │ │
│ │ └── voidpet/
│ │ └── [id]/+page.svelte
│ │
│ └── app.css
│
├── static/ # Served as-is (no processing)
│ ├── data/ # Fully version-controlled backend data
│ │ ├── voidpets.json # Master dataset (all pets)
│ │ └── voidpets/ # Individual pet directories
│ │ ├── 00/
│ │ │ └── ...
│ │ ├── 01/
│ │ │ ├── meta.json
│ │ ├── 02/
│ │ │ ├── meta.json
│ │ │ └── ...
│ │ └── ...
│ │
│ └── assets/ # Global SVGs, logos, backgrounds
│
├── scripts/ # Generators, validators (optional)
│ ├── generate-voidpet-index.js
│ └── validate-data.js
│
├── .gitignore
├── package.json
├── svelte.config.js
└── README.md