Skip to main content

Sections Reference

Complete guide to all section types and their configuration options. Each section can be customized through config.json.

Hero Section

The hero section is typically the first thing visitors see. It features your name, tagline, and optional avatar.

Variants

Hero comes with 6 variants, each with a different layout and style:

VariantDescription
centeredClassic centered layout with avatar and text
splitSide-by-side layout with avatar on one side
minimalText-only, ultra-minimal design
boldLarge, attention-grabbing typography
cardContent in a card with subtle shadow
linksIncludes social links directly in the hero

Configuration

{
"type": "hero",
"enabled": true,
"variant": "centered",
"name": "Your Name",
"tagline": "Your professional tagline",
"avatar": "/img/avatar.png",
"showAvatar": true,
"links": [] // Only for "links" variant
}
FieldTypeRequiredDescription
variantstringYesOne of: centered, split, minimal, bold, card, links
namestringYesYour name or headline
taglinestringYesSubtitle or professional tagline
avatarstringNoPath to avatar image (e.g., "/img/avatar.png")
showAvatarbooleanNoDisplay avatar (default: true)
linksarrayNoSocial links (required for "links" variant)
{
"links": [
{
"name": "GitHub",
"url": "https://github.com/username",
"icon": "github"
},
{
"name": "LinkedIn",
"url": "https://linkedin.com/in/username",
"icon": "linkedin"
}
]
}

Example

{
"type": "hero",
"enabled": true,
"variant": "centered",
"name": "Alex Smith",
"tagline": "Full-stack Developer & Designer",
"avatar": "/img/avatar.png",
"showAvatar": true
}

About Section

Share your bio, background, and skills.

Variants

VariantDescription
centeredCentered text with skill badges
splitTwo-column layout with content and skills
cardContent in a card container
minimalSimple, text-focused design

Configuration

{
"type": "about",
"enabled": true,
"variant": "centered",
"title": "About Me",
"content": "Your bio text here...",
"skills": ["Skill 1", "Skill 2", "Skill 3"]
}
FieldTypeRequiredDescription
variantstringYesOne of: centered, split, card, minimal
titlestringYesSection heading
contentstringYesYour biography or description
skillsarrayNoArray of skill names to display as badges

Example

{
"type": "about",
"enabled": true,
"variant": "split",
"title": "About Me",
"content": "I'm a passionate developer who loves creating elegant solutions to complex problems. With expertise in modern web technologies, I help bring ideas to life through clean code and thoughtful design.",
"skills": [
"JavaScript",
"TypeScript",
"Svelte",
"React",
"Node.js",
"PostgreSQL"
]
}

Display social media links and other important URLs.

Variants

VariantDescription
defaultVertical list of link buttons
gridGrid layout for links
cardLinks as cards with icons
minimalSimple text links

Configuration

{
"type": "links",
"enabled": true,
"variant": "default",
"title": "Connect With Me",
"items": [
{ "name": "GitHub", "url": "https://github.com/username", "icon": "github" }
]
}
FieldTypeRequiredDescription
variantstringYesOne of: default, grid, card, minimal
titlestringYesSection heading
itemsarrayYesArray of link objects

Item Format

{
"name": "GitHub",
"url": "https://github.com/username",
"icon": "github"
}
FieldTypeRequiredDescription
namestringYesDisplay name for the link
urlstringYesFull URL (including https://)
iconstringYesIcon identifier

Supported Icons

  • github — GitHub
  • linkedin — LinkedIn
  • twitter — Twitter/X
  • discord — Discord
  • email — Email
  • blog — Blog/Website
  • Custom icons can be added by editing the component

Example

{
"type": "links",
"enabled": true,
"variant": "card",
"title": "Find Me Online",
"items": [
{
"name": "GitHub",
"url": "https://github.com/alexsmith",
"icon": "github"
},
{
"name": "LinkedIn",
"url": "https://linkedin.com/in/alexsmith",
"icon": "linkedin"
},
{ "name": "Email", "url": "mailto:[email protected]", "icon": "email" }
]
}

Contact Section

Add a contact button and/or form.

Configuration

{
"type": "contact",
"enabled": true,
"title": "Get In Touch",
"description": "Have a project in mind? Let's talk!",
"button": {
"enabled": true,
"type": "email",
"value": "[email protected]",
"text": "Send Email"
},
"form": {
"enabled": false
}
}
FieldTypeRequiredDescription
titlestringYesSection heading
descriptionstringNoIntroductory text
buttonobjectNoContact button configuration
formobjectNoContact form configuration

Button Configuration

{
"enabled": true,
"type": "email",
"value": "[email protected]",
"text": "Send Email"
}
FieldTypeDescription
enabledbooleanShow the button
typestringButton type: "email" or "link"
valuestringEmail address or URL
textstringButton text

Form Configuration

{
"enabled": true,
"email": "[email protected]",
"subject": "Contact Form Submission",
"successMessage": "Thanks! I'll get back to you soon.",
"namePlaceholder": "Your Name",
"emailPlaceholder": "[email protected]",
"messagePlaceholder": "Your message...",
"submitText": "Send Message"
}

Note: The form uses mailto: links. For a true backend form, you'll need to integrate a service like Formspree, Netlify Forms, or similar.


Services Section

Showcase services or offerings you provide.

Configuration

{
"type": "services",
"enabled": true,
"title": "What I Do",
"items": [
{
"name": "Web Development",
"description": "Building modern web applications...",
"icon": "code"
}
]
}
FieldTypeRequiredDescription
titlestringYesSection heading
itemsarrayYesArray of service objects

Item Format

{
"name": "Service Name",
"description": "Description of the service",
"icon": "code"
}
FieldTypeRequiredDescription
namestringYesService name
descriptionstringYesService description
iconstringYesIcon identifier (code, design, api, consulting, etc.)

Example

{
"type": "services",
"enabled": true,
"title": "What I Do",
"items": [
{
"name": "Web Development",
"description": "Building responsive, performant web applications with modern frameworks",
"icon": "code"
},
{
"name": "UI/UX Design",
"description": "Creating intuitive and beautiful user interfaces",
"icon": "design"
}
]
}

Projects Section

Display portfolio projects with descriptions and tags.

Configuration

{
"type": "projects",
"enabled": true,
"title": "Featured Projects",
"items": [
{
"name": "Project Name",
"description": "Brief project description",
"url": "https://github.com/username/project",
"tags": ["Svelte", "TypeScript", "PostgreSQL"]
}
]
}
FieldTypeRequiredDescription
titlestringYesSection heading
itemsarrayYesArray of project objects

Item Format

{
"name": "Project Name",
"description": "Brief description",
"url": "https://github.com/username/project",
"tags": ["Tag1", "Tag2"]
}
FieldTypeRequiredDescription
namestringYesProject name
descriptionstringYesBrief description
urlstringNoLink to project (GitHub, live demo, etc.)
tagsarrayYesTechnology/category tags

Timeline Section

Show your work experience, education, or career milestones.

Configuration

{
"type": "timeline",
"enabled": true,
"title": "Experience",
"items": [
{
"date": "2023 - Present",
"title": "Senior Software Engineer",
"subtitle": "Company Name",
"description": "Brief description of role and achievements"
}
]
}
FieldTypeRequiredDescription
titlestringYesSection heading
itemsarrayYesArray of timeline items

Item Format

{
"date": "2023 - Present",
"title": "Job Title",
"subtitle": "Company Name",
"description": "Role description"
}
FieldTypeRequiredDescription
datestringYesDate range or time period
titlestringYesPosition or event title
subtitlestringNoCompany, school, or location
descriptionstringYesDetails about the role/event

Display images in various layouts.

Variants

VariantDescription
gridUniform grid layout
masonryPinterest-style masonry grid
lightboxGrid with lightbox modal on click
carouselSliding carousel

Configuration

{
"type": "gallery",
"enabled": true,
"variant": "grid",
"title": "Gallery",
"items": [
{
"image": "/img/photo1.jpg",
"caption": "Image caption",
"url": ""
}
]
}
FieldTypeRequiredDescription
variantstringYesOne of: grid, masonry, lightbox, carousel
titlestringYesSection heading
itemsarrayYesArray of image objects

Item Format

{
"image": "/img/photo.jpg",
"caption": "Photo caption",
"url": "https://example.com"
}
FieldTypeRequiredDescription
imagestringYesPath to image file
captionstringNoImage caption/description
urlstringNoLink when image is clicked (optional)

Testimonials Section

Display client testimonials or reviews.

Configuration

{
"type": "testimonials",
"enabled": true,
"title": "What People Say",
"items": [
{
"quote": "Great developer to work with!",
"name": "John Doe",
"role": "CEO, Example Inc.",
"avatar": ""
}
]
}
FieldTypeRequiredDescription
titlestringYesSection heading
itemsarrayYesArray of testimonial objects

Item Format

{
"quote": "The testimonial text goes here",
"name": "Client Name",
"role": "Title, Company",
"avatar": "/img/client-avatar.jpg"
}
FieldTypeRequiredDescription
quotestringYesTestimonial text
namestringYesClient name
rolestringYesClient title and company
avatarstringNoPath to client photo

FAQ Section

Frequently asked questions with expandable answers.

Configuration

{
"type": "faq",
"enabled": true,
"title": "Frequently Asked Questions",
"items": [
{
"question": "Your question here?",
"answer": "Your answer here."
}
]
}
FieldTypeRequiredDescription
titlestringYesSection heading
itemsarrayYesArray of Q&A objects

Item Format

{
"question": "What is your question?",
"answer": "This is the answer to the question."
}

Stats Section

Display key numbers or achievements.

Configuration

{
"type": "stats",
"enabled": true,
"title": "By the Numbers",
"items": [
{
"label": "Projects",
"value": "50+",
"description": "Completed"
}
]
}
FieldTypeRequiredDescription
titlestringYesSection heading
itemsarrayYesArray of stat objects

Item Format

{
"label": "Projects",
"value": "50+",
"description": "Completed"
}
FieldTypeRequiredDescription
labelstringYesStat category
valuestringYesNumeric value (can include +, ∞, etc.)
descriptionstringYesAdditional context

Tips for Using Sections

Section Order

Sections render in the order they appear in your config. A common pattern:

  1. Hero (first impression)
  2. About (introduce yourself)
  3. Services or Projects (showcase work)
  4. Timeline (experience)
  5. Testimonials (social proof)
  6. Links (social media)
  7. Contact (call to action)

Using Multiple Instances

You can use the same section type multiple times:

{
"sections": [
{ "type": "gallery", "variant": "grid", "title": "Photos" },
{ "type": "gallery", "variant": "carousel", "title": "Featured" }
]
}

Disable vs. Remove

  • Set "enabled": false to temporarily hide a section while keeping the configuration
  • Delete the section object entirely if you're sure you won't need it