KUBI Algeria maker platform for 3D printers, materials, FabLab discovery, memberships, and fabrication services.
# KUBI — Algeria FabLab Network & 3D Printing Marketplace
KUBI opens with FabLab discovery, then moves through 3D-printer shopping, workshop memberships, printing materials and accessories, case studies, and practical FAQs. Dedicated store and service routes keep both maker journeys complete.
## Run locally
Requires Node.js 22.13 or newer.
```bash
npm install
npm run dev
```
Use `npm run build`, `npm run lint`, and `npm test` for production validation.
## Content and component structure
- `lib/data.ts` contains the editable demo catalog: store products, categories, bundles, shop FAQs, FabLabs, machines, services, partners, plans, reviews, case studies, and team members.
- `components/storefront.tsx` contains product cards, catalog filtering, product purchase controls, cart state, bundles, and the non-payment purchase-enquiry flow. The remaining `components/` contain shared navigation, directory cards, the FabLab finder, contact flow, and Kubi guide components.
- `app/` contains the responsive page routes, route metadata, schema placeholders, sitemap, robots policy, thank-you page, and error states.
- `public/kubi-logo.svg` is the supplied official KUBI vector mark used in the header, mobile navigation, footer, favicon metadata, and organization schema. `public/og-balanced.png` is the shared commerce-and-services social artwork.
All current products, stock labels, prices, listings, reviews, relationships, and case studies are clearly marked as demo content. The cart is browser-local and prepares an enquiry only: it does not reserve inventory or take payment. Search indexing stays disabled until verified live data is connected. Shop and product routes inherit the same verification switch. Set `NEXT_PUBLIC_KUBI_LIVE_DATA=true` only after the full catalog and directory have been verified. `NEXT_PUBLIC_SITE_URL` can be set to force a canonical production origin; otherwise the incoming host is used.
## Future integrations
The mock-data layer is intentionally iso …