Open-source web UI for the Landing Page Optimizer Agent — powered by UPLIZD. The hosted flow analyzes landing performance and shapes A/B tests using gpt-4o-mini, a composable instruction block (
{agent}+{rules}for Growth Hacker persona and execution rules), plus Google Analytics (Composio, OAuth2), Firecrawl (CRAWL, timeout 10), and Web Search (PERFORM_SEARCH).
This repo is only the playground UI + Express proxy. Integrations run inside your UPLIZD flow—configure OpenAI, Composio, and Firecrawl in-studio, not in .env.
Browser → React UI → POST /api/run (proxy) → UPLIZD API → Landing Page Optimizer flow
| Piece | Role |
|---|---|
| Chat Input | User shares URLs, GA context, experiment goals, competitor names |
| Prompt template | Fuses {agent} + {rules} from Text Input nodes → Agent Instructions |
| Language Model | gpt-4o-mini |
| Google Analytics (Composio) | Traffic, behavior, conversion signals (OAuth2) |
| Firecrawl | Crawl landing URLs; template uses CRAWL action, timeout 10 |
| Web Search | PERFORM_SEARCH for benchmarks / competitor copy |
| Chat Output | Recommendations, test hypotheses, next steps |
Prerequisites (in the flow): OpenAI API key, Composio API key, Firecrawl API key; complete GA auth through Composio.
- Chat playground aligned with Chat Input / Chat Output
- Secure proxy —
UPLIZD_API_KEYnever sent to the browser - Quick prompts for GA + crawl + search workflows
- Dark mode — follows system preference
- Session ID — “New session” rotates
session_id
Ideas for fork-level or flow-level extensions without changing this repo’s proxy/UI contract (POST /api/run, chat in → chat out):
- Experiment backlog — In the UPLIZD flow, add rules so the agent outputs a ranked table: hypothesis, primary metric, minimum sample, guardrails (e.g. bounce vs. conversion).
- Segment-aware optimization — Extend
{rules}so GA context is requested by traffic source or landing cohort before recommending copy or layout tests. - Competitor tear-down mode — Quick prompts that force Firecrawl + Web Search to produce a side-by-side (hero, CTA, proof, pricing cues) before suggesting tests on your URL.
- Locale / brand voice — Extra Text Input or rules block for tone, forbidden claims, and language so outputs stay compliant while testing headlines.
| Layer | Tech |
|---|---|
| Frontend | React 18 + Vite |
| Proxy | Express (Node.js) |
| Workflow | UPLIZD Marketplace |
- Node.js ≥ 18
- UPLIZD account + API key
- Flow installed from Marketplace when published (or import the template)
→ Landing Page Optimizer Agent on UPLIZD Marketplace
- Install the flow and open it in the editor.
- Copy Flow ID from the URL.
- Settings → API Keys — copy your UPLIZD key.
- In the flow: set OpenAI on the model node; Composio on Google Analytics + Web Search toolsets; Firecrawl API on the crawl node; verify CRAWL + timeout 10 and PERFORM_SEARCH.
git clone https://github.com/YOUR_ORG/landing-page-optimizer-agent.git
cd landing-page-optimizer-agent
cp .env.example .envUPLIZD_API_KEY=your_api_key_here
UPLIZD_FLOW_ID=your_flow_id_herenpm run install:all
npm run dev| Variable | Required | Description |
|---|---|---|
UPLIZD_API_KEY |
✅ | Your UPLIZD API key |
UPLIZD_FLOW_ID |
✅ | Flow ID after install |
UPLIZD_BASE_URL |
— | Default https://studio.uplizd.ai |
PORT |
— | Proxy (default 3001) |
CORS_ORIGIN |
— | Default http://localhost:5173 |
FLOW_INPUT_TYPE / FLOW_OUTPUT_TYPE |
— | Default chat |
landing-page-optimizer-agent/
├── .env.example
├── .gitattributes
├── package.json
├── server/index.js
├── web/
└── docs/
├── workflow.png
├── setup.md
└── contributing.md
See docs/contributing.md.
MIT — see LICENSE.
