Changelog
import { Aside } from ‘@astrojs/starlight/components’;
2026-05-28 — Commerce + analytics + portal redesign
Section titled “2026-05-28 — Commerce + analytics + portal redesign”A consolidation cycle that landed three user-visible feature areas (Amazon via Marketplace Connect, first-party traffic analytics, the redesigned client portal with billing), then a repo-wide cleanup that tightened API/SDK contracts and shipped a Claude plugin.
Portal
- New Analytics page under each website (
/admin/websites/:id/analyticsand the client-side/app/websites/:id/analytics). Two tabs:- Traffic — pageviews, sessions, average dwell, bounce rate, daily timeline, top pages / referrers / countries / device classes, plus a separated bot section.
- SEO / GEO — health-scan score, GEO citation rate, Search Console metrics, citation checklist progress, competitor diff activity, AI quota usage.
- New Billing tab on the website detail page (Stripe-backed) with invoices, billing portal link, restart-billing flow, and one-off invoicing. Feature toggles that cost money now route through the billing surface instead of the generic features panel.
- Redesigned client portal — the
/app/*surface a client sees when they log in. New website detail page (magazine layout), marketing tools page (/app/websites/:id/marketing), bookings + SEO + analytics tabs scoped to the owning client. - Blueprint canvas — added the Marketplace Connect node with an Amazon configuration panel (link state, deep-link into Marketplace Connect, sales-analytics card). Blueprint also got a route error boundary + crash guard so a malformed node no longer takes down the whole canvas.
- Toast notifications for the OAuth flows (Shopify connect/disconnect, Google Search Console) instead of silent URL parameters.
API
- New
/v1/websites/:id/analyticsand/v1/websites/:id/analytics/seoendpoints, plus the public-facing/public/v1/ctracker ingest path (with/public/analytics/ingestas a legacy alias). Range/interval query params; 90-day TTL on raw events. - New commerce surface — Amazon-via-Marketplace-Connect analytics computed from the Shopify Admin token we already hold. No Amazon SP-API access required. Endpoints:
amazonAnalytics,refreshAmazonAnalytics,amazonSetupLink. - Stripe billing routes — invoices, billing portal, restart-billing, one-off invoice, set-price.
- Repo-wide route split — the five “mega routes” (
seo,websites,domains,analytics,oauth) were split into per-resource files (seo-tier.ts,seo-ai.ts,seo-data.ts,analytics-seo.ts,analytics-traffic.ts,analytics-ingest.ts, etc.). No behavior change; existing call sites are unaffected. - OpenAPI coverage — ~34 routes backfilled with Zod
request/responsesannotations and migrated to Zod 4’s nativetoJSONSchema. The drift assertion ingen-openapi.mtsnow catches forgotten route registrations at docs build time. - Webhook robustness — Shopify webhook handler deduplicates by
X-Shopify-Webhook-Id, distinguishes transient (retry) vs terminal (drop) failures, and uses an atomic counter for AI-quota writes.
SDK (@vantageconnections/sdk)
- Per-resource split. The monolithic
client.ts(787 LOC) was split into one file per resource undersrc/resources/. Call sites are unchanged —vc.websites,vc.seo,vc.bookings, etc. all keep working. - New
vc.analyticsresource —getSeo(websiteId, range)for the SEO/GEO dashboard,getTraffic(websiteId, range, interval)for the traffic dashboard. - New
vc.jobsresource — provisioning job inspection, lifted out ofWebsitesApiso the websites surface stays focused. WebsitesApisub-namespaces —vc.websites.billing.*,vc.websites.commerce.*,vc.websites.transfer.*,vc.websites.deployment.*,vc.websites.invitations.*. Old flat methods stay as@deprecatedshims so existing consumers keep working.- Fail-loud
PORTAL_URL— the SDK now throws at construction if the portal URL is mis-shaped instead of silently emitting broken links. - Six wrong-shape
WebsitesApimethods corrected + newShopify/Jobswrappers added so the SDK contract matches the API’s actual response shape. - Custom
VantageApiErrorcontinues to carrystatus+ parsedbodyfor branching; nothing changed at the error layer.
Docs
- New Analytics page under Concepts and a matching Inspect site analytics how-to under Guides — the analytics surface (tracker, SEO/GEO composer, traffic dashboard) is now documented end-to-end.
- New Sell on Amazon guide covering the Marketplace Connect flow + Shopify-sourced analytics + the cancelled SP-API fee.
- New Connect a Shopify store, Set up MCP, and Set up Claude Code guides.
- CLI / MCP / SDK / REST API reference all auto-generate from source. The OpenAPI spec is rebuilt at docs build time via
prebuild→gen→astro build. - Editorial pass on every concepts page (websites, services, blueprint, provisioning, domains, commerce) for accuracy after the route split.
Claude plugins (@vantageconnections/claude-plugin)
- New distributable plugin with ten skills:
vantage-setup,vantage-new-website,vantage-port-repo,vantage-connect-shopify,vantage-connect-amazon,vantage-bookings,vantage-seo,vantage-domains,vantage-mcp-setup,vantage-troubleshoot. - Each skill is scoped to one workflow and carries the user phrases that should trigger it. Install via
/plugin install vantage@vantage-connectionsin Claude Code, or/plugin install @vantageconnections/claude-pluginfrom npm.
Infra / hygiene
- Consolidated cross-package types under
@vantageconnections/shared(single source of truth for the SDK + API + portal). - Phantom workspace dropped, Vitest added, root
CLAUDE.md+READMErefreshed for the multi-package layout. .npmrckeepsinstall-strategyun-set on purpose — the repo mixesvite@5(esbuild 0.21) andastro@6(esbuild 0.27/0.28), and hoisting would flatten the nested esbuild binaries and break the build.
0.1.0 — Initial public release
Section titled “0.1.0 — Initial public release”Platform
- Multi-tenant website provisioning via the orchestrator pipeline
- Blueprint canvas in the portal at
/admin/websites/:id - Cognito auth (admin + client roles), PAT auth for
/v1/*(SDK/CLI/MCP) - DynamoDB-backed entities: Websites, Services, Domains, Provisioning Jobs, Content, Blueprint Layout
- Integrations: GitHub (repo from template), Vercel (project + deploy), OpenRouter (key), Resend (domain), Cal.com (bookings handle), Shopify (commerce + channels)
- Shopify webhook intake with HMAC verify, cross-tenant guard, SQS-fronted worker
- Channel apps: TikTok, Meta, Pinterest, Google, Marketplace Connect (status auto-detected via Publications API)
- SEO scanner + GEO probes (tier-gated)
- AI-assisted content endpoints: alt text, meta description, blog draft, local SEO page
SDK (@vantageconnections/sdk 0.1.0)
- Full TypeScript client covering all
/v1/*endpoints VantageClientwith sub-resources:websites,content,blueprint,domains,bookings,seo,me- Custom
VantageApiErrorcarrying status + body for branching
CLI (@vantageconnections/cli 0.1.0)
vantage login/logout/whoami/selftestvantage websites(list, get, create, delete, features)vantage content(get, edit — opens$EDITOR)vantage blueprint(get, positions)vantage bookings,vantage seo,vantage domains,vantage keys- Credentials stored at
~/.vantage/credentials.json(mode 0600) VANTAGE_TOKENenv override for CI
MCP (@vantageconnections/mcp 0.1.0)
- MCP server exposing the CLI surface 1:1 as tools
- Setup snippets for Claude Code, Cursor, Claude Desktop
Docs (this site)
- Launched at https://docs.vantageconnections.dev
- Hand-written getting-started + concepts + guides
- Auto-generated reference for CLI, SDK, MCP, REST API (OpenAPI spec from Zod schemas)