mainWhat we shipped.
One line per merged pull request, dated by merge day. Generated by the same automation that pushes the code, so the only delay between "we shipped it" and "it appears here" is a CI run.
- PR_460CHANGEDfix(partners): stop loop diagram side labels from overlapping nodes
🤖 Generated with Claude Code
- PR_458CHANGEDdesign(tools,partners): elevate landing pages with instrument + ledger treatments
Adds visual oomph to two underpowered marketing pages while staying inside the existing ops design language (Fraunces + IBM Plex Mono + forest accent on field-notebook paper).
- PR_456CHANGEDseo: fix prerendered per-page meta + per-route JSON-LD + content feeds
Discoverability + AEO sprint — fixes two silent rankings bugs and ships compounding organic surface area, all code-only / zero new spend.
- PR_442CHANGEDfeat(agent-recs): close monitor-screen gaps in agent recommendations endpoint
The
/api/v1/projects/{id}/agent/recommendationsendpoint (the public API-key surface for Claude Code / CI automation) was returning issues from the latest completed scan but s... - PR_440CHANGEDUpdated node
- PR_437CHANGEDUpdate CDK for Lambda log retention runtime
- PR_438CHANGEDAddress Kubernetes preflight warnings
Summary: add explicit requests and limits to the ECR pull secret refresh Job and CronJob containers. Validation: YAML parse passed; kubectl apply --dry-run=client --validate=fal...
- PR_435CHANGEDPrevent generated posts from silently sticking in review
- PR_434CHANGEDSet VectraSEO log retention to 14 days
- PR_433CHANGEDAdd CloudFormation resource tags
Adds Project, Environment, Owner, and ManagedBy tags to the WAF, SNS topic, and CloudWatch alarms. Validated with aws cloudformation validate-template.
- PR_432CHANGEDTag API WAF with project name
- PR_431CHANGEDAdd reorder controls for project tiles
Notes: full Vitest run passed with 50 files / 336 tests, while printing existing sandbox EPERM localhost:3000 connection noise. Browser QA screenshots were captured in /tmp/qa-v...
- PR_428CHANGEDAuto-repair content quality before publishing
- PR_427CHANGEDAdd guarantee policy and harden broken-link checks
Closes #306
- PR_425CHANGEDAdd GA4 post-click monitoring
Closes #257
- PR_423CHANGEDAdd blog content sanity checks
- PR_421CHANGEDBundle CMS demos and SEO recommendation fixes
- PR_419CHANGEDFix content quality autofix dead end
- PR_417CHANGEDfix(gsc): skip URL inspections outside connected property
- PR_416CHANGEDAdd content quality auto repair
- PR_414CHANGEDEnsure recommendation exports include all issue categories
- PR_412CHANGEDAdd blog content quality gate
Notes:
- PR_410CHANGEDFix integration marketing claim mismatches
Fixes #408
- PR_406CHANGEDAdd llms.txt AEO check
- PR_403CHANGEDFix broken link checks for false HEAD failures
- PR_401CHANGEDImprove workspace onboarding QA
- PR_398CHANGEDfeat(gsc): surface Google Page Indexing in Search Console insights + agent API
13 buckets with daily sparklines, example URLs, deep-links to GSC, and a per-URL "Validate fix" button (1-hour cooldown + daily quota guard):
- PR_396CHANGEDfeat(marketing): surface 6 Pricing-Ledger /vs pages from landing + hub
Ledger pages are the only places on the open web publishing structured competitor pricing (entry tier, hidden add-ons, quote-only flags) + sourced field notes (G2 / Trustpilot /...
- PR_394CHANGED/vs hub: pricing ledger + review citations on 6 top competitor pages (closes #362)
Closes #362.
- PR_392CHANGEDagent-api: include Opportunities + per-item rewrites in recommendations
🤖 Generated with Claude Code
- PR_389CHANGEDMigrate backend image registry: DigitalOcean (DOCR) → AWS ECR
🤖 Generated with Claude Code
- PR_387CHANGEDfeat(agent-api-key): show endpoint + ready-to-run snippets at reveal
Before: after generating, the reveal showed only
[key] [Copy] [Done]. After clicking Done, the snippets below contained<your-key>— useless without manually re-pasting. - PR_385CHANGEDfeat(agent-api): per-project API key + unified recommendations endpoint for agentic coders
Closes #384.
- PR_382CHANGEDfeat(monitor): broken_links rule + Claude Code recommendations export
Self-QA (full report inline before commit) caught and fixed:
- PR_380CHANGEDfix(seo): clear all SEO + AEO monitor warnings on the public site
Closes the 18 issues flagged by the 2026-05-10 monitor scan on
vectraseo.com(1 SEO warning, 2 SEO info, 11 AEO warnings, 7 AEO info). Re-running the rules locally against the... - PR_377CHANGEDfeat(free-audit): hand off scanned domain into post-signup project create
Closes the bottom of the Free Audit funnel. When a visitor runs a scan at
/free-auditand clicks Start trial, we now carry the scanned domain (andaudit_id) through magi... - PR_375CHANGEDfix(monitor-export): include AEO issues in issues_by_rule
🤖 Generated with Claude Code
- PR_370CHANGEDfix: AEO in monitor exports + single landing H1 + real /docs#monitoring link (#354)
Bumped the export
schema_versionfrom1→2. New fields are additive —1consumers can keep ignoring them. - PR_369CHANGEDfix(landing): center mobile layout + Acquisition Sprint Q2 (#365 #360 #361 #362 #363)
LandingView's@media (max-width: 640px)block forced.ops__wrapto a fixedwidth: 390pxwithmargin-left: 0; margin-right: 0. On any viewport wider than 390 CSS px (iP... - PR_366CHANGEDfix(gsc): match domain-property URLs at /blog/<slug> without cms_post_url
1.
cms_post_url(CMS adapter output)
- PR_358CHANGEDfeat(landing): position AEO alongside SEO across homepage + methodology
Closes #357.
- PR_353CHANGEDfeat(changelog): public /changelog page rendering CHANGELOG.md
Closes #351.
- PR_350CHANGEDMerge SEO Monitors + AEO Readiness into one project-detail tile
🤖 Generated with Claude Code
- PR_348CHANGEDfeat(aeo): readiness v2 — alerts, project-wide score, +5 rules (#346)
Closes #346.
- PR_339CHANGEDfeat(agencies): dedicated /agencies landing page + ROI calculator
The Agency tier ($249/mo, $1.66/post) has the strongest unit economics on the page but currently shares pricing-tile treatment with $19 Starter. This PR gives it a proper home.
- PR_345CHANGEDfeat(banner): soft urgency banner + GET /public/stats/partner-count
PR 8 of the homepage conversion sweep — the final one.
- PR_341CHANGEDfeat(homepage): expand REPORT_01 / DATA band into a fuller research surface
The existing REPORT band was a single-line claim — visually thin given it points to the strongest credibility asset on the site (the 10,000-site Silent Traffic Killers research...
- PR_342CHANGEDfeat(homepage): add CMS demo tabs section with self-contained poster placeholders
Buyers' biggest unspoken objection is "will this actually work with my stack?" — the homepage lists 7 CMS adapters but doesn't show them. This PR lands the tabbed component the...
- PR_344CHANGEDfeat(homepage): exit-intent newsletter modal with rate-limit suppression
Captures the 95%+ of first-visit traffic that leaves before signing up for a trial or running the free audit. Offer is intentionally non-trial: subscribe to a weekly broken-site...
- PR_343CHANGEDfeat(homepage): hero H1 + lede A/B test (cookie + pre-paint resolution)
PR 2 of the homepage conversion sweep.
- PR_340CHANGEDfeat(methodology): add /methodology page backing quantified site claims
Original PR 11 spec called for backing a "3.2× organic traffic in 90 days" claim — that line has since been removed from the FAQ. Adapted to back the quantified claims that DO l...
- PR_337CHANGEDfeat(integrations): align /integrations with homepage operator aesthetic
The /integrations page was visually disconnected from the rest of the marketing site — soft SaaS-style cards while the homepage runs the chapter-marker, terminal-tail, monospace...
- PR_338CHANGEDfeat(pricing): add risk-reversal copy — guarantee strip + per-tier reassurance
PR 4 of the homepage conversion sweep.
- PR_334CHANGEDfeat(homepage): promote free audit to primary CTA + on-page audit embed
PR 3 of an 11-PR homepage conversion sweep. Each PR ships independently.
- PR_335CHANGEDfeat(comparisons): add 9 new /vs pages, FAQPage schema, grouped index
PR 6 of the homepage conversion sweep.
- PR_332CHANGEDFix marketing-site a11y/SEO info findings
Clears the 13
infoissues (landmark_main, form_labels, heading_order, image_seo) reported in the 2026-05-09 monitor scan forvectraseo.com. - PR_330CHANGEDAdd AEO readiness assessments
Closes #328
- PR_326CHANGEDFix Top queries sort pill layout
- PR_324CHANGEDPromote Shopify private beta and sortable top queries
- PR_321CHANGEDAdd free monitor pricing onramp
Issue: #307
- PR_319CHANGEDImprove Shopify OAuth and comparison pages
- PR_315CHANGEDImprove public conversion funnel
Fixes #314
- PR_304CHANGEDFix Shopify app status terminal states
- PR_302CHANGEDFix Shopify App Bridge ready handling
Note: local
frontend/.env.localdefinesVITE_SHOPIFY_API_KEYfor local builds and is gitignored; it is not part of this PR. - PR_301CHANGEDAllow X-Requested-With in API CORS
- PR_300CHANGEDAllow Shopify App Bridge network calls in CSP
- PR_298CHANGEDWait for Shopify App Bridge before status fetch
- PR_297CHANGEDAdd Shopify host fallback before App Bridge
- PR_295CHANGEDLoad App Bridge in Shopify app shell
- PR_292CHANGEDPrerender Shopify app shell
- PR_290CHANGEDFix Shopify frontend build key
- PR_287CHANGEDFix GSC overview KPI totals
Closes #263.
- PR_286CHANGEDAdd Shopify App Store integration
- PR_285CHANGEDci: stop changelog workflow loop
- PR_283CHANGEDdocs: update changelog
Automated changelog update for merged pull request #282.
- PR_282CHANGEDdocs: update changelog
Automated changelog update for merged pull request #281.
- PR_281CHANGEDdocs: update changelog
Automated changelog update for merged pull request #280.
- PR_280CHANGEDdocs: update changelog
Automated changelog update for merged pull request #278.
- PR_279CHANGEDfix: stack GSC + recommendation tail panels on mobile
🤖 Generated with Claude Code
- PR_278CHANGEDdocs: update changelog
Automated changelog update for merged pull request #277.
- PR_277CHANGEDdocs: update changelog
Automated changelog update for merged pull request #276.
- PR_276CHANGEDdocs: update changelog
Automated changelog update for merged pull request #275.
- PR_275CHANGEDdocs: update changelog
Automated changelog update for merged pull request #274.
- PR_274CHANGEDdocs: update changelog
Automated changelog update for merged pull request #273.
- PR_273CHANGEDci: open changelog updates as pull requests