Landing Agents
AI landing-page builder for Arabic sellers — it plans a sales page section by section, generates the visuals with Gemini, then publishes it to Cloudflare Pages with a WooCommerce checkout attached.
- My Role
- Full Stack Developer
- Timeline
- May 2025 — Apr 2026
- Status
- Shipped

Landing Agents turns a plain-language business description into a working sales page. A seller writes a few sentences about what they sell; a set of Gemini-driven agents plans the page structure, writes each section, generates the imagery, and keeps iterating with the user until the page is ready — ending with a live deployment on Cloudflare Pages and a WooCommerce checkout wired in.
The backend is a Fastify server organized around DDD and CQRS: generation and publishing run as commands on the write side, while the builder UI reads through dedicated query handlers. The React client follows MVVM — views stay purely presentational and ViewModels own the builder's state and logic — so the interface can evolve without touching the business rules underneath.
The problem to solve
Most sellers who need a landing page cannot write conversion copy, design page sections, or set up hosting and checkout — and a single one-shot LLM prompt hands them a generic wall of text they cannot meaningfully revise. The real problem was structural: turning an open-ended business description into a page that is planned, generated, and revised piece by piece, while keeping the generation workflow, the editing state, and the publishing pipeline coherent behind one API.
How it was built
The generation flow is split into agents with narrow jobs: one plans the page as an ordered sequence of sections, others generate the copy and Gemini visuals per section, and the iteration loop lets the user push back on any single section without regenerating the whole page. On the server, DDD keeps the domain model separate from the transport layer, and CQRS separates the mutation-heavy generation commands from the reads the builder UI depends on. The client is MVVM React: pages render state, ViewModels orchestrate the agent calls and edits.
Publishing is a command like any other — the finished page ships to Cloudflare Pages with a WooCommerce checkout attached, so the output sells instead of just displaying.
What it does
Describe-to-build input
A seller describes their business in plain language, and that description is the only input the system needs — the agents derive the page plan, copy, and visuals from it.
Section-by-section planning
An agent plans the sales page as an ordered sequence of sections before any content is generated, so the result has deliberate structure instead of one long block of AI text.
Gemini visual generation
Page imagery is generated with Gemini to fit the planned sections, so each page gets visuals specific to the business rather than stock photos.
Agent-driven iteration
Generation is a loop, not a one-shot: the user pushes back and the agents revise the page, section by section, until it fits the business.
Cloudflare Pages publishing
The finished page is deployed to Cloudflare Pages as part of the flow — hosting is handled by the product, not left as homework for the seller.
Attached WooCommerce checkout
Every published page ships with a WooCommerce checkout attached, so the landing page works as a point of sale rather than a brochure.
Built with
Frontend
Next.js hosts the MVVM React client, providing routing and rendering out of the box while page components stay presentational and all builder logic lives in ViewModels.
Backend
Fastify's low-overhead, schema-validated routes give the DDD + CQRS server a clean transport layer, with each command and query mapping onto a typed endpoint.
Data
PostgreSQL backs the write side with relational, transactional storage, keeping pages, sections, and generation state consistent as commands mutate them.