Themes

The orbit theme

A personal site with a profile, projects, blog, micro-blog, resume and links page.

5 min read

orbit is for a person rather than a product: one site that holds your profile, the things you have built, longer writing, short notes, your resume and a “link in bio” page.

meteorite new site me --theme orbit
cd me && meteorite serve

The starter has sample content for every part, so you only replace the words.

The devlog theme reads exactly the same content and data files, so you can switch between the two with one line in config.yml and compare.

What is in it #

PartWhereNotes
Profile home pagecontent/_index.mdName, role, headline, availability badge, buttons, socials, stats
Projectscontent/projects/layout: projects in _index.md; cards with cover, year and stack
Blogcontent/blog/Dates, tags, reading time, pagination, feed
Micro-blogcontent/notes/layout: notes and full_content: true; short untitled posts shown in full
Resumecontent/resume.md + data/resume.ymlTimeline, skills, print-friendly, optional PDF download
Links pagecontent/links.md + data/socials.ymlBig buttons for a link in your bio
Socialsdata/socials.ymlIcons on the home page, footer and links page

It also gives you light and dark modes, search, a feed, social sharing tags, structured data (Person) for search engines and the optional chat assistant.

The home page #

Everything comes from front matter in content/_index.md. Every block is optional.

profile:
  greeting: Hi, I'm
  name: Ada Lovelace            # defaults to the site title
  role: Software engineer
  headline: I build calm, fast things for the web.
  status: { text: Open to new projects, state: open, url: /links/ }   # state: open | busy
  actions:
    - { name: See my work, url: /projects/, style: primary }
    - { name: Resume, url: /resume/, style: secondary }
stats:
  - { value: 8 years, label: building for the web }
sections: [projects, posts, notes, skills, experience, contact]   # order; omit one to hide it
projects: { title: Selected work, limit: 3 }
posts: { title: Writing, limit: 3 }
notes: { title: Notes, limit: 3 }
skills: { title: Skills, items: [Rust, TypeScript] }   # or omit items to use data/resume.yml
contact: { title: Let's work together, text: Tell me what you are building. }

The Markdown below the front matter becomes the short bio. Set hide_socials: true under profile to leave out the social icons.

Section layouts #

A section picks its look with layout: in its _index.md:

layoutLooks like
list (default)Blog posts: title, summary, date, reading time, tags
projectsA grid of cards
notesA stream of short posts, shown in full
archiveDates and titles only

Pages inside a projects section get a project page (cover, role, year, stack, links) and pages inside notes get a single-note page. A page can also choose its own: layout: resume, layout: links, layout: article.

Projects #

---
title: Faster search
description: One sentence for the card.
year: 2025
role: Design and engineering
stack: [Rust, SQLite]
cover: projects/search.jpg     # image under static/
repo: https://github.com/you/search
demo: https://example.com
weight: 1
---

Notes #

A note is just a Markdown file with a date. It shows no heading unless you set show_title: true. Add link: https://... to share a link.

---
date: 2026-03-04
tags: [rust]
---
Learned that `cargo install --locked` avoids surprise upgrades.

Data files #

data/socials.yml is a list; icon is one of github, linkedin, x, mastodon, bluesky, youtube, instagram, mail, rss, globe (anything else shows a link icon).

- { name: GitHub, url: https://github.com/you, icon: github, handle: "@you" }

data/resume.yml holds basics, work, education, skills, projects, languages and certifications; see the starter for the shape. Add resume_pdf: resume.pdf under params (the file goes in static/) for a Download button. The page also prints cleanly from the browser.

Parameters #

ParameterDefaultMeaning
skininkink, sunset or mint
skin_switcherfalseLet visitors pick a skin
color_schemeautoauto, light or dark
theme_toggletrueLight/dark button in the header
taglinenoneOne line used on the links page and in sharing cards
avatarnoneYour photo, under static/
location, emailnoneShown on the home page and resume
resume_pdfnonePDF under static/ for the Download button
blog_section, notes_section, projects_sectionblog, notes, projectsWhere the home page looks
reading_timetrueShow “n min read”
accent, accent_darkskinOverride the accent colour
og_image, favicon, footer_textnone / favicon.svg / noneSharing image, icon, footer text