ENTERPRISE INTELLIGENCE

Website publishing from Slack with human approval

Location-specific landing pages generated by Claude and v0, approved in Slack by a named person, deployed to Vercel with metadata, schema markup, discovery files and analytics configured in the generation step.

#marketing-pages · Slacklive
/page austin-hvac service=HVAC tone=trusted
P
Draft ready. Core Web Vitals: all green. SEO technical score 94. Preview: vercel.app/preview/austin-hvac
ApprovalApproved by @morgan · deploy to prod
Entry point
Slack brief
SEO configuration
Built-in at generation
Approval
Named human
Deployment
Vercel with files
Client
US startup clients across HVAC, roofing, plumbing and local service verticals
End users
Agency account managers, in-house marketing teams, SEO leads
Scope
Slack-initiated generation, review, approval and deployment workflow with search configuration in-line
Engagement
Slack integration + generation orchestration + deploy pipeline + approval surface
The Pain

Where the pain concentrates

A marketing team running local SEO needs location-specific pages. The conventional path was an engineering ticket per page; the engineering team was not interested in being a copy-paste shop, and marketing was not interested in waiting a week.

01

Every page became a ticket

Marketing wrote the brief, engineering built the page, QA checked it, deployment shipped it. A one-week round trip for a landing page.

02

Manual handoffs lost context

Brief in Slack, copy in a Doc, page in a repo, deploy in a dashboard. Something got lost at every hop.

03

SEO drift

Metadata, schema markup, discovery files, Core Web Vitals. Each page had its own version of correct.

04

Approval was implicit

Who signed off on this page, when, for what reason? Reconstructable at best.

Voice of the Customer

What marketing leads actually said

“Marketing cannot wait a week for a landing page because engineering has a sprint.
“If every page is bespoke, SEO drifts and nobody owns the drift.
“Approval cannot be a thumbs-up in a thread we lose next quarter.
Our Approach

Brief, generate, approve, deploy

The design decision came first: generated output does not become a production page without a named human approving it in Slack. That is the whole product. Everything else, generation, SEO configuration, deployment, is in service of making that approval meaningful.

ScroBits built the full stack: Slack as the entry and approval surface; Claude for copy, metadata and schema; v0 for the Next.js page with the brand design system; Python on AWS Lambda for orchestration; Supabase for workflow state; Google Sheets for the brief and catalog; Vercel for deployment with discovery files, analytics and Core Web Vitals in place.

What runs today across multiple US startup clients is location-specific pages shipped at marketing speed, with search configuration consistent across pages and an explicit, auditable approval trail on every production release.

Named
Human approval on every production page

The approval is explicit, in Slack, by a named person, with the preview link they approved. Audit trail is a byproduct of how the workflow is shaped, not an afterthought.

Slack entry + approval surface
Claude + v0 generation pipeline
AWS Lambda orchestration
Supabase workflow state
Vercel deploy with SEO built in
What We Built

Five building blocks, one auditable publishing path

Each block has a specific job in the Brief -> Generate -> Approve -> Deploy flow. Together they let marketing ship at marketing speed, with SEO and audit intact.

Illustration of a website brief in Slack alongside a generated service-business website, showing Next.js, Slack, and Vercel in the publishing workflow.
ILLUSTRATIVE WORKFLOW · Pages are reviewed and approved before publishing. Select the image to view at full size.

Slack as the entry point

The brief is a message in a channel, not a Jira ticket. The approval is a reply in the same channel, not a separate workflow. Marketing stays where marketing already works.

Claude + v0 generation

Claude generates copy, metadata, schema markup and SEO configuration from the brief. v0 generates the Next.js page structure with the brand design system applied.

Human approval before production

Generated output does not become a production page without an explicit approval. Named person, named preview link, in Slack. Audit trail is a byproduct, not an afterthought.

Serverless backend on AWS Lambda

Python on Lambda orchestrates generation, storage and deployment. Google Sheets and Excel feed the brief and page catalog. Supabase holds workflow state through the lifecycle.

Vercel deploy with search intact

Approved pages deploy to Vercel with Next.js. Metadata, schema markup, discovery files and analytics configured in the generation step, not bolted on after.

01

Brief

Marketing writes the brief in Slack with location, service, style and tone.

02

Generate

Claude generates copy, metadata and schema. v0 generates the Next.js page.

03

Preview

A preview link comes back to Slack in the same thread.

04

Review

Marketing lead reviews preview, SEO technical score and Core Web Vitals.

05

Approve

Explicit approval in Slack, by a named person.

06

Deploy

Vercel deployment with search configuration, discovery files and analytics.

07

Catalog

The page lands in the Google Sheets catalog with URL, metadata and audit trail.

FIG · BRIEF-TO-CATALOG FLOW
PythonAWS LambdaClaudev0SupabaseGoogle SheetsExcelNext.jsVercelSlack
Measured Outcome

Before, after, change

In production across multiple US startup clients. Pages shipped at marketing speed; search configuration consistent; approval trail explicit.

DimensionBeforeAfterChange
Page creation pathEngineering ticket per pageSlack brief, generated, approved, deployedSelf-serve
HandoffsMarketing to engineering to QA to deployOne workflow, one channelCollapsed
SEO configurationHand-rolled per pageBuilt into the generation stepConsistent
Approval trailImplicitExplicit, in Slack, by a named personAuditable
Scaling responseHire or waitAdd brief, approve, shipElastic
Slack
One channel, brief to approval
Built-in
SEO configuration in generation
Named
Approver on every production page
Vercel
Deployment with discovery files
Multiple US startup clients. Location-specific pages shipped at marketing speed with search configuration intact and an explicit approval trail. Human approval separates generated output from production release.
On the Roadmap

Extending the workflow beyond landing pages

01

Multi-brand design systems

Agencies run several clients through the same workflow with different styling.

02

Automated A/B testing

Generated variants compete; winning variant promoted after a confidence threshold.

03

Page refresh automation

Stale location pages regenerated against the current brief and re-approved.

04

CMS integration

Pattern extended to clients already running WordPress or Webflow.

What We Learned

Three principles we are taking into the next engagement

01

Approval is a product feature

Generated output is not a production release until a named human says so. The approval has to live where the team already works, not in a separate tool.

02

SEO belongs in generation

Metadata, schema and discovery files bolted on after shipping is how pages drift. Configuring them in the generation step is how they stay consistent.

03

One channel beats a workflow tool

Marketing is in Slack already. A separate workflow tool is where good ideas go to be reviewed later. Slack brief, Slack approval, Vercel deploy.

Marketing waiting on engineering to ship a landing page?

ScroBits builds the Slack integration, generation orchestration, deployment pipeline and approval surface. Two weeks to a scoped pilot.

Start a conversation