Made-to-measure designer-wear storefront. Browse a beautiful catalog, order over WhatsApp. No payment, no cart — the order completes as a pre-filled WhatsApp message.
Built with Next.js 15 (App Router), Tailwind v4, and Motion. Catalog is seeded from the live @mahika.creations Instagram.
pnpm install
pnpm dev # http://localhost:3000
pnpm build # production build- Catalog lives in
lib/products.ts— one typed array. Edit there to add/change products, prices, sizes, colours, occasions. - Product images are in
public/products/(the real Instagram photos). - Ordering builds a
wa.medeep link to the brand number — seelib/whatsapp.tsandcomponents/product/OrderPanel.tsx. The WhatsApp number and brand details are inlib/brand.ts.
- Set real prices. Every
priceinlib/products.tsis a PLACEHOLDER except the Modal Silk dress (₹2,460, the one real published price). Confirm each one. - Exact store address + map pin for the Visit page — search for
TODO(owner)inapp/visit/page.tsx. - A proper photo shoot eventually — the Instagram photos are great to launch with, but a craft/fabric shoot will lift it to the light-luxury bar.
- Domain:
mahikacreations.inis assumed in metadata; register and point it.
The storefront reads through lib/catalog.ts: if Sanity is configured it
serves from there, otherwise it falls back to lib/products.ts. So the site works today,
and connecting Sanity is a no-code switch — no page changes.
The admin lives in studio/ as a standalone Sanity Studio (deploys to its own
*.sanity.studio URL — friendlier for the team than an embedded route, and it avoids
version-locking the site to Sanity).
Connect it (one-time, ~10 min):
cd studio
npm install
npx sanity login # create / sign in to a free Sanity account
npx sanity init --reconfigure # creates the project, prints your PROJECT ID- Put the project id in the site env: copy
.env.local.exampleto.env.localand setNEXT_PUBLIC_SANITY_PROJECT_ID. - Seed the 20 products + images into Sanity (one time):
(Write token: sanity.io/manage → your project → API → Tokens → Editor.)
SANITY_PROJECT_ID=xxxx SANITY_WRITE_TOKEN=yyyy npx tsx scripts/seedSanity.ts
- Publish the admin so the team can use it from anywhere:
cd studio && npx sanity deploy # → https://mahika.sanity.studio
After that, editing a product in the Studio updates the live site within ~60s (ISR). The
product schema is in studio/schemaTypes/product.ts and
matches the fields in lib/products.ts one-to-one.
- Analytics, occasion landing copy, Instagram feed embed.
- Vercel deploy (push to GitHub, import, set the same env vars).
Push to GitHub, import into Vercel, deploy. Static catalog + image optimization run on the free tier. Running cost ≈ the domain only.