A page is a vertical stack of blocks. Each block is a small, typed piece — a hero banner, a chunk of text, a gallery, a spacer, a dynamic list of articles. Pick the right block for the job and you don't have to fight the editor. Here's what each of the nine types is for.
Hero Banner
A full-width banner for the top of the page. Has a headline, a sub-headline, a background image, and an optional call-to-action button. Use it once, at the top.
Good for: the first thing a visitor sees — the pitch, the value prop, the "what is this site."
Text Content
A block of HTML. Free-form body text with headings, paragraphs, lists, links, inline images — whatever rich HTML supports. This is the workhorse block for actual prose.
Good for: paragraphs, "About" sections, feature descriptions, anything that reads like an article.
Image + Text
An image on one side, a text column on the other. Usually used in series, alternating which side the image sits on, to produce a feature-tour feel.
Good for: feature callouts, team-member rows, step-by-step walkthroughs with illustrations.
Image Gallery
Embeds a reusable, named gallery of images with a choice of five display styles (grid, masonry, slider, thumbnails, cover) and an optional lightbox. See Image galleries for how to build one and where else it can go — it also works as a sidebar/footer widget.
Good for: screenshot galleries, portfolios, photo roll-ups.
Call to Action (CTA)
A prominent button with a headline and optional sub-text. Standalone — designed to interrupt the reading flow and push the visitor toward a conversion.
Good for: "Get started", "Contact us", "Sign up for the beta" — anywhere you want a hard conversion moment.
Custom HTML
A raw HTML escape hatch. Paste any markup — embeds, iframes, custom widgets, third-party scripts. Whatever you put in gets rendered verbatim inside the page flow.
Good for: video embeds, custom designs the other block types can't express. Careful: you own the HTML you paste — broken markup shows as broken layout.
Spacer
Empty vertical space. That's the whole block. Configure a height; the block renders that much blank space between its neighbors.
Good for: breathing room between sections when two adjacent blocks sit too tight, or when you want a visual break without a CSS tweak.
Form
A contact, signup, or inquiry form. You define the fields — text, email, phone, textarea, dropdown, radio, or checkbox, each with its own label and required/optional flag — and OmniCon renders, validates, and stores every submission.
A submission emails whoever you configure as the recipient, with the submitted values filled into a subject/body template you control (tokens like {fields.email}), and optionally sends an autoresponder back to the person who submitted it. Every submission is also saved and reviewable from the page's Form submissions list.
Requires reCAPTCHA keys configured for the channel (channel settings → Integrations) — without them, the form won't accept submissions.
Good for: contact forms, event signups, quote requests — anywhere you need visitor input, not just a click.
Search Results
A dynamic list of articles fetched at render time, filtered by folder, tag, keyword, or author. Unlike the other blocks, the content isn't typed in — the block runs a search against the channel and shows the matches.
Configure with: an optional heading, filters (Folder, Tag, Keyword, AuthorPermaName — all optional, AND'd together), sort order (newest/oldest/title), a limit (1–50), and a layout (grid of cards or list of rows). Toggles let you show or hide the image, description, date, and author per card. Folder match is exact — /recipes matches articles whose folder equals /recipes, not sub-folders.
Good for: a "Recipes" page that lists every article in /recipes; a "News" page filtered to tag=news; an author's portfolio page filtered by their permaName. No hand-maintained list — publish a new matching article, it appears on the page next render.
Set Hide when empty if you'd rather the block disappear than show "No articles found." when the filter doesn't match anything. Public visitors see cached results (so two blocks with the same filter share one query); signed-in editors bypass the cache for live preview.
Choosing the right block
- "I just want paragraphs" → Text Content.
- "I want a big headline with a background image" → Hero Banner.
- "I want to sell a feature with a screenshot next to it" → Image + Text.
- "I want a button that drives sign-ups" → CTA.
- "I want to show off a bunch of photos" → Image Gallery.
- "I want to collect a submission from visitors" → Form.
- "I want this page to list every article matching some filter" → Search Results.
- "The block types don't fit what I want" → Custom HTML.
- "These two blocks look cramped" → Spacer between them.