Skip to content

Changelog

You are reading the notes for every release up to v1.3.0, newest first. Each release lists what was added and changed, and ends with upgrade steps when you need to act. The same notes ship with the theme as CHANGELOG.md.

Changelog

1.3.0

Released 26 September 2026.

Added

  • Documentation site in docs-site/, built with Starlight in the Signal preset’s look. It covers setup, configuration, deploy, presets, design tokens, typography, components, motion, pages, every content type, Keystatic, languages, performance, accessibility, SEO, an FAQ and upgrading. Search is built in.
  • Preset swatches with contrast ratios, the type scale and token tables in the docs are read from the theme source at build time, so they always match the code.
  • Changelog page in the docs, rendered from this file, and the current version in the docs header.
  • CI builds and type-checks the docs alongside the theme.

Changed

  • theme.preset in site.ts is now checked with satisfies, so a misspelled preset name is a type error instead of a broken build.
  • The language switcher hides itself when the site has only one language.
  • Corrected comments that pointed at old file locations (tokens.css for colours, adding languages in astro.config.mjs) and the design-system notes on accent contrast and CTA labels.

1.2.0

Released 26 September 2026.

Added

  • Three languages. English, Deutsch and Bahasa Indonesia with Astro i18n routing (/, /de, /id). UI dictionaries in src/i18n/ui/, typed against English so nothing can be left untranslated. Translated case studies, a translated journal article, roles and legal pages, with automatic fallback to English for anything not yet translated.
  • Language switcher in the header and menu, hreflang alternates, og:locale, a localised sitemap and structured data in the page language. The 404 page switches language on load.
  • Services page: disciplines, pricing packages, process and FAQ, with OfferCatalog and FAQPage structured data. Prices format per language and currency.
  • Careers page: open roles from a new roles collection, benefits and hiring process, with JobPosting structured data and an empty state when nothing is open.
  • Privacy and Imprint pages from a new legal collection, including a German Impressum.
  • Case study layouts: narrative (sticky images that change per chapter) and gallery (image-led) alongside the original editorial layout, chosen per project.
  • Deploy: one-click buttons and configuration for Netlify, Vercel and Cloudflare, plus shared cache and security headers.
  • CI: GitHub Actions workflow running npm run verify and Lighthouse CI with score thresholds. npm run lighthouse runs the same checks locally.
  • docs/LIGHTHOUSE.md with measured scores for twelve pages on desktop and mobile.
  • Keystatic collections for every language, open roles and legal pages.

Changed

  • CSS is inlined into each page, removing the render-blocking stylesheet request.
  • Metric-matched fallback fonts (src/styles/fallbacks.css) so the web font swap no longer shifts the layout.
  • Above-the-fold images paint immediately; the hero curtain reveal no longer delays LCP.
  • The Signal preset’s accent-as-text colour is now #B83510, so small accent text passes WCAG AA.
  • Pages moved to src/pages/[...lang]/. Labels moved from site.ts into the dictionaries; site.ts keeps settings (URLs, contact details, currency).
  • Canonical URLs no longer include .html.
  • Removed the Archivo italic font (about 100 KB) that only one demo logo used.

Upgrading from 1.1

  1. Move any custom pages into src/pages/[...lang]/ and add export const getStaticPaths = localeStaticPaths; (see services.astro).
  2. Move hard-coded text into src/i18n/ui/en.ts and read it with t(locale).
  3. Replace site.cta.contact.label / .href with t(locale).cta.contact and localizePath(site.cta.contact, locale).
  4. Add "layout": "editorial" to existing case studies (it is also the default).

1.1.0

Released 26 September 2026.

Added

  • Theme presets. Four complete looks (Signal, Cobalt, Forest, Mono), each with light and dark colour, a font pairing, a radius rule and a width range for the stretch effect. Switch with theme.preset in src/config/site.ts. An optional floating switcher lets demo visitors try them all.
  • Journal. MDX articles with a featured lead, pagination, tag pages, reading time, related articles, an RSS feed at /rss.xml and BlogPosting structured data. A “From the journal” section on the home page.
  • Keystatic CMS at /keystatic for case studies and articles, running only in development. Production builds stay static with no React.
  • npm run cms opens the dev server straight into the CMS.
  • Presets section on /styleguide.

Changed

  • Case studies moved from src/content/projects.json to one file per project in src/content/projects/. Images now live in one folder per entry under src/assets.
  • Colours, fonts and radius moved from src/styles/tokens.css to src/config/presets.ts.
  • New text-accent utility for the accent as text; bg-signal stays for fills.
  • Footer links follow site.nav.

Upgrading from 1.0

  1. Move each object in projects.json into src/content/projects/<slug>.json, dropping the id field. The file name becomes the slug.
  2. Update image paths to be relative to the new file (../../assets/...).
  3. Replace text-signal and border-signal in your own components with text-accent and border-accent.

1.0.0

Released 25 September 2026.

  • First release: home, work, case studies, studio, contact, 404 and styleguide pages.