m 882179d533 refactor: billableaua — remove concrete numbers from intro, move calculator down
Intro now focuses on billable hours as the sole KPI metric rather than
specific numbers. Calculator moved below the critique section. Removed
the "8h work = 6.5 billable" item (too specific for the new tone).
2026-04-02 10:23:55 +02:00
2026-03-31 10:54:11 +02:00

onepager

Mono-repo for 40+ vanity domain onepager sites. Single nginx container with template system and server_name-based routing.

Structure

sites/           # One folder per domain
  example.de/
    site.yaml    # Domain config, template choice, variables
    index.html   # Content (generated or hand-crafted)
    assets/      # Optional images, fonts
templates/       # Shared HTML templates
shared/css/      # Shared CSS (variables, responsive, animations)
nginx/           # Generated nginx.conf + generator script
build/           # Generated output (gitignored)

Usage

Add a new site

# Templated site
./add-site.sh example.de --template person-dark --name "Max Mustermann"

# Custom HTML site
./add-site.sh example.de --template custom

Build

./build.sh

Requires yq for YAML parsing. Outputs to build/ directory.

Deploy

Push to main — Dokploy auto-deploys. All domains must be configured in Dokploy.

Templates

Template Description
person-dark Professional profile, dark theme
person-light Professional profile, light/cream theme
product-dark Product/service landing page, dark
editorial Long-form manifesto/editorial style
fun Playful/personal pages
minimal Bare-bones single section
custom Hand-crafted HTML, no rendering

site.yaml

domain: example.de
aliases: [www.example.de]
template: person-dark
title: "Page Title"
description: "Meta description"
lang: de

vars:
  name: "Name"
  role: "Role"
  initials: "AB"
  tagline: "Tagline here"
  accent: "#c9a84c"
  accent_light: "rgba(201, 168, 76, 0.1)"
  font_primary: "Inter"
  font_secondary: "Newsreader"
  tags: ["Tag 1", "Tag 2"]
  sections:
    - type: features
      title: "Section Title"
      items:
        - title: "Item"
          desc: "Description"
    - type: profile
      bio: "Bio text"
  cta:
    text: "Contact"
    href: "mailto:info@example.de"
  • Issue #341: Onepager Mono-Repo
  • Issue #335: Container consolidation
Description
Mono-repo for 40+ vanity domain onepager sites — single nginx container with template system
Readme 766 KiB
Languages
HTML 97.4%
Shell 1.7%
JavaScript 0.5%
CSS 0.3%