# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). --- ## [0.8.1] — 2026-04-14 ### Changed - Login and register button links now point to `https://app.armarium.ch/login` and `https://app.armarium.ch/register` respectively — affects hero section, CTA section, footer, and all locale variants --- ## [0.8.0] — 2026-04-13 ### Added — Full i18n translation - **All pages available in 4 languages** (DE/FR/IT/EN): About, Contact, Blog, Features, Privacy, Legal Notice — 28 locale variants total - **Language switcher in every navbar** — `PageLayout`, `BlogLayout`, `ProjectLayout` and `LandingLayout` render the language switcher with the correct `currentLocale` - **Locale-aware nav and footer links** — new `nav.*.href` and `footer.privacy.href` / `footer.imprint.href` keys in `ui.ts` - **Shared page components** — `AboutPage`, `ContactPage`, `FeaturesIndexPage`, `BlogIndexPage` accept a `locale` prop; each locale page file is a 4-line wrapper with no code duplication - **Translated privacy pages** — full translated privacy policy on FR (`/fr/privacy`), IT (`/it/privacy`), EN (`/en/privacy`) including Infomaniak certification cards - **Translated legal notice pages** — Mentions légales (FR), Note legali (IT), Legal Notice (EN) - **`ui.ts`** — ~40 new translation keys per language: `about.*`, `contact.*`, `blog.*`, `features.cta.*`, `nav.*.href`, `footer.*.href` ### Changed (2026-04-13) - `PageLayout` accepts `locale` prop and passes translated nav items to the header - `BlogLayout` / `ProjectLayout` show language switcher with translated nav and breadcrumbs - `LandingLayout` footer links (privacy, legal notice, features) are locale-aware - Blog index shows all posts across locales (locale filter removed) - Blog post `armarium-1-0.mdx` locale corrected from `en` to `de` - `content.config.ts` locale enum extended with `de` and `it` --- ## [0.7.0] — 2026-04-13 — Armarium customization ### Added - **Armarium branding** — horizontal SVG logo in navbar (`logo-horizontal.svg`), `fill="currentColor"` for dark mode support - **Homepage** (`/`, `/fr/`, `/it/`, `/en/`) — hero ("Armarium Suite — Budget & More"), 6 feature cards, trust bar with Zürich coat of arms, CTA; shared `HomePage.astro` component - **Swiss identity** — Zürich coat of arms (SVG, #003DA5/white) in trust bar, about page and privacy page - **Privacy page** (`/datenschutz`) — 6 Infomaniak certification cards (ISO 27001:2022, Swiss Hosting Label, Swiss Made Software, nDSG/GDPR, ISO 14001 + B Corp™, physical security) + 8-section privacy policy - **Legal notice** (`/impressum`) — operator: Armarium, Zürich; hosting: Infomaniak - **About page** — mission section, app info cards, 4 value cards (transparency, simplicity, privacy, made in Zürich) - **Features page** (`/projects`) — 6 feature cards from `projects` collection with icon mapping - **Blog** — single launch post "Armarium Suite 1.0 ist da" - **Language switcher** (`LanguageSwitcherDropdown.astro`) — locale code (DE/FR/IT/EN) without flag emojis; desktop + mobile - **i18n foundation** — `astro.config.mjs` with `prefixDefaultLocale: false`; `ui.ts` for DE/FR/IT/EN (hero, trust bar, features, CTA, footer) ### Changed - Header: Login + Register buttons instead of GitHub / "Get Started" - Navbar: "Projects" → "Features" - Footer: columns layout with app and legal link groups, Armarium tagline and copyright - `contact.astro`, `about.astro`, `404.astro` — updated with Armarium content - `authors/team.json` — name set to "Armarium" ### Fixed - Unescaped apostrophe in French translation (`d\'épargne`) causing esbuild parse error - Flag emojis removed from language switcher (no font support on Linux) - Duplicate `Locale` type import in `LandingLayout.astro` - Footer copyright HTML rendering (PR #28) - Stripped `www.` prefix from contact social link display values (PR #27) --- ## [1.0.0] — 2026-04-04 Initial public release of Astro Rocket. ### Added - Production-ready Astro 6 starter theme built on Tailwind CSS v4 and TypeScript - 57 UI and pattern components (buttons, forms, cards, badges, inputs, selects, etc.) - 12 live colour themes (Orange, Amber, Lime, Emerald, Teal, Cyan, Sky, Blue, Indigo, Violet, Purple, Magenta) switchable at runtime without a rebuild - Full blog with MDX support, syntax highlighting (Shiki), and RSS feed - Auto-generated SVG favicon and monogram logo badge from `site.config.ts` - Unified `Icon` component via Iconify (350+ Lucide icons + 3000+ Simple Icons) - Animated typing effect in hero section - Contact form with Zod validation, honeypot bot detection, and Resend integration - Newsletter signup form with Resend Audiences integration - Cookie consent banner with Google Consent Mode v2 support - Google Analytics 4 and Google Tag Manager integration (consent-aware) - Built-in SEO layer: JSON-LD structured data, Open Graph, sitemap, robots.txt - Dark mode via `sessionStorage` (resets to dark on each new session) - Search powered by Pagefind - Multiple deployment targets: Vercel, Netlify, Cloudflare Pages - Security headers configured for all deployment targets - GitHub Actions CI/CD workflow (lint, type-check, build) - Vitest unit tests for API endpoint validation schemas ### Changed (from Velocity) - Forked and extended [Velocity](https://github.com/southwellmedia/velocity) by Southwell Media - Added theme switching, 12 colour themes, typed logo badge, auto favicon - Replaced localStorage with sessionStorage for dark mode preference - Added blog image gradients that update with the active theme - Upgraded icon system to Iconify - Targeted at complete, ready-to-launch sites rather than a bare boilerplate