Building a landing page in one wizard run

Building a landing page in one wizard run

The one-page site is the most common and most tedious order there is. Hosted builders charge a subscription and pin their own banner on top, the freelancer promises “a week, tops” and vanishes at the revision stage, and a stock template is recognized on sight. In essence you need a single screen: what this is, what it costs, where to write.

DynapiCMS ships a wizard for this. Answer a short form and you get a published page at your project’s address: a header with anchors, stats, a menu, testimonials, an FAQ, a lead form, a dark theme. The page stays in your project as CMS records, template files and a couple of flows — everything is editable by hand, no code required.

Here I run the wizard from the first button to a live address: the coffee shop «Тёплый пар» (“Warm Steam”), a clean demo project, a screenshot for every step. The landing takes the project root — warmsteam.dynapi.ru/.

The landing after the run: the “Warm Steam” hero with the “Order coffee” and “See the pricing” buttons; the header anchors are “Why us”, “Menu”, “FAQ”, “Contacts”

First, advice: run it on a demo project

The wizard creates content types, files and flows in the project you launch it from. Make the first run on a separate demo project: nothing is at risk there, you can examine the result at your own pace — and only then repeat it where the page is actually needed.

In the admin panel: “Site” → the “Flows” tab → “Create flow”. Instead of a form, a “What are we creating?” gallery opens — cards with an icon and a description; among them a captcha form, a Telegram notification, a JSON endpoint, a page, YooKassa payments. Pick “Landing page”.

The “What are we creating?” gallery: flow cards — “Captcha form”, “Telegram notification”, “JSON endpoint”, “Page”, “YooKassa payments”; the “Landing page” card sits at the bottom

The slug and the address are not asked for at this step: by default the wizard puts the page at /lp, and on a name collision it takes the next free name without overwriting anything. We want the landing to be the whole site — the path is changed in the form below.

Step 2. A form instead of a brief

Next comes a single form on one screen:

  • “Product name” and “Offer in one sentence” — they become the hero title and subtitle;
  • “Button label” — instead of a faceless “Submit” you get “Order coffee”;
  • “Accent color” — four palettes: indigo, emerald, graphite, amber;
  • twelve block toggles — from client logos to the lead form;
  • “Page path” — /lp by default; a landing that owns the whole site gets /;
  • “SEO description” and “Open Graph image”.

The wizard form filled in for a coffee shop: the frame shows the block toggles from “About the product” to “Lead form”, the page path /, and an SEO description about 30-minute delivery

I fill it in: “Warm Steam”, “Specialty coffee and desserts delivered in 30 minutes”, the button “Order coffee”, the emerald palette, all blocks on, path /.

There is no “site address” field in the form, because the wizard does not need one: the canonical link, og:url and structured data are built from the request host — on a subdomain they point at that subdomain, on a custom domain, at that domain. The same content works at any address without regeneration. The image from the form becomes og:image, so a link shared in a messenger carries a cover.

Step 3. The “What will be created” plan

Before running, the wizard shows a plan — the list of operations it is about to perform. You see exactly what will appear in the project.

The “What will be created” plan: rows for creating content types — landing header, menu items, landing sections — and the first record-to-section links

Twenty content types: “Landing page”, “Landing hero”, “Landing meta”, “Landing SEO”, “Landing header”, “Menu items”, “Landing form”, “Landing sections”, eleven fill types, and “Landing leads”. Then the links: pricing records go to the menu section, questions go to the FAQ section — every section receives its content through links, and the hub page ties the roles together. The plan ends with the landing.liquid template, styles, a script, the page flow, the lead-processing flow and the route.

The template contains no placeholder copy: the words from the form land in the project as records; markup and logic are all that is left to the template.

Done — and already published

The run ends with a working address: the wizard publishes the template, the static files, the flows and the route itself. We asked for the root instead of the default /lp — the wizard moved the binding and reported it with a “Page moved: /lp → /” toast. The flow list shows “Landing page” and “Landing leads”, both “Published”, both on /.

The flow list after the run: “Landing leads” and “Landing page”, both published and bound to the / route

The page opens on the public domain right away — there is no separate “now publish the draft” step.

Where everything lives after the run

Everything the wizard created stays an ordinary platform object: six months later the slogan still lives where it did on day one — in the “Landing hero” record.

Content — in the CMS. The menu is three “Landing pricing” records: a name, a price and a list of what is included. Questions are four “Landing FAQ” records; stats, testimonials, the team and the gallery have their own types. Every section is a record in “Landing sections”, and that record holds links to its content in the items field. Menu links are records in “Menu items”: adding or removing a link is a one-record change.

The “Menu” section on the live landing: espresso for 150 ₽, cappuccino for 230 ₽ with a “Popular” badge, and the “Warm Steam” house raf for 280 ₽

Presentation — in files. The landing.liquid template with landing.css and landing.js next to it: responsive layout, light and dark themes, aria attributes, focus styles, OG and Twitter meta, canonical and JSON-LD — WebSite and FAQPage when the FAQ block is on.

Logic — in flows. The page flow makes three content queries and renders the template; the main one fetches the “Landing page” record that ties the whole site together. The form is a separate flow with a honeypot field against bots: the POST goes to the same page address, leads land in the “Landing leads” type and appear in the admin as ordinary records.

Twelve toggles

Every block is a toggle in the form: logos, stats, features, about, steps, gallery, pricing, testimonials, FAQ, team, call to action, form. Turn one off — the section disappears entirely. The order of the toggles sets the order of the sections: the form reads like a table of contents.

The form is the heaviest toggle: without it the wizard creates neither the “Landing form” type, nor “Landing leads”, nor the lead-processing flow.

This is how a landing adapts to the task: a coffee shop needs the menu and a gallery of the room, a consultant needs testimonials and an FAQ, an event needs a program and a registration form. One wizard, different pages, no template edits.

Edits and moves

After publication, texts are edited in records — like any project content. A second run on the same project leaves existing records untouched. If the address no longer suits you, change the path in the flow settings: the page moves, the old route is cleaned up, and a “Page moved: A → B” toast confirms it.

The theme follows the visitor’s system setting by default, and the header has a manual toggle — the choice is remembered. Check the page in both themes.

Frequently asked questions

Do I need a developer?

No. The run — the form and the publication — happens entirely in the admin panel; edits afterwards go to records and files. You look into the template only when you want to change the markup.

What appears in the project after a run?

Up to twenty content types with records holding your copy (some depend on the blocks you switch on), a template with styles and a script, two flows, and a route on the path you chose.

Can the address change after publication?

Yes. Change the path in the flow settings — the page moves and the old route is cleaned up.

What happens if I run the wizard a second time?

It leaves existing records untouched. A second run is for a clean project or for rebuilding links; refreshing content is not what it does.


A landing page is usually needed “yesterday”: a five-minute form, edits in the CMS without revision rounds with a developer. How the site flows and files work under the hood is covered in the documentation; the wizard creates exactly the same entities, so you can take your page apart at any time.

Documentation: site flows and files.


All posts