← AI Catalyst C3All programsHomeSearch
AI Catalyst C3·Core Sessions - Week 6·1:38:23

Office Hours VI: Paul's SEO/AEO/GEO Question - Moving a Lovable Site into GitHub and Claude Code, the GEO Skill, llms.txt, and CLIs as the Glue

Harshit Host - the GitHub CLI / Linear / Railway demos, the full GEO walkthrough for Paul, the token-cost method, the site reviews · Paul Berg Participant - the SEO/AEO/GEO masterclass request and the extended one-on-one (0:26-1:00) · Cody Participant - six-part engineering-architecture question; two site reviews · Lillian Participant - the token-spend estimation question · Vikram Participant - Linear integration, dashboard review, the bypass-permissions warning

The short version

  1. PAUL'S QUESTION (0:26): 'With generative search and AI components becoming more important for [businesses] to be found, can we do a masterclass on SEO, AEO or GEO - how it works and how we get our clients listed?' Harshit answers with a live build (0:35-1:00): first ask every client for GitHub access to their site's repo - you cannot do real SEO/GEO on a site you do not control. Paul: 'Typically, I use Lovable.' Build v1 in Lovable for the design, then move the code OUT to your own GitHub because 'Lovable owns the code' while it sits there; do the ongoing SEO/backend work in Claude Code and go back to Lovable only for design tweaks (it also burns Lovable credits otherwise).
  2. The GEO toolkit shown on a mock client site: the GEO Content Optimizer skill from skills.sh (search 'GEO'), installed into Claude Code and run READ-ONLY first ('don't commit anything, tell me the improvements'); then llms.txt - a proposed standard file that tells LLMs how to use your site at inference time, 'a gold mine for your entire SEO'; then re-scoping the skill to citation optimisation for ChatGPT, Perplexity and AI Overviews rather than on-page SEO (0:41-0:48). A written doc for Paul was promised: GEO workflow, the skill, llms.txt, plus GitHub CLI and Linear.
  3. Paul's workflow today: Claude Cowork assembles the site criteria and components, Lovable adopts them, Claude Code is his 'primary communication vehicle'. Harshit: Cowork and Claude Code are 'literally the same thing' underneath, so his communication-style instructions carry over; WordPress clients who want to edit their own site are handled through a WordPress CLI installed into Claude Code the same way as GitHub CLI - 'a good topic for a deep-dive masterclass'; and no task is 'above your intellectual pay grade' - keep prompting in plain language until it is (0:50-1:00). Sarah's follow-up: clients editing after handoff can undo SEO/GEO work, so deliver a PDF of what was done and treat later changes as theirs (1:04-1:05).
  4. Cody's six-part architecture question, answered with demos: push everything to GitHub and install skills by pasting a repo link; PRDs + branches + Linear (Claude Code updates the card itself once it has the API key); a memory.md file for agent wake-up; modular repos vs a mono-repo is a founder's vision call; validate architecture early with Fable's /goal against the whole repo; keep project memory in a Hermes agent and a Kanban tool pulled in over API (0:04-0:23). GitHub CLI installed and authenticated live from one plain-English prompt (0:23-0:24).
  5. Token-spend estimation for vibe-coded client apps (Lillian): one week of iteration once cost ~$500; get full requirements first, estimate per page with Haiku against Anthropic's price table, write the proposal with Sonnet, never disclose model costs; Pixpipe converts context to images for Fable's OCR, claiming 60-70% savings (1:08-1:16). Railway CLI + its agent skills for deployment (1:16-1:23); Hostinger as the VPS; Tailscale as 'a standard protection layer for your AI agents' (1:06); shadcn + Magic UI for dashboards; always a .com (1:25-1:37).

At a glance, three clicks deep

Skim here first: the closed row is the glance, open is the study card with the key points and timestamps, and the ↓ link drops to that concept's full write-up below.

01Lovable for v1, then move the code out: you cannot do real SEO/GEO on a site you don't ownDesign in Lovable once -> own repo on GitHub -> SEO/GEO/backend in Claude Code -> Lovable only for design t…›

Design in Lovable once -> own repo on GitHub -> SEO/GEO/backend in Claude Code -> Lovable only for design tweaks; WordPress via WP-CLI.

Get client repo access first; 'very hard' on a site you don't control (0:35-0:37)

'Lovable owns the code' while it stays there (0:38-0:40)

Paul: can I still design in Lovable after? Yes, not recommended - credits (0:50-0:52)

Lovable = 'a nice design wrapper on top of Claude Code' (0:53)

WordPress clients: WordPress CLI inside Claude Code (0:54-0:56)

↓ Full write-up of this concept

02The GEO Content Optimizer skill and llms.txt: getting cited by ChatGPT, Perplexity and AI OverviewsRead-only GEO skill audit -> scoped to AI-citation goals -> llms.txt at the root;›

Read-only GEO skill audit -> scoped to AI-citation goals -> llms.txt at the root; then commit.

skills.sh, search 'GEO'; install into Claude Code (0:41-0:43)

Read-only first: report, don't commit (0:43-0:44)

llms.txt: inference-time instructions for LLMs (0:44-0:47)

Re-scope to citation optimisation, not on-page SEO (0:47-0:48)

↓ Full write-up of this concept

03Install the CLI, let the agent drive it: GitHub, Linear, Railway, WordPressCLI + API key + one plain-English install prompt = the agent owns the tool;›

CLI + API key + one plain-English install prompt = the agent owns the tool; works for any service with a CLI.

GitHub CLI installed and authenticated live (0:23-0:24)

Linear: API key -> MCP -> read/write tickets (0:30-0:35)

Railway CLI + Railway agent skills (1:16-1:23)

WordPress CLI for client sites (0:54-0:56)

↓ Full write-up of this concept

04A shared engineering layer: GitHub, PRDs, branches, Linear, memory.md, and a Fable /goal reviewGitHub + PRDs + branches + Linear + memory.md, validated by Fable /goal, remembered by a Hermes agent.›

GitHub + PRDs + branches + Linear + memory.md, validated by Fable /goal, remembered by a Hermes agent.

Everything to GitHub; skills by repo link (0:04-0:08)

PRDs, branches, Linear as source of truth (0:09-0:13)

memory.md for wake-up (0:13-0:14)

Modular vs mono-repo (0:14-0:18)

Fable /goal to validate architecture (0:18-0:19)

↓ Full write-up of this concept

05Estimating token spend before you quote a client: Haiku to estimate, Sonnet to propose, never discloseRequirements -> per-page estimate (Haiku) -> proposal with markup (Sonnet) -> costs undisclosed;›

Requirements -> per-page estimate (Haiku) -> proposal with markup (Sonnet) -> costs undisclosed; Pixpipe for Fable-heavy work.

$500 in one week of iteration (1:08-1:09)

Per-page estimate with Haiku vs the price table (1:09-1:10)

Proposal with Sonnet; don't disclose API cost (1:10-1:11)

Pixpipe: image context for Fable, 60-70% claimed (1:12-1:16)

↓ Full write-up of this concept

06After handoff, the client can undo your SEO - so document the deliverables and draw the lineDeliverables + pricing as a PDF at handoff;›

Deliverables + pricing as a PDF at handoff; post-handoff edits are the client's responsibility.

Client edits can undo SEO/GEO (1:04)

PDF documentation of deliverables and pricing (1:04-1:05)

Car-modification analogy (1:05)

↓ Full write-up of this concept

07Fable is a model; Lovable and Genspark are wrappers - and Lovable stopped telling you which modelModel (Fable) vs wrapper (Lovable, Genspark);›

Model (Fable) vs wrapper (Lovable, Genspark); prefer tools that expose the model; skills can replace the wrapper's design layer.

Wrapper vs model is apples to oranges (1:00-1:01)

Lovable hides the model now; Emergent shows it (1:01-1:02)

Front-end skills from skills.sh instead of a wrapper (1:03-1:04)

'Sticking to basics always helps' (1:37)

↓ Full write-up of this concept

08Live site reviews: .com, header clutter, waitlist at the top, Mobile Simulator, shadcn + Magic UI.com;›

.com; header simplicity; capture field above the fold; mobile check; GEO skill + PostHog; shadcn/Magic UI for dashboards; approve agent actions.

Short .com domain (1:26)

Mobile Simulator extension (1:27-1:29)

Waitlist field at the top; allow duplicate submits (1:33-1:35)

shadcn/ui + Magic UI templates (1:29-1:31)

Bypass permissions: manual review needed (1:23-1:24)

↓ Full write-up of this concept

The concepts in full

01

Lovable for v1, then move the code out: you cannot do real SEO/GEO on a site you don't own

'The first thing you ask a client for is GitHub access.' Paul: 'Typically, I use Lovable.'

Harshit's rule for Paul's agency work: Lovable and its peers are excellent at design and taste, so use one for the first version. But while the code lives in Lovable, Lovable owns it - you cannot deep-edit structure, metadata, files and routes the way SEO and GEO work requires, and pushing it out is deliberately awkward ('Lovable wants to own the core'). So: v1 in Lovable, then connect GitHub and move the codebase to your own repo, then do ongoing SEO, GEO and backend work in Claude Code, which 'does back end really well'. Keep Lovable only for occasional aesthetic passes - GitHub-syncing back is technically possible but burns credits and adds nothing. On WordPress: a site the client wants to edit themselves is 'definitely possible' through a WordPress CLI installed into Claude Code exactly like GitHub CLI.

Why it matters

The single most consequential piece of workflow advice Paul received in the cohort; OH XII turns it into his migration path.

02

The GEO Content Optimizer skill and llms.txt: getting cited by ChatGPT, Perplexity and AI Overviews

'A gold mine for your entire SEO' - one file at the root of the site.

On a mock client repo ('Iris Whale', an AI-consulting landing page) Harshit installs the GEO Content Optimizer skill from skills.sh and runs it read-only: 'don't try to commit anything - tell me all the improvements that can be done'. The skill reports; he then narrows its brief from on-page SEO to citation optimisation for AI search engines - ChatGPT, Perplexity, AI Overviews - and asks it to complete and report before pushing. Alongside it, llms.txt: a proposed standard file that tells LLMs how to use the website at inference time, so AI answer engines parse and rank the site. Both were promised to Paul in a written doc. The Saturday Session 23 that followed built the whole audit loop.

Why it matters

The concrete answer to Paul's 'how do we get our clients listed' - two installable pieces.

03

Install the CLI, let the agent drive it: GitHub, Linear, Railway, WordPress

'Fully install GitHub CLI and give me the link to sign in.' One prompt, a device code, 'Authentication successful.'

The most repeated move of the hour. Rather than learning each tool's dashboard, install its command-line interface and let Claude Code or Codex operate it conversationally: GitHub CLI to query commits and repos; Linear via its API key ('install the Linear MCP server for yourself and get fully integrated') so the agent reads and writes tickets and marks cards done; Railway CLI for deploys, which turns out to ship its own agent skills for SSH, databases and environments; and, for Paul, a WordPress CLI. A home-made Kanban works the same way once it exposes an API.

Why it matters

The unifying pattern for a non-developer running many services through one agent.

04

A shared engineering layer: GitHub, PRDs, branches, Linear, memory.md, and a Fable /goal review

Cody asked six architecture questions in one chat message. Harshit answered all six with demos.

Sync across devices by pushing everything to GitHub (API keys excluded, re-set per environment); a skill installs by pasting its repo link. A single source of truth is PRD files plus a branch per workstream (a 'codex security review' branch merged to main) tracked in Linear, which Claude Code updates itself. Agent wake-up after a crash is a memory.md file - 'can you add this to our memory'. Modular repos per team versus one mono-repo is a founder's call; the mono-repo buys shared context at the cost of onboarding friction. Validate architecture early with Fable's /goal against the whole repository, giving it vision, timeline and inputs. Keep project memory in a Hermes agent and a visual Kanban pulled in over API, because Claude Code's own interface is text only.

Why it matters

The lightweight engineering discipline a solo builder can adopt without a team.

05

Estimating token spend before you quote a client: Haiku to estimate, Sonnet to propose, never disclose

Lillian: how do you estimate the token spend of a vibe-coded app so you don't eat the margin? Harshit once burned $500 in a week.

Get the client's full requirements first. Ask Claude - using cheap Haiku for the estimate itself - to project token cost page by page against Anthropic's published pricing. Build the proposal, with markup, using Sonnet. Never show the client the underlying API and model costs. Then the trick: Pixpipe, an architecture (not a skill, but installed the same way) that converts context to an image before sending it to Fable, whose OCR is strong enough that the same information costs 60-70% fewer tokens - a cited benchmark claims ~38% fewer with comparable accuracy. It does nothing for Haiku-class models, whose OCR is not good enough.

Why it matters

A pricing procedure for every AI-built deliverable Technology On Call sells.

06

After handoff, the client can undo your SEO - so document the deliverables and draw the line

Sarah: if you do this for a client and they go in and change things, does it wreck the SEO and GEO?

Yes, it can. The protection is a complete PDF of what was delivered and what it cost, handed over with the work, and a clear position that changes the client makes afterwards are theirs - the car-modification analogy: alter the engine and the warranty is gone.

Why it matters

The one-page habit that answers Paul's 'hit by a bus' question from OH I on the maintenance side.

07

Fable is a model; Lovable and Genspark are wrappers - and Lovable stopped telling you which model

'Is Genspark or Lovable better for designing a website, or is Fable 5?' Not the same kind of thing.

Fable is an underlying model; Lovable and Genspark are products that may run Fable (or something else) underneath and mark up the cost. Harshit's complaint: Lovable used to let you pick the model and now hides it - 'a black box' - so you cannot see what your money buys; Emergent still shows the choice. For app UI without a wrapper, install a front-end skill (taste skill, or Anthropic's own front-end design framework) from skills.sh into Claude Code. His closing thought to Sarah about Cursor applies here too: chasing the flashiest new tool is a mistake; 'sometimes sticking to basics always helps'.

Why it matters

Clears up a category error that drives a lot of tool-shopping in the cohort, including Paul's Lovable-vs-Claude-Code question.

08

Live site reviews: .com, header clutter, waitlist at the top, Mobile Simulator, shadcn + Magic UI

Cody brought two new sites; Vikram brought a dashboard. Harshit reviewed all three on screen.

Always a short .com - 'the most trusted, it indirectly helps with SEO'. Test mobile with the Mobile Simulator Chrome extension. Simplify a wrapping header; put the email-capture field at the very top of the page with no extra click, and allow a re-submit if someone mistypes. Run the GEO skill and install PostHog. For dashboards, use shadcn/ui blocks and Magic UI's free templates rather than hand-built layouts; mark required fields as required. Tailscale in passing: a free VPN so a Hermes agent appears to be on your home IP - 'a standard protection layer for your AI agents'. Hostinger for a VPS. And Vikram's warning: bypass-permissions mode once installed something he had to dig out by hand - 'scary'.

Why it matters

A reusable review checklist for any client site before it goes live.

Tools referenced

ToolCoverageMomentContext
GitHub CLIdemonstratedInstalled and authenticated from one prompt
LineardemonstratedAPI key -> MCP -> Claude Code updates cards
LovabledemonstratedMock client site; pushing code out is deliberately hard
GEO Content Optimizerdemonstratedskills.sh skill run read-only on the repo
RailwaydemonstratedCLI install; ships agent skills
llms.txtexplainedInference-time instructions for LLMs
Claude Fableexplained/goal to validate a whole-repo architecture
TailscaleexplainedAgent appears on home IP; free tier
PixpipeexplainedImage context for Fable OCR; 60-70% claimed
HermesmentionedProject memory agent; behind Tailscale
HostingermentionedPreferred VPS
Claude HaikumentionedCheap model for the cost estimate
Claude SonnetmentionedWrite the proposal
GensparkmentionedWrapper, not a model
EmergentmentionedWrapper that still exposes the model
shadcnmentionedDashboard blocks
Magic UImentionedFree templates on shadcn
PostHogmentionedInstall on the reviewed site
CursormentionedHost's measured opinion
Claude Coworkmentioned'Literally the same thing' as Claude Code underneath

Session materials

Archived locally on V: — click to open. Companion pages link to the LMS.

Action items

    Resources mentioned

    Resources
    • docPaul's questions in this hour (verbatim, as asked)
    • docWritten doc promised to Paul and Vikram
    • docskills.sh
    • docMasterclass requests logged

    Extraction notes

    This page was built from an auto-generated transcript, which garbles product and people's names. Those were corrected silently in everything above and logged here for transparency. The warnings flag claims that were true on the recording day but change fast.

    Transcript corrections applied

    The transcript saysThe trainer actually means
    genetic searchgenerative search
    buildings (in Paul's question)businesses - Paul corrected it himself
    taste skill (at 1:05)Tailscale
    JillianLillian
    Iris Whalethe host's invented demo client name

    True on recording day — verify before relying