AGENTS.md
AGENTS.md
Commands
bundle exec jekyll serve # Run dev server at localhost:4000
bundle exec jekyll build # Build to _site/
Architecture
This is a Jekyll static site for Usetix marketing. Key patterns:
Multilingual (EN/DE/PT/FR/ES): Language determined by URL path (/ = English, /de/ = German, /pt/ = Portuguese, /fr/ = French, /es/ = Spanish). Pages use ref in front matter to link translations. Translation strings live in _data/strings.yml (EN), _data/strings_de.yml (DE), _data/strings_pt.yml (PT), _data/strings_fr.yml (FR), and _data/strings_es.yml (ES). Localized URL paths live in _data/paths.yml. Layouts/includes resolve copy via `
` (sets t).
Layout inheritance: All layouts extend base.html which provides HTML document structure plus head.html, header.html, footer.html includes. Child layouts (default, home, post, blog) declare layout: base in front matter.
CSS architecture: Native CSS modules under assets/css/ with a token-first design system:
| Folder | Role |
|---|---|
tokens/ |
CSS custom properties (colors, type, space, layout, effects) — redesign surface |
base/ |
Fonts, reset, element defaults |
components/ |
Reusable UI (buttons, cards, header, footer, layout primitives) |
modules/ |
Page/section patterns (hero, pricing, blog, …) |
utilities/ |
Single-purpose helpers |
Entry: assets/css/main.css establishes @layer reset, base, components, modules, utilities. _data/stylesheets.yml is the ordered module manifest rendered as individually cache-busted <link> elements by _includes/head.html. There is no CSS preprocessor or bundler.
Redesign rule: change tokens in assets/css/tokens/ first. Components must not hardcode brand colors — only var(--color-*). Brand accent (--color-accent*) is separate from status colors (--color-positive, --color-info, --color-negative) so marketing can rebrand without breaking success/info UI.
Responsive rules: use the established min-width breakpoints 480px, 640px, 768px, 900px, and 1024px; use 639px for the corresponding below-640px max-width case. Hover-only effects must be wrapped in @media (hover: hover) and (pointer: fine). Keep focus, reduced-motion, and visually-hidden declarations explicit so every module is valid standalone CSS.
Blog posts: English in _posts/, German in de/_posts/, Portuguese in pt/_posts/, French in fr/_posts/, Spanish in es/_posts/. Front matter defaults in _config.yml auto-assign language and layout based on path.