Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Site Configuration

Listsome is configured via listsome.toml in your site root. Run listsome init to generate a default config, then edit it to match your setup.

Full Example

[site]
name = "My DIY Projects"
url = "https://projects.example.com"
description = "Step-by-step guides for things I built"
language = "en"
author = "Your Name"
about = "https://yourdomain.com/about"
email = "you@example.com"
source_repo = "https://codeberg.org/username/my-projects"

[site.fediverse]
mastodon = "@username@mastodon.social"

[build]
output_dir = "./output"
theme = "default"
drafts = false
parallel_jobs = 8
incremental = true

[webmention]
enabled = true
endpoint = "https://webmention.io/yourdomain.com/webmention"
require_approval = true
notify = false

[dev]
base_url = "http://localhost:8080"
port = 8080

[deploy]
host = "your-server.local"
user = "deploy"
path = "/var/www/site"

[fediverse]
enabled = false
mastodon_instance = "https://mastodon.social"
mastodon_token = ""
auto_syndicate = false
default_hashtags = ["#DIY", "#makers"]

[site]: Site Metadata

FieldTypeDescription
namestringSite title, shown in header and page titles
urlstring (optional)Production URL. Used for absolute links in feeds and sitemaps
descriptionstringShort site description, shown below the site name in the header
languagestringLanguage code for the HTML lang attribute (default: en)
authorstringDefault author name for projects without an explicit author in frontmatter. Also used in the footer copyright
aboutstring (optional)URL to your about page. Sets the u-url on your author h-card for IndieWeb identity verification
emailstring (optional)Contact email. Shown as a “Reply via email” link on project pages
source_repostring (optional)Repository URL. Enables “Edit This Page” links that point to the source markdown

Fediverse Handles (under [site.fediverse])

These live under [site.fediverse] and are optional: they enable sharing features on project pages.

FieldTypeDescription
mastodonstring (optional)Your full Mastodon handle (for example, @username@mastodon.social). Enables a “Share on Mastodon” link on project pages
pixelfedstring (optional)Your Pixelfed username (for photo gallery integration)
peertubestring (optional)Your PeerTube channel
blueskystring (optional)Your Bluesky handle (secondary)

[build]: Build Settings

FieldTypeDefaultDescription
output_dirstring./outputWhere the generated site is written
themestringdefaultTheme name (currently unused, single built-in theme)
draftsbooleanfalseInclude projects with status: draft in builds
parallel_jobsintegernumber of CPU coresHow many projects to build concurrently
incrementalbooleantrueSkip projects whose source has not changed since last build
base_urlstring (optional)noneSet this for production deployments where the site lives at a subpath

[webmention]: Webmention Settings

Webmentions let other sites notify you when they link to your projects. Requires endpoint to be configured.

FieldTypeDefaultDescription
enabledbooleantrueEnable webmention sending
endpointstringhttps://webmention.io/yourdomain.com/webmentionYour webmention endpoint (get one at webmention.io)
require_approvalbooleantrueHold incoming webmentions for review instead of publishing automatically
notifybooleanfalseSend email notifications for new webmentions (requires your endpoint to support this)

[dev]: Development Settings

Configure the local development server.

FieldTypeDefaultDescription
base_urlstring (optional)noneBase URL for local development (e.g., http://localhost:8080)
portinteger8080Port for the local development server

[deploy]: Deployment Settings

Configure remote deployment via listsome deploy.

FieldTypeDefaultDescription
hoststring (optional)noneRemote host (e.g., your-server.local)
userstring (optional)noneSSH user for remote deployment
pathstring (optional)noneRemote path where the site will be deployed
portstring (optional)nonePort for accessing the deployed site (used in output messages)

[fediverse]: Fediverse Syndication

Configure automatic posting to Mastodon when you publish or update a project.

FieldTypeDefaultDescription
enabledbooleanfalseEnable auto-syndication
mastodon_instancestringhttps://mastodon.socialYour Mastodon instance URL
mastodon_tokenstring(empty)Your Mastodon API token
auto_syndicatebooleanfalseAutomatically post when a project is published or updated
default_hashtagsarray["#DIY", "#makers"]Hashtags to include in syndicated posts

To get a Mastodon API token: settings → Development → New Application, then copy the access token.

Author Fallback

When creating a project, the author is determined in this order:

  1. --author flag on listsome new
  2. author field in the project’s frontmatter
  3. site.author from listsome.toml
  4. USER or USERNAME environment variable
  5. "Anonymous" as final fallback

Command-line Tool Flags

These fields can also be set via command-line tool flags on listsome init:

FlagConfig Field
--namesite.name
--authorsite.author
--urlsite.url
--aboutsite.about