Mazonkiki Dev Notes — Session Handoff
Last updated: July 1 2026 — FAQ rollout complete, schema strategy decided, SearchLift notes expanded
Active theme: June 2026 Update Simplified (ID: 184152949009)
Draft/backup theme: June 2026 Update (ID: 183910564113)
Store: mazonkiki.myshopify.com | mazonkiki.com
Stack: Shopify + ShopMCP. Don: Windows, PowerShell, D: drive, Vercel/GitHub deploys.
1. People
-
Don — technical co-founder, Functional Safety engineer, founder of SearchLift
-
Kiki — creative director, designer, model, award-winning hairstylist/photographer/musician/choreographer. kiki@mazonkiki.com
-
An Vu — graphic designer Ho Chi Minh City, designed lotus symbol
-
Antigravity — partner company on SearchLift
2. Section Registry (mk- prefix, Simplified theme)
- mk-wardrobe.liquid — hero + nav. Mobile video updated. OLD banner categories still present — NEEDS category-index conversion.
- mk-scarf-edit.liquid — hero + nav. Old categories hidden. Uses mk-category-index. Mobile video updated.
- mk-accents-edit.liquid — hero + nav. Uses mk-category-index. Mobile video updated. Trailing comma bug fixed.
- mk-leather.liquid — hero + intro. Uses mk-category-index. Mobile video WORKING.
- mk-home-edit.liquid — hero + sticky nav. Mobile video WORKING.
- mk-meet-kiki-page.liquid — 7-chapter page ~58KB. Mobile video WORKING. BTS carousel added. Mobile nav labels abbreviated.
- mk-category-index.liquid — REUSABLE. Heading dividers + product grid. Lotus mark picker + size slider.
- mk-faq.liquid — REUSABLE. Master toggle collapses all. FAQPage JSON-LD always in source. Two fields: answer (visible) + schema_answer (machine-readable).
- mk-new-arrivals-carousel.liquid — Homepage carousel. Auto-hides if new-arrivals collection empty.
- mk-art-carousel.liquid — Wearable Art carousel. CTA = outline button.
- mk-category-banners.liquid | mk-triple-banner.liquid | mk-meet-kiki.liquid | mk-provenance.liquid | mk-gallery.liquid
3. Established Patterns
Mobile Video Swap (PROVEN)
Single video element. NO source tag. NO dual-video CSS. Inline script after video tag.
JS: isMobileUA = /Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent) || innerWidth <= 900 → v.src = chosen; v.play()
Hero Video CSS (PROVEN — do not revert)
position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
NOT min-width/min-height + transform — causes 2x scaling on mobile.
Mobile Hero Height
@media(max-width:900px){ height:80vh; max-height:80dvh; }
CSS Variables
--mk-dark:#4a2318 | --mk-sand:#b09880 | --mk-border:#6b3a28 | --mk-warm:#f5f0eb | --mk-light:#faf7f4
ShopMCP Rules
- Always shopify_get_asset before patching
- Trailing commas in schema JSON silently break sections
- Theme editor overwrites JSON — use Override and Save, never Restore
- Page JSON: section must exist in both sections object AND order array simultaneously
- Dev notes page ID: 156218884369 — Claude updates automatically after significant changes
4. Collection Handles
Scarves: silk-scarves | wearable-art-scarves | cashmere-scarves | embroidered-scarves
Accents: jewellery | belts | hair-accessories | bags
Leather: leather-bags | leather-belts | leather-cutlery-holders
Home: table-dining | window-living | sleepwear-bath | objects-decor
Other: new-arrivals
Cross-listed: leather-bags+bags | leather-belts+belts | leather-cutlery-holders+table-dining
5. CDN Video Hashes
Base: https://cdn.shopify.com/videos/c/o/v/[hash].mp4
- Provenance Making: 0c773855c4034485a477390ab748b615
- Provenance Packaging: f998b5ceb6664308b0fab05cef463ded
- Provenance Coming Soon: 6bc6bcd7e5c844f2aca29181736b8f1c
- Scarf desktop: 0a68d980d1794274a6b3f8e05fa468ad
- Scarf mobile: 22e53ccd037f413ca2e434ab0cfe5dce
- Accents desktop: 5961e244ee244e7b92fd259746ed6257
- Accents mobile: 40b9bab926e94dfea07f0df4314f9afe
- Home Edit desktop: aaac940973df43fcb4b6791ec617f0bf
- Home Edit mobile: 5e2797137abf425ab29a8066bde100e0
- Leather desktop: 8802cdce2e4540eeaff14d453e6514d9
- Leather mobile: d33da76fc7084fb080e58bef3da2ed1c
- Meet Kiki desktop: 48fcfb30f3494606812b396928fce10c
- Meet Kiki mobile: 2a2dbf231c52416aafe63904a607daaa
- Wardrobe desktop: b245dfc6b2714280933d98892a666cda
6. Page Templates & FAQ Status
- templates/index.json — Homepage. FAQ: 6 questions
- templates/page.meet-kiki.json — 7 chapters + BTS carousel. FAQ: 4 questions
- templates/page.scarf-edit.json — FAQ: 8 questions
- templates/page.accents-edit.json — FAQ: 4 questions. Collection handles fixed.
- templates/page.leather-edit.json — FAQ: 5 questions
- templates/page.home-edit.json — FAQ: 4 questions. Collection handles restored.
- templates/page.wardrobe.json — FAQ: 5 questions. Still needs category-index conversion.
7. Product Template Architecture (templates/product.json)
Products use tabbed_content section with 4 tabs:
-
DETAILS — product.metafields.custom["tab-details"] via metafield_tag. Server-side rendered — crawlable.
-
PACKAGE — hardcoded generic text + video. Needs brand voice rewrite.
-
SHIPPING — says "shipped from Istanbul warehouse" — INCORRECT. Needs Canadian fulfilment rewrite.
-
RETURNS — needs accuracy review.
Vendor field: Repurposed for product editorial names (e.g. "SAHARA WEAVE"). Causes brand attribution issues in Google and schema. Fix post-baseline: hardcode "Mazonkiki" in Product schema.
ShopMCP shopify_get_product does NOT return metafields.
Sahara Weave (ID: 9685664792849) — tab-details metafield appears incomplete.
8. Navigation
Menu ID: 294353142033 (JUL 2025 MENU)
Top level: Shop (Wardrobe, Scarf Edit, Accents Edit, Leather Edit, Home Edit, New Arrivals) | Journal | Meet Kiki
Blog: /blogs/mazonkiki-blogs
9. Meet Kiki Chapters
- The Vision (kw-vision)
- The Symbol (kw-symbol) — amber #c7a26d, lotus mark, An Vu credit
- The Creative Life (kw-creative)
- The Craft (kw-craft) — ABBA 2013, NAHA 2014. Image: NAHA-Flower-Queen-MUA-2-1.jpg
- The Making (kw-making) — 6 location paired grid
- Wearable Art (kw-art)
- Her Words (kw-words)
BTS carousel: 12 slots (bts_image_1–12). Between Her Words and CTA.
10. Brand Sourcing
- Silk scarves — Bursa, Turkey
- Clothing — Ankara, Turkey + Ho Chi Minh City, Vietnam
- Leather — Hoi An, Vietnam
- Silk printing / embroidered — Zhejiang, China
- Jewellery — Istanbul studios
- Cotton/linen — India
11. GEO/SEO Schema Strategy
DECISION: Hold ALL schema additions until after SearchLift baseline.
Post-baseline additions (priority order):
- Organization schema — theme.liquid JSON-LD
- Person schema for Kiki — awards, credentials, role
- Product schema — hardcode brand "Mazonkiki", fix InStock bug, add rich natural language fields
- BreadcrumbList on category pages
- Alt text audit and rewrite
- Meta descriptions — all pages
- Internal linking
- Blog content cadence — 2+ posts/month
- Page titles — keyword-rich rewrites
- Collection page descriptions
- Core Web Vitals — video/image compression
- 404 audit
- Google Business Profile — Calgary
- Social profile consistency
Claude to flag Organization + Person schema immediately after SearchLift baseline documented.
12. Pre-Launch Content Sweep
- SHIPPING TAB — says Istanbul. INCORRECT. Needs Canadian fulfilment rewrite.
- PACKAGE TAB — generic filler. Needs brand voice rewrite.
- RETURNS TAB — needs accuracy review.
- Vendor/brand schema conflict — fix post-baseline.
- Homepage meta description — old version still cached by Google.
- Blog author names — "Olga Beletskaia". Dropdown not working.
- Alt text — auto-generated across most product images.
- Sahara Weave — tab-details metafield incomplete.
- Pinterest — old SPRING30 discount codes, urgency language.
- robots.txt / sitemap.xml — verify clean.
13. Outstanding Build Items
- [ ] Wardrobe — convert to category-index (priority)
- [ ] Wardrobe mobile video — upload and configure
- [ ] BTS carousel — populate with images
- [ ] OG social image — 1200x628px editorial Kiki photo
- [ ] Structured data InStock bug — fix AFTER baseline
- [ ] New Arrivals collection — populate products
- [ ] Colour review before relaunch
- [ ] Avada popup teal — deferred
- [ ] Embroidered scarves — Canadian Textile Labelling Act bilingual labels
- [ ] Wearable Art POD — Scarves on Demand, Red Reverie ready
- [ ] Kiki portraits — 1600x2000px 4:5 JPG under 500KB
- [ ] Symbol chapter animated video — 9:16 MP4 under 10MB
- [ ] Dev notes page — set to unpublished in Shopify admin
- [ ] ALL schema additions — held until after baseline
14. SearchLift Baseline Plan
DO NOT optimise anything before baseline is captured.
- Run SearchLift audit first
- Google Search Console snapshot
- PageSpeed / Core Web Vitals snapshot
- Date-stamped screenshots
- Define target keyword list (5-10 keywords)
- Implement findings in controlled sequence post-baseline
- Progressive Google snapshots every few weeks
- Key metric: time-to-ranking-movement
- Mazonkiki = reference case study for SearchLift marketing
15. SearchLift Product & Architecture Notes
Current API Access via ShopMCP
- shopify_get_product — standard fields only. NO metafields.
- shopify_update_product — standard fields only. Cannot write metafields.
- shopify_get_asset / shopify_patch_asset — full theme file read/write. Works well.
- shopify_get_page / shopify_update_page — full page read/write. Works well.
Admin Assistant API Access (mazonkiki-adminstrator.vercel.app)
The Admin Assistant has SHOPIFY_TOKEN in Vercel env vars and can make direct Shopify GraphQL/REST API calls via api/shopify.js. This gives access to:
- Full metafield read/write across all namespaces (custom.*, google.*, shopify.* agentic fields)
- GraphQL Admin API — all product, collection, page, theme data
- Bulk operations via GraphQL bulkOperation
Current limitation: Claude cannot access the Admin Assistant directly from this conversation. It is a separate web application — Claude cannot authenticate through it or route API calls via it. Claude can only interact with Shopify through ShopMCP in this conversation context.
⭐ SearchLift Architecture Vision — Admin Assistant as MCP Server
Key insight: The Admin Assistant is the prototype for SearchLift's agent architecture. The natural evolution is:
- Admin Assistant API endpoints exposed as an MCP server
- Claude connects to it in conversation — gaining full GraphQL metafield access, audit capabilities, bulk fix operations
- For SearchLift merchants: same pattern — merchant connects store, SearchLift MCP server exposes audit+fix capabilities, Claude operates through it
- This is the correct long-term architecture: SearchLift as an MCP server that Claude (or any AI agent) can drive
Also watch: Shopify's official MCP server (in development). When available, connecting it directly would give GraphQL access without Admin Assistant as intermediary. Monitor for release.
Metafield Access — Parked for Phase 2
Add GraphQL metafield endpoints to Admin Assistant api/shopify.js:
- Read all metafields per product (custom.*, google.*, shopify.*)
- Write metafield values by namespace/key
- Bulk metafield audit across entire catalog
- AI-generated metafield values → merchant approval → bulk write
GraphQL query pattern:
{ products(first:50) { edges { node { id title metafields(first:20) { edges { node { namespace key value type } } } } } } }
Interim bulk approach: CSV export → edit metafield columns → CSV import via Shopify admin.
⭐ MAJOR FEATURE HYPOTHESIS — Rich Schema Replaces Agentic Fields
Hypothesis: Well-implemented JSON-LD schema can fully replace Shopify's proprietary agentic fields for GEO/AI commerce discovery, making platform-specific agentic field population unnecessary.
Schema fields that cover agentic field use cases:
- Natural language AI-readable descriptions — description, disambiguatingDescription
- Occasion/use case — additionalProperty with PropertyValue
- Comparison context — isSimilarTo, isRelatedTo
- Audience — PeopleAudience with lifestyle descriptors
- Brand voice — Organization schema description
- Material, origin, pattern — dedicated schema fields
If validated, SearchLift becomes:
- Fully platform-agnostic — same approach on Shopify, WooCommerce, Magento, custom stores
- No dependency on proprietary Shopify field namespaces
- Open standard — future-proof as AI crawlers evolve
- Marketable as "AI-optimised schema" — stronger positioning than "agentic field population"
⚠️ NEEDS VALIDATION:
- Do AI shopping assistants weight schema description/additionalProperty equally to agentic fields?
- Does Shopify Sidekick read agentic fields in ways that bypass standard schema?
- Any GEO signal in agentic fields genuinely unreplicable in schema?
- Test: populate identical content in schema vs agentic fields on subset of Mazonkiki products — measure AI citation rates for each group
Validation plan: Mazonkiki as test bed post-baseline. Document findings for SearchLift case study and product roadmap.
Existing SearchLift Architecture
- Phase 2 rollback: time-based first, per-change for products/metafields at launch
- Supabase: full snapshots + data moat (platform, category, country, store size, scores, timestamps, conversion outcome)
- Differentiator: rendered schema vs actual inventory cross-reference
- Pinterest: built, needs quality gates + merchant approval
- Agency white-label = 5-10x LTV | Competitors: Mantasaur, AEO Engine
- Admin Assistant: mazonkiki-adminstrator.vercel.app | GitHub: donaldfoster-ops/mazonkiki-admin
- Stack: HTML/CSS/JS + serverless api/claude.js and api/shopify.js. Env: SHOPIFY_TOKEN, ANTHROPIC_KEY, STORE_URL in Vercel.
- Shopify Partner app set up (legacy custom app deprecated Jan 2026)
- Pricing: ~$49/$99/$199/month; $79 early-access discussed
16. Ideas Parking Lot
- Symbol chapter animated video replacement
- Wardrobe category-index conversion
- Blog topic plan — 12 posts: silk scarf styling, slow fashion, artisans, Hoi An leather, Kiki creative process, wearable art
- Google Business Profile — Calgary location
- SearchLift + ShopMCP workflow: run report → Claude reads schema → targeted fixes → before/after → push live
- SearchLift autofix: audit → AI-generated metafield values → merchant approval → bulk GraphQL write
- SearchLift as MCP server — expose audit+fix capabilities for Claude to drive directly
- Monitor Shopify official MCP server release — potential direct GraphQL access without Admin Assistant intermediary
- Schema-as-agentic hypothesis — VALIDATE using Mazonkiki as test bed post-baseline
Unpublished — not visible to crawlers. Read: shopify_get_page page_id 156218884369. Update: shopify_update_page. Claude updates automatically after significant changes.