Homepage — Editing the Landing Page
Complete guide to editing the Dax Pro homepage: hero, trust, solutions, performance, showcase, pricing, insights, and contact sections. Edit via Decap CMS or directly in content/index.md.
What the Homepage Is
The homepage is the single most important page on your site. It is the first thing visitors see when they arrive from a search engine, a social media link, or a direct visit. It carries the weight of every marketing decision: what you say first, which section appears where, which call-to-action is primary, what number is highlighted in the hero metrics row.
In Dax Pro, the homepage is one file with many sections. Unlike other pages where the frontmatter is short and the body carries most of the content, the homepage inverts that pattern: the frontmatter carries almost everything, and the body is usually empty or contains only a heading.
The file is:
content/index.md
Every text you see on https://yoursite.com/ comes from this single file. Every image, every number, every label, every button — all of it originates from the frontmatter of index.md. If you can edit that one file, you can rebuild the entire homepage.
This chapter walks through the homepage section by section, in the order they appear visually. For each section, it explains what data it holds, how it renders, and how to edit it through both Decap CMS and the direct YAML approach.
How the Homepage Is Structured
The homepage has eight visual sections. They render in this fixed order:
| # | Section | Purpose |
|---|---|---|
| 1 | Hero | The main headline, lead paragraph, two CTAs, and three metrics |
| 2 | Trust | Four cards explaining why the product is reliable |
| 3 | Solutions | A bento grid of four cards — two with images, two with feature lists |
| 4 | Performance | A stats comparison chart plus a CMS highlights card |
| 5 | Showcase | A code snippet in a terminal-style box |
| 6 | Pricing | Three pricing tiers |
| 7 | Insights | Three recent blog posts pulled automatically |
| 8 | Contact | A call-to-action and a lead form |
Each section is rendered by its own partial template (home/hero.dax, home/trust.dax, and so on). You do not need to edit those templates to change the homepage. The templates read from the frontmatter of index.md. Change the frontmatter, the homepage changes.
Section order is fixed by the layout, not by the frontmatter. You cannot reorder sections without editing templates/layouts/home.dax, which is developer territory covered in the Developer Guide. For this chapter, assume the order stays as designed.
Method 1 — Editing the Homepage via Decap CMS
Decap CMS is the recommended way to edit the homepage for non-technical users. It presents the entire frontmatter as an organized form with sections, validation, and no YAML syntax to worry about.
Accessing the Homepage Editor
1. Open https://yoursite.com/admin/ in a browser
2. Log in with your editor credentials
3. In the left sidebar, find 🏠 Homepage
4. Click it
5. You will see Home Page in the file list
6. Click Home Page
The editor opens with all homepage sections as form fields, organized top-to-bottom in the same order they appear on the site.
The Editor Layout
The Decap CMS homepage editor is split into two areas:
- Left sidebar — the field list, grouped by section. Click any section to jump to it.
- Main panel — the form fields for the currently selected section.
- Save — saves as draft without publishing (rarely needed for the homepage)
- Publish — commits the change and triggers a rebuild
- Editorial Workflow (if enabled) — submits for review
Title Prefix:Enterprise Static Sites forTitle Highlight:.NETTitle Suffix:Teams- Metric 1: Value
99%, LabelUptime SLA - Metric 2: Value
2s, LabelBuild Time - Metric 3: Value
0, LabelServers to Maintain - Do not change
Span,Image Width, orImage Height. These are layout-dependent. Changing them breaks the bento grid. - Item 2 and Item 4 have
Feature 1throughFeature 4fields instead of images. Do not add images to those items — the layout does not accommodate images there. - Item 1 and Item 3 have images. Do not remove the images unless you want an empty media area.
- Tier 1 (Free):
https://dax.axcora.com - Tier 2 (Pro):
https://creativitaz.gumroad.com/l/dax-pro - Tier 3 (Custom):
https://www.fiverr.com/creativitas/design-your-website-with-progresive-web-application
At the top, a sticky toolbar has three buttons:
Most edits follow the same pattern: click a section, edit a field, click Publish.
Editing the Hero Section
The Hero is the top of the homepage. It has two columns: text on the left, image on the right.
In Decap CMS:
1. Click Hero in the left sidebar
2. You will see these fields:
| Field | What it does |
|---|---|
| Kicker | Small uppercase label above the headline. Default: Enterprise .NET Static Site Generator |
| Title Prefix | First part of the headline, before the highlight. Default: High-Velocity Static Architecture for |
| Title Highlight | The highlighted phrase in the headline, rendered in gradient color. Default: Microsoft .NET |
| Title Suffix | The rest of the headline after the highlight. Default: & Decap CMS |
| Lead | The paragraph under the headline. Two to three sentences. |
| CTA Primary | The primary button (filled, brand color) |
| CTA Primary → Text | Button label. Default: Request Enterprise Evaluation |
| CTA Primary → URL | Button destination. Default: #contact |
| CTA Secondary | The secondary button (outlined) |
| CTA Secondary → Text | Button label. Default: Inspect Dax Core Demo |
| CTA Secondary → URL | Button destination. Default: https://dax.axcora.com |
| Metrics | List of three metrics shown below the CTAs |
| Metrics → Value | The large number. Example: 0.04s |
| Metrics → Label | The small label under the number. Example: Static Build Pipeline |
| Image | The hero image URL |
| Image Alt | Alternative text for accessibility and SEO |
| Badge → Title | Title in the badge overlay. Default: Enterprise Ready .NET SSG |
| Badge → Description | Description in the badge overlay |
| Badge → Status | Status text in the badge. Default: STABLE 9.0 |
3. Edit any field
4. To change the headline, edit Title Prefix, Title Highlight, and Title Suffix together — they combine into one element with the middle part wrapped in a highlight span
5. Click Publish when done
Example — changing the headline:
If you want the headline to read "Enterprise Static Sites for .NET Teams" with ".NET" highlighted:
The three fields concatenate with spaces in between. If your desired headline does not have a natural highlight point, put the entire headline in Title Prefix and leave Title Highlight and Title Suffix empty.
Example — changing the three metrics:
The three metrics always display three items. Replace them with your own numbers:
Do not remove metrics. The layout expects exactly three. If you have only two, add a third with empty values — it renders as blank space but does not break the layout.
Editing the Trust Section
Four cards explaining reliability. Each card has an index label (like 01. COMPILED SPEED), a title, and a description.
In Decap CMS:
1. Click Trust in the left sidebar
2. Fields:
| Field | What it does |
|---|---|
| Kicker | Small uppercase label above the section title |
| Title | Section heading |
| Description | Section subheading paragraph |
| Cards | A list of four cards |
| Cards → Index | Card number badge. Example: 01. COMPILED SPEED |
| Cards → Title | Card title |
| Cards → Description | Card body text |
3. To edit a card, expand its row in the Cards list
4. To add a fifth card, click Add Cards (rarely needed — the grid is designed for four)
5. Click Publish when done
The number of cards is flexible but the grid layout assumes four. If you have five, the fifth wraps to a new row. If you have three, the fourth cell is empty. For best visual results, use exactly four.
Editing the Solutions Section
A bento grid with four cards. Two cards have images, two cards have feature lists. Each card spans a different number of columns.
In Decap CMS:
1. Click Solutions in the left sidebar
2. Fields:
| Field | What it does |
|---|---|
| Kicker | Small uppercase label |
| Kicker Class | CSS class for the kicker color. Leave as dax-kicker-azure. |
| Title | Section heading |
| Description | Section subheading |
| Item 1 | First bento card (largest, spans 8 columns) |
| Item 1 → Span | Number of grid columns. Do not change — the layout depends on this. |
| Item 1 → Tag | Small label. Example: CORE WORKFLOW AUTOMATION |
| Item 1 → Title | Card title |
| Item 1 → Description | Card body |
| Item 1 → Image | Image URL |
| Item 1 → Image Alt | Alt text |
| Item 1 → Image Width | Image display width in pixels. Do not change. |
| Item 1 → Image Height | Image display height in pixels. Do not change. |
| Item 2 | Second card (spans 4 columns) — has feature list instead of image |
| Item 2 → Feature 1–4 | The four bullet points |
| Item 3 | Third card (spans 6 columns) — image style |
| Item 4 | Fourth card (spans 6 columns) — feature list style |
| Explore Text | Text above the "explore" button |
| Explore Sub | Subtext below Explore Text |
| Explore CTA | Button label |
| Explore URL | Button destination |
Key rules:
Click Publish when done.
Editing the Performance Section
Two columns: on the left, a stats comparison (three horizontal bar charts); on the right, a CMS highlights card with a dark background.
In Decap CMS:
1. Click Performance in the left sidebar
2. Fields:
| Field | What it does |
|---|---|
| Kicker | Small label |
| Title | Section heading |
| Lead | Section subheading |
| Stats | List of three stat bars |
| Stats → Label | Left-side text of the bar. Example: Dax Pro (.NET SSG + Edge CDN) |
| Stats → Value | Right-side value. Example: 18ms TTFB |
| Stats → Color | Text color for the value. Leave as var(--dotnet-purple) |
| Stats → Bar Class | CSS class for the bar. dax-stat-bar-dax for filled bars, dax-stat-bar-legacy for gray bars |
| Stats → Width | Bar width as percentage. Example: 98% |
| Stats → Bar Background | Optional background override. Leave empty except for the green Lighthouse bar |
| CMS → Title | Card title |
| CMS → Subtitle | Card subtitle |
| CMS → Body | Card body paragraph |
| CMS → Highlights | Two highlight boxes in the card |
| CMS → Highlights → Value | Large value. Example: 100% |
| CMS → Highlights → Label | Small label. Example: Git Version Control |
Editing stats meaningfully: the three stats exist to compare "us" vs "them." Typically:
1. Your product with a low number and a wide bar
2. The alternative with a high number and a narrow bar
3. A third metric like Lighthouse or uptime
Keep the bar widths proportional to the values — if your number is 18ms and the competitor is 480ms, the bar widths should reflect that ratio (about 4% and 96%, not 98% and 25%). The default values in the file are illustrative; adjust to match your actual claims.
Editing the Showcase Section
A code snippet displayed in a terminal-style box with dots (red, yellow, green) at the top. The code is rendered line by line with syntax highlighting hints.
In Decap CMS:
1. Click Showcase in the left sidebar
2. Fields:
| Field | What it does |
|---|---|
| Kicker | Small label |
| Title | Section heading |
| Description | Section subheading |
| Filename | The filename shown in the terminal bar. Example: DaxSiteGenerator.cs — Microsoft .NET 9.0 |
| Copy Label | The "Copy Code" button label |
| Code Lines | The actual code, one row per line |
| Code Lines → Info | The text of one line |
| Code Lines → Token | Syntax highlight class. See below. |
Token values and their colors:
| Token | Color | Use for |
|---|---|---|
comment |
Gray italic | Comments (// ...) |
keyword |
Red/pink | Language keywords (using, var, await, new) |
type |
Blue | Class names, types (DaxPro.Core, Console) |
string |
Green | String literals ("content/articles") |
fn |
Yellow | Method calls (.Build(), .Create()) |
| (empty) | Default | Whitespace, punctuation, plain text |
To edit the code:
1. Expand Code Lines
2. Each row is one line of code
3. Edit the Info field to change the text
4. Change the Token field to change the color
5. To add a line, click Add Code Lines at the bottom
6. To remove a line, hover over it and click the trash icon
7. Empty lines use empty strings in both Info and Token — preserve those for spacing
Important: the code is displayed as plain text inside . HTML characters like < and > are rendered literally. If your code snippet includes HTML, keep in mind that it will display as-is (which is what you want for code display, but be aware that copying the rendered code may include HTML entities).
Editing the Pricing Section
Three pricing tiers displayed side by side. The middle tier (Pro) is visually highlighted with a "Most Popular" badge.
In Decap CMS:
1. Click Pricing in the left sidebar
2. Fields:
| Field | What it does |
|---|---|
| Kicker | Small label |
| Title | Section heading |
| Description | Section subheading |
| Tier 1 | First tier (leftmost) |
| Tier 2 | Second tier (middle, highlighted) |
| Tier 3 | Third tier (rightmost) |
Each tier has these fields:
| Field | What it does |
|---|---|
| Name | Tier name. Example: Free, Pro, Custom |
| Tagline | Short description under the name |
| Currency | Currency symbol. Example: $ |
| Price | Numeric price. Example: 0, 199, Custom |
| Period | Payment period. Example: / forever free, / lifetime license |
| Featured | Boolean (Tier 2 only). true highlights the card. |
| Flag | Badge text (Tier 2 only). Example: MOST POPULAR |
| Feature 1 through Feature 4 | The four checklist items |
| CTA Text | Button label |
| CTA URL | Button destination |
| CTA Class | Button style. dax-btn-primary for filled, dax-btn-secondary for outlined |
Tier 2 is always featured. Do not toggle Featured off unless you want all three tiers to look identical. The Flag field only renders when Featured is true.
CTA URLs in the default config:
These are Gumroad and Fiverr purchase links. If you sell through a different channel, replace the URLs.
Editing the Insights Section
This section is mostly automatic. It displays the three most recent blog posts from content/posts/. You do not select which posts appear — Dax Pro pulls them based on date.
In Decap CMS:
1. Click Insights in the left sidebar
2. Fields:
| Field | What it does |
|---|---|
| Kicker | Small label |
| Title | Section heading |
| Description | Section subheading |
| Read More | The "read more" link label shown on each post card |
| CTA → Text | The "view all" button label |
| CTA → URL | The "view all" button destination. Default: /posts/ |
You cannot control which posts appear here from this section. To change the three displayed posts, edit the date field of individual posts in content/posts/. The three with the newest dates appear on the homepage.
Editing the Contact Section
The bottom of the homepage. Two columns: left side has a headline, guarantees list, and email; right side has a form.
In Decap CMS:
1. Click Contact in the left sidebar
2. Fields:
| Field | What it does |
|---|---|
| Kicker | Small label above the heading |
| Title | Section heading |
| Subtext | Paragraph under the heading |
| Guarantees | List of three bullet points on the left |
| Email Label | Label above the email. Example: Enterprise Desk: |
Email address. Example: [email protected] |
|
| Fields | The form fields (four fields in a list) |
| Submit | The form submit button label |
Each form field has these settings:
| Field | What it does |
|---|---|
| ID | HTML id attribute. Must be unique. |
| Name | HTML name attribute. Used in form submission. |
| Label | Visible label above the input |
| Type | text, email, select, or textarea |
| Placeholder | Placeholder text inside the input |
| Required | Boolean — does the field require a value? |
| Option 1–3 Value/Label | For select type only. The dropdown options. |
The contact form on the homepage submits via JavaScript to a Formspree-style endpoint. The form action is set inside the home/contact.dax template, not in index.md. If you want to change the submission destination, you need to edit the template. For most users, the default Formspree endpoint should be replaced with your own — see the Contact Page chapter for how to set up a Formspree endpoint and where to update the template.
Click Publish when done.
Publishing the Homepage
After editing any section:
1. Click Publish in the top-right corner
2. A confirmation toast appears: "Entry saved"
3. Decap CMS commits the change to Git with a descriptive message
4. Your host detects the commit and rebuilds
5. Wait 30–60 seconds
6. Open the homepage in a browser and refresh
7. The change is live
If the change does not appear after a minute, check the host's deploy log. If the build failed, the log shows why — usually a syntax error in the YAML, caught by Decap CMS validation but not always with a clear message.
Method 2 — Editing the Homepage Directly
For developers, editing content/index.md directly in VS Code is faster and gives full control. The frontmatter is YAML; the body is Markdown.
Opening the File
code content/index.md
Or in VS Code's sidebar, expand content/ and click index.md.
The file starts with --- (frontmatter start), contains many sections of YAML, and ends with --- (frontmatter end). If there is a body after the closing ---, it is usually empty for the homepage.
Understanding the Frontmatter Structure
The frontmatter is nested. The top-level keys are section names:
---
layout: home.dax
title: "Dax Pro — Enterprise .NET Static Site Generator & Decap CMS"
description: "..."
image: "..."
hero:
kicker: "..."
title_prefix: "..."
# ...
trust:
kicker: "..."
# ...
solutions:
kicker: "..."
item1:
# ...
item2:
# ...
# ...
performance:
# ...
showcase:
# ...
pricing:
tier1:
# ...
tier2:
# ...
tier3:
# ...
insights:
# ...
contact:
# ...
Indentation matters. Two spaces per level. A field under hero is indented two spaces from the left. A field under hero.cta_primary is indented four spaces.
Quotes matter. Every string value should be quoted. Numbers can be unquoted (span: 8), booleans can be unquoted (featured: true), but everything else uses double quotes.
No tabs. If your editor inserts tabs, configure it to insert spaces.
Editing Specific Sections
To change the hero headline:
Find the hero block and edit these three lines:
hero:
title_prefix: "Enterprise Static Sites for"
title_highlight: ".NET"
title_suffix: "Teams"
These three lines concatenate on the rendered page.
To change the hero metrics:
Find the hero.metrics list:
metrics:
- value: "99%"
label: "Uptime SLA"
- value: "2s"
label: "Build Time"
- value: "0"
label: "Servers to Maintain"
Each metric has a value and a label. The list length should be exactly three.
To change the hero image:
hero:
image: "/images/hero-main.webp"
image_alt: "The main hero image showing our product"
The image path must start with /. Place the actual file in public/images/.
To change the trust cards:
Each card has three fields:
trust:
cards:
- index: "01. COMPILED SPEED"
title: "Compiled C# Performance"
desc: "Built directly upon .NET Ahead-Of-Time..."
- index: "02. DECAP CMS"
title: "Decoupled Git Authoring"
desc: "Editorial teams write inside..."
# ... two more cards
Each card is a list item under cards:. Add, remove, or edit freely. Keep exactly four for best layout.
To change a pricing tier:
pricing:
tier1:
name: "Free"
tagline: "Full open-source DAX SSG."
currency: "$"
price: "0"
period: "/ forever free"
feature1: "Pure C# Slim Static Site Generator"
feature2: "Auto SEO, Collections, Tags, Pagination"
feature3: "Minimal Starter Template"
feature4: "Deploy to Netlify, Vercel, Cloudflare"
cta_text: "Get Free on dax.axcora.com"
cta_url: "https://dax.axcora.com"
cta_class: "dax-btn-secondary"
The tier is a single object with these fields. Each feature is a separate string. The cta_class determines button style (dax-btn-primary filled, dax-btn-secondary outlined).
To change the contact form fields:
Each form field is a list item under contact.fields:
contact:
fields:
- id: "contact-name"
name: "name"
label: "Full Name"
type: "text"
placeholder: "e.g. Sarah Jenkins"
required: true
- id: "contact-email"
name: "email"
label: "Corporate Email"
type: "email"
placeholder: "[email protected]"
required: true
Field types supported by the template:
| Type | Renders as |
|---|---|
text |
|
email |
|
select |
(requires opt1_value, opt1_label, opt2_*, etc.) |
textarea |
|
For select fields, add opt1_value, opt1_label, opt2_value, opt2_label, and so on up to the number of options you need.
Rebuilding After Direct Edits
dotnet run -- build
Or, if the development server is running:
dotnet run -- start
The development server watches files and rebuilds on save. Refresh the browser to see the change.
For deployed sites:
git add content/index.md
git commit -m "Update homepage"
git push
The host detects the push, rebuilds, and deploys.
Section-by-Section Reference
This table lists the frontmatter keys for each section. Use it as a quick lookup when editing.
Hero
hero.kicker
hero.title_prefix
hero.title_highlight
hero.title_suffix
hero.lead
hero.cta_primary.text
hero.cta_primary.url
hero.cta_secondary.text
hero.cta_secondary.url
hero.metrics[].value
hero.metrics[].label
hero.image
hero.image_alt
hero.badge.title
hero.badge.desc
hero.badge.status
Trust
trust.kicker
trust.title
trust.description
trust.cards[].index
trust.cards[].title
trust.cards[].desc
Solutions
solutions.kicker
solutions.kicker_class
solutions.title
solutions.description
solutions.item1.span
solutions.item1.tag
solutions.item1.title
solutions.item1.desc
solutions.item1.image
solutions.item1.image_alt
solutions.item1.image_w
solutions.item1.image_h
solutions.item2.span
solutions.item2.tag
solutions.item2.title
solutions.item2.desc
solutions.item2.feature1
solutions.item2.feature2
solutions.item2.feature3
solutions.item2.feature4
solutions.item3.span
solutions.item3.tag
solutions.item3.title
solutions.item3.desc
solutions.item3.image
solutions.item3.image_alt
solutions.item3.image_w
solutions.item3.image_h
solutions.item4.span
solutions.item4.tag
solutions.item4.title
solutions.item4.desc
solutions.item4.feature1
solutions.item4.feature2
solutions.item4.feature3
solutions.item4.feature4
solutions.explore_text
solutions.explore_sub
solutions.explore_cta
solutions.explore_url
Performance
performance.kicker
performance.title
performance.lead
performance.stats[].label
performance.stats[].value
performance.stats[].color
performance.stats[].bar_class
performance.stats[].width
performance.stats[].bar_bg
performance.cms.title
performance.cms.subtitle
performance.cms.body
performance.cms.highlights[].value
performance.cms.highlights[].label
Showcase
showcase.kicker
showcase.title
showcase.description
showcase.filename
showcase.copy_label
showcase.code[].info
showcase.code[].token
Pricing
pricing.kicker
pricing.kicker_class
pricing.title
pricing.description
pricing.tier1.name
pricing.tier1.tagline
pricing.tier1.currency
pricing.tier1.price
pricing.tier1.period
pricing.tier1.feature1
pricing.tier1.feature2
pricing.tier1.feature3
pricing.tier1.feature4
pricing.tier1.cta_text
pricing.tier1.cta_url
pricing.tier1.cta_class
pricing.tier2.name
pricing.tier2.tagline
pricing.tier2.currency
pricing.tier2.price
pricing.tier2.period
pricing.tier2.featured
pricing.tier2.flag
pricing.tier2.feature1
pricing.tier2.feature2
pricing.tier2.feature3
pricing.tier2.feature4
pricing.tier2.cta_text
pricing.tier2.cta_url
pricing.tier2.cta_class
pricing.tier3.name
pricing.tier3.tagline
pricing.tier3.currency
pricing.tier3.price
pricing.tier3.period
pricing.tier3.feature1
pricing.tier3.feature2
pricing.tier3.feature3
pricing.tier3.feature4
pricing.tier3.cta_text
pricing.tier3.cta_url
pricing.tier3.cta_class
Insights
insights.kicker
insights.title
insights.description
insights.read_more
insights.cta.text
insights.cta.url
Contact
contact.kicker
contact.title
contact.subtext
contact.guarantees[]
contact.email_label
contact.email
contact.fields[].id
contact.fields[].name
contact.fields[].label
contact.fields[].type
contact.fields[].placeholder
contact.fields[].required
contact.fields[].opt1_value
contact.fields[].opt1_label
contact.fields[].opt2_value
contact.fields[].opt2_label
contact.fields[].opt3_value
contact.fields[].opt3_label
contact.submit
Common Homepage Editing Mistakes
Mistake 1: Changing hero.title_prefix without updating the highlight.
If you change title_prefix to a longer phrase but leave title_highlight: "Microsoft .NET" and title_suffix: "& Decap CMS", the headline becomes a Frankenstein sentence. Always update all three fields together.
Mistake 2: Changing solutions.item1.span.
span: 8 means "this bento card spans 8 of 12 grid columns." Changing it to 6 or 12 breaks the layout. Leave spans as they are. The values are: Item 1 = 8, Item 2 = 4, Item 3 = 6, Item 4 = 6.
Mistake 3: Adding a fifth trust card.
The trust grid is designed for four cards. A fifth card wraps to a second row, creating an awkward layout. If you have more than four benefits, split them across sections or combine two into one.
Mistake 4: Putting a colon in an unquoted YAML value.
title: Our Solution: The Best # wrong — parses as key "title" value "Our Solution" plus a broken second key
title: "Our Solution: The Best" # correct
Any value containing a colon must be quoted.
Mistake 5: Removing metrics or adding a fourth.
The hero metrics row is fixed at three columns. Exactly three metrics fit. Remove one, and the third column is empty. Add one, and it breaks to a second row.
Mistake 6: Using uppercase tags in posts.
Even though posts are a different chapter, this mistake surfaces on the homepage Insights section. If you add tags: ["DotNet"] to a post, the tag URL /tags/DotNet/ will 404 because the tag page is generated at /tags/dotnet/. Always use lowercase tags in posts.
Mistake 7: Editing the wrong file for content changes.
Blog posts on the homepage Insights section are pulled from content/posts/. Changing insights.title changes the section heading, not the post titles. To change a displayed post, edit the post itself.
Mistake 8: Forgetting the build.
If you edit index.md and refresh the browser without running dotnet run -- build (or without the development server running), you will see the old version. Always rebuild.
Verifying Your Homepage Changes
After editing (by either method), verify:
1. Hero — headline, lead, buttons, metrics render correctly
2. Trust — four cards in a 4-column grid (2×2 on tablet, 1-column on mobile)
3. Solutions — bento grid with two image cards and two feature-list cards, correct spans
4. Performance — three stat bars with correct widths and labels, CMS card on the right
5. Showcase — code block with syntax highlighting, filename, copy button
6. Pricing — three cards, middle card visually highlighted
7. Insights — three post cards with images, titles, excerpts, read-more links
8. Contact — form with all fields, submit button, email on the left
Resize the browser to tablet and mobile widths. All sections should stack vertically, images should resize, and text should wrap cleanly. If something overflows horizontally on mobile, that is a CSS issue — check the Developer Guide for responsive fixes.
What You Have Now
After this chapter, you can:
content/index.mdThe homepage is now yours. It reflects your brand, your product, your pricing. The next chapter covers static pages — about, privacy, terms, license, and any other non-collection page you want to add.
→ Continue to Static Pages