Skip to content

positioning + dual-link + Vercel: one URL in, two links out; Pimcore center#30

Merged
ninan-versioning merged 1 commit into
mainfrom
jared/drop-shopify-wording-url-intake
Jul 25, 2026
Merged

positioning + dual-link + Vercel: one URL in, two links out; Pimcore center#30
ninan-versioning merged 1 commit into
mainfrom
jared/drop-shopify-wording-url-intake

Conversation

@ninan-versioning

@ninan-versioning ninan-versioning commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Four moves, one branch

1. Drop Shopify from the positioning wording

Shoploop is positioned as full-funnel positionless AI marketing for tabletop products — full stop. No "on Shopify" tail. connectors/shopify/ code untouched; Shopify is now one of many optional secondary connects.

2. The only intake is an existing web page link

No catalog upload, no OAuth wizard, no CSV, no SKU form. Paste a URL → parser emits product_twin.usda + brand_rules.json + variant sets. Everything downstream triggers off that twin. Anchored to the NVIDIA OpenUSD product-configurator reference architecture.

3. One URL in, two links out

Same intake fans out into two products that share the same Pimcore-managed twin:

  • 🎯 Operator linkshoploop.studio/op/{slug} — Grip-clone Studio for operators, artists, marketers.
  • 🛍️ Configurator linkshoploop.studio/{slug} — premium 3D PDP replacement for shoppers. Reference behavior: Gatorade's Adobe Firefly customizable squeeze bottles.

Pimcore (PXM) sits in the middle. Both links read/write the same product record. The Operator link needs the Configurator link to close its funnel — that's why they ship in one repo.

4. Cloud rule (locked)

Frontends → Vercel (sole frontend deployment partner). Everything else — GPUs, Omniverse streaming, Kit containers, Pimcore, Postgres, agents, Postiz workers, Nango — → AWS. Never Vercel for GPU. Never AWS for frontends.

Files changed

Positioning surfaces

  • README.md — full rewrite around dual offering + Pimcore + Vercel/AWS split.
  • POSITIONING.md — new Intake — one URL, nothing else section; positionless-full-funnel now starts at "customer pastes one URL".
  • agent.md — locked Intake rule; decision gate rule 6 rejects non-URL intake; Houston → Seattle.
  • soul.md — checkout platform-neutral; URL is the anchor.
  • AGENTS.md — URL paste on shoploop.studio replaces Shopify App Store as primary distribution; architecture loop leads with Existing Web Page URL.
  • LOOP_SPEC.md — Loop 1 rewritten as URL Intake (Page → Twin) with full 9-primitive spec; connector ingest demoted to Loop 1b; Loop 6 rewritten as Web Page Update (PR-first); scheduling re-gated on URL paste, not connector enrollment.
  • design.md — description + hero one-liner drop "on Shopify".

Vercel wiring (fixes broken deploys)

  • vercel.json (new, root) — pnpm --filter shoploop-studio-site build + ignoreCommand skipping deploys for docs/, connectors/, infra/, skills/, non-frontend *.md changes.
  • apps/shoploop-studio-site/vercel.json (new) — per-app config for Root Directory setup.
  • apps/shoploop-studio-site/next.config.mjs — dropped output: 'export' (dynamic /{slug} and /op/{slug} routes need SSR/ISR); added remotePatterns for arbitrary product URLs; transpilePackages for shared workspace packages.
  • Deleted apps/shoploop-studio-site/package-lock.json (npm lockfile conflicting with root pnpm workspace).
  • .npmrc (new) — pinning pnpm behavior.
  • .vercelignore (new) — excludes infra/, docs/, connectors/, skills/.
  • docs/vercel.md (new) — runbook: env vars, common failures, subdomain map, first-time setup.

Architecture assets

  • docs/images/nvidia-kit-app-template-streaming.jpeg — NVIDIA reference (our target).
  • docs/images/grip-openusd-digital-twin-factory.jpeg — grip.tools implementation on Azure (the target).

Repo strategy — one repo, don't split

Two links = two apps under apps/, not two repos. Shared twin, shared brand_rules, shared Pimcore integration, one PR queue, one AGPL-3.0 license. Revisit at v0.2 only if the two apps develop truly independent release cadences.

Milestone housekeeping

Follow-up issues opened

Verification

$ grep -c -i "shopify" README.md POSITIONING.md agent.md soul.md AGENTS.md LOOP_SPEC.md design.md

Only deliberate mentions remain: branch name, historical rename notes, and Shopify listed as one of many storefront templates in the regression matrix.

Perplexity project side

The Perplexity project description + system prompt have been updated to mirror this PR (dual-link framing, Pimcore center, Vercel/AWS split, monorepo lock).

Reframe the top-level positioning + operating contracts around a
single intake primitive: an existing web page link. Aligns Shoploop
with the NVIDIA OpenUSD product configurator reference architecture
(https://developer.nvidia.com/blog/developing-product-configurators-with-openusd/)
where the customer's data is aggregated, expressed as OpenUSD, exposed
as variants (model x material x style x artwork), rendered, QC'd, and
delivered.

Wording changes only. Connector code under connectors/shopify/ and
apps/ is untouched — Shopify remains one of many optional secondary
data sources, never a required intake.

- README.md: new 'Intake: one URL' section; drop 'on Shopify' from tagline;
  swap 'Shopify admin API' out of the loop diagram in favor of the
  generic web publish path; contributor list swaps 'Shopify admin API
  adapter' for 'URL to USD product-twin extractor'.
- POSITIONING.md: new 'Intake — one URL, nothing else' section anchored
  to NVIDIA OpenUSD ref arch; drop 'on Shopify' from one-liner; loop
  step 3 no longer requires Shopify commerce read; loop step 7 rewrites
  as 'update the page' via PR or hosted-CMS API.
- agent.md: new locked 'Intake rule'; four-repo table renames
  shoploop-shopify -> shoploop-delivery in wording; active board swaps
  'Shopify app scaffold' for 'URL page parser'; decision gate adds
  rule 6 (reject non-URL intake surfaces); founder location Houston
  -> Seattle to match current context.
- soul.md: platform-neutralize checkout dogma; add URL as the intake
  primitive in the stack-as-soul block; drop Shopify-specific
  metaphors.
- AGENTS.md: locked-decisions swaps 'Shopify App Store' for URL paste
  on shoploop.studio; architecture loop leads with 'Existing Web Page
  URL'; releases v0.2 renamed 'URL-intake Public Beta'; never-do list
  adds 'propose intake surfaces other than URL'; founder location
  Houston -> Seattle.
- LOOP_SPEC.md: Loop 1 rewritten as 'URL Intake (Page -> Twin)' with
  full 9-primitive spec; original connector ingest demoted to Loop 1b
  (secondary, optional); Loop 6 rewritten as 'Web Page Update
  (PR-first)' with hosted-CMS API as optional-connect path only; Loop
  8 regression scope widened from Shopify+WooCommerce to top 30
  storefront templates; scheduling policy re-gated on URL paste, not
  connector enrollment.
- design.md: description + hero one-liner drop 'on Shopify' /
  'for every Shopify tabletop brand' in favor of 'one URL in,
  configurator out' / 'every tabletop brand with a web page'.
@ninan-versioning
ninan-versioning merged commit 6a2d1e2 into main Jul 25, 2026
1 check passed
@ninan-versioning ninan-versioning changed the title positioning: drop Shopify from wording; URL as sole intake positioning + dual-link + Vercel: one URL in, two links out; Pimcore center Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant