https://github.com/andyfrith/productizer-etsy-web
https://github.com/andyfrith/productizer-etsy-web
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/andyfrith/productizer-etsy-web
- Owner: andyfrith
- Created: 2026-05-18T18:25:29.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2026-05-20T19:56:35.000Z (about 2 months ago)
- Last Synced: 2026-05-20T20:38:07.833Z (about 2 months ago)
- Language: HTML
- Size: 317 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# productizer-etsy-web
Productizer is a product creation platform where a user creates digital and print on demand products for listings on the Etsy marketplace. Users create products for specific niches and micro-niches by selecting design concepts, variations and product types for specific niches and micro-niches.
## Image Generator Module
This tool will facilitate creating, managing and storing design concepts and variations of a concept. Additionally, the user will be able to create or reference product type variations, for instance, a certain type of coffee mug. With both the design concept and product type variation selected the user will then select a target-niche, provided the marketing niche tool and iterate on product design mocks generated by Google Nano Banana, Nano Banana Pro, etc. The end designs will then be managed and potentially used in actual product design listings for products sold on marketplaces; such as Etsy.
## Constitution
Project mission, tech stack, and phased roadmap live in **[specs/](specs/index.html)** (open `specs/index.html` in a browser). Initial phases focus on **design concept creation & management**; the niche research module comes later.
### Git workflow
- Integration branch: **`master`**
- Phase work: branch **`phase/{N}-{slug}`** (e.g. `phase/0-scaffold`) — one phase per branch
- Merge: **pull request only** — see [specs/git-workflow.html](specs/git-workflow.html)
**Stack (summary):** Next.js, Tailwind, shadcn/ui, TanStack Query, TanStack AI, Zod, React Hook Form, Drizzle + Postgres, Vitest, Playwright, Framer Motion — **Docker Compose** for local services, polished UX throughout.
## Local development
**Requirements:** Node 22, pnpm 9+, Docker Desktop (Postgres on port 5432).
```bash
cp .env.example .env.local
docker compose up -d
pnpm install
pnpm db:migrate
pnpm dev
```
Open [http://localhost:3000](http://localhost:3000) for the studio shell. **Concept gallery:** [http://localhost:3000/concepts](http://localhost:3000/concepts). DB health: [http://localhost:3000/api/health/db](http://localhost:3000/api/health/db).
REST API: `GET/POST /api/concepts`, `GET/PATCH/DELETE /api/concepts/:id` (DELETE archives).
**Asset upload (P2):** Add multiple reference images and choose a **preview** for the gallery. **Archive** hides images from Active (undo via toast); open **Archived** to permanently delete with confirmation. API: `GET /api/concepts/:id/references?archived=true|false`, `PUT …/preview`, `DELETE /api/assets/:id?conceptId=` (archive), `POST /api/assets/:id?conceptId=` (restore), `DELETE …&permanent=true` (archived only).
**Variation lineage (P3):** On concept detail, upload **variations** (art directions), optionally branch from preview or parent variation, and **approve** one winner at a time (approving another demotes the previous). API: `GET/POST /api/concepts/:id/variations`, `POST …/from-asset`, `PATCH …/:variationId`, `GET /api/variations/:id/file?variant=`.
**Database UI:** With Postgres running, `pnpm db:studio` opens Drizzle Kit Studio for inspecting and editing tables (e.g. `design_concepts`, `design_assets`, `concept_variations`).
### Scripts
| Script | Purpose |
|--------|---------|
| `pnpm dev` | Next.js dev server |
| `pnpm build` | Production build |
| `pnpm start` | Run production server |
| `pnpm lint` | ESLint |
| `pnpm test` | Vitest unit tests |
| `pnpm test:e2e` | Playwright (studio smoke, concept CRUD, asset upload, variation lineage) |
| `pnpm db:generate` | Generate Drizzle migrations |
| `pnpm db:migrate` | Apply migrations |
| `pnpm db:studio` | Drizzle Kit Studio (browse/edit DB at [https://local.drizzle.studio](https://local.drizzle.studio); requires Postgres + `.env.local`) |
### Validation (P3)
On branch `phase/3-variation-lineage`:
```bash
./scripts/validate-p3.sh
```
See [specs/20260520-phase3-variation-lineage/validation.html](specs/20260520-phase3-variation-lineage/validation.html).