Overview
By the end of this guide, you’ll have:- A site with three page types (Homepage, Blog Post, About)
- Five reusable blocks (Hero, Text, Image, Card Grid, Footer)
- A working navigation system
- Content ready for editors to manage
Prerequisites
- Primo installed and running (Installation guide)
- Basic familiarity with HTML, CSS, and JavaScript
- Understanding of core concepts
Step 1: Create Your Site
Initialize the site
Configure basic settings
- Site Name: The name that appears in navigation and metadata
- Domain: Your site’s domain (or subdomain for Cloud users)
- Default Language: Set to your primary language
Step 2: Build Your Component Library
Before creating page types, let’s build the blocks that will power your pages. We’ll create five essential blocks.Block 1: Hero
The Hero block will be the first thing visitors see on your homepage.Create the Hero block
Write the component
Add fields
headline(Text) - Main headlinesubheadline(Text) - Supporting textcta_text(Text) - Button textcta_link(Text) - Button destination URLbackground_image(Image, optional) - Background image URL
Block 2: Text
A simple text block for content sections.Create the Text block
Write the component
Add fields
content(Rich Text) - The main contentalignment(Select) - Options: “left”, “center”, “right”
Block 3: Image
A block for displaying images with optional captions.Create the Image block
Write the component
Add fields
image(Image) - The image to display (includes URL and alt text)alt_text(Text, optional) - Override alt text if neededcaption(Text, optional) - Image captionfull_width(Switch/Toggle) - Whether to use full width
Block 4: Card Grid
A flexible grid for displaying cards (useful for features, team members, etc.).Create the Card Grid block
Write the component
Add fields
cards(Repeater) - Array of card objects with:title(Text)description(Text, optional)image(Image, optional)link(Text, optional)
columns(Number) - Number of columns (default: 3)
Block 5: Footer
A site-wide footer block.Create the Footer block
Write the component
Add fields
copyright_text(Text) - Copyright noticelinks(Repeater) - Footer links with:label(Text)url(Text)
Step 3: Define Page Types
Now let’s create three page types that use these blocks.Page Type 1: Homepage
Create Homepage page type
Configure available blocks
- Hero
- Text
- Image
- Card Grid
Add page fields
meta_title(Text) - SEO titlemeta_description(Text) - SEO description
Page Type 2: Blog Post
Create Blog Post page type
Configure available blocks
- Text
- Image
Add page fields
title(Text, required) - Post titleauthor(Text) - Author namepublish_date(Date) - Publication datefeatured_image(Image) - Featured imageexcerpt(Text) - Short descriptionmeta_title(Text) - SEO titlemeta_description(Text) - SEO description
new Date(publish_date).toLocaleDateString() in your components to format it for display.Page Type 3: About
Create About page type
Configure available blocks
- Hero
- Text
- Image
- Card Grid
Add page fields
meta_title(Text) - SEO titlemeta_description(Text) - SEO description
Step 4: Create Pages
Now let’s create actual pages using these page types.Create the Homepage
Create homepage page
Add blocks
- Hero - Add compelling headline and CTA
- Text - Add an introduction section
- Card Grid - Add 3 feature cards
- Text - Add a closing section
Fill in content
- Hero: Welcome message and primary CTA
- Text: Introduction to your site
- Card Grid: Three feature highlights
- Text: Call to action or closing message
Set page metadata
- Meta title: “Home - My Site”
- Meta description: “Welcome to my site built with Primo”
Create a Blog Post
Create blog post
Fill page fields
- Title: “Getting Started with Primo”
- Author: Your name
- Publish date: Select a date from the date picker
- Excerpt: A short description
Add content blocks
- Text block with your blog post content
- Image block for illustrations
Create the About Page
Create about page
Build the page
- Hero - “About Us” headline
- Text - Your story
- Card Grid - Team members or values
- Image - Team photo or office image
Step 5: Add Footer to Page Types
Add the Footer block to each page type so it appears on every page:Add Footer to Homepage page type
Add Footer to other page types
Configure footer content
- Copyright text
- Footer links (Privacy Policy, Terms, Contact, etc.)
Step 6: Publish Your Site
Review all pages
Publish pages
What You’ve Built
You now have:- ✅ A complete site structure with three page types
- ✅ Five reusable blocks in your component library
- ✅ Multiple published pages with real content
- ✅ Navigation and footer configured
- ✅ A site ready for content editors