All notable changes to this project are documented here. We follow Keep a Changelog and Semantic Versioning.

0.04 2026-01-28

### Changed - Footer layout restructured: navigation links on left, brand section on right - Footer logo now uses `logo_big.png` image instead of text - Footer section titles and links now use monospace font matching header navigation - Unified link hover effect across header and footer (pink underline animation) - Removed map/location icon from footer, kept text only ### Added - MVA number (929532937) with click-to-copy functionality in footer - Shared `.link-nav` class in global.css for consistent navigation styling ### Removed - Dead navigation links from footer (kept only Blog)

0.03 2026-01-28

### Added - Squarespace to Astro migration script (`scripts/migrate-squarespace.js`) - Fetches blog posts from techlab.no JSON API - Converts HTML content to Markdown using Turndown - Downloads all images (featured + inline) to local storage - Generates MDX files with proper frontmatter - Handles Norwegian characters (æ, ø, å) - CLI options: `--dry-run`, `--limit=N`, `--skip-images`, `--verbose` - NPM scripts for migration: - `npm run migrate` - Run full migration - `npm run migrate:dry` - Preview without writing files - Migration dependencies: cheerio, node-fetch, turndown, slugify - Sample migrated blog post with images ### Technical - Migration script uses Squarespace JSON endpoint for reliable data extraction - Images organized in `public/images/posts/[slug]/` directories - Posts output to `src/content/posts/` as MDX files - Proper date parsing from Squarespace timestamps

0.02 2026-01-12

### Added - Comprehensive CSS design system with extensive variables - Color palette: Dark grey background (#1a1a1a) with white text - Primary accent: Cyan (#06b6d4) - Secondary accent: Pink (#ec4899) - Complete spacing scale (0-32/128px) - Typography scale with font sizes, weights, line heights - Border radius, shadows, and z-index systems - Transition durations and easing functions - Montserrat font integration for headlines (Bold Italic 700) - Changelog system and versioning - Dark theme throughout entire site - Enhanced button system (primary, secondary, outline, ghost variants) - Improved accessibility with focus states ### Changed - Updated color scheme from light blue theme to dark theme - Headlines now use Montserrat Bold Italic, uppercase styling - Site base URL changed from `/techlab` to root `/` - Site domain set to `techlab.no` - Card components updated with dark theme styling - Footer styling updated for dark theme - Header navigation updated for dark theme ### Technical - All CSS now uses comprehensive variable system - Consistent use of design tokens across components - Improved code organization and documentation

0.01 2026-01-12

### Added - Initial Astro project setup with TypeScript (strict mode) - TinaCMS integration for content management - MDX and Sitemap support - Content collections schema for: - Pages (static content) - Posts (blog articles) - Hardware (equipment catalog) - Courses (educational programs) - Team (member profiles) - Services (service offerings) - TinaCMS configuration with Norwegian labels - Project structure setup: - `/src/content/` - Content collections - `/src/components/` - Reusable components - `/src/layouts/` - Page layouts - `/src/styles/` - Global styles - `/public/` - Static assets - `/.tina/` - TinaCMS configuration - Base layouts: - `BaseLayout.astro` - HTML foundation - `PageLayout.astro` - Standard page wrapper - Core components: - `Header.astro` - Navigation with mobile menu - `Footer.astro` - Site footer with links - Homepage (`index.astro`) with sections: - Hero section - About section - Featured hardware - Featured courses - Recent blog posts - Environment configuration (`.env.example`) - CSS foundation: - `reset.css` - CSS reset - `variables.css` - Design tokens - `global.css` - Base styles - README.md with comprehensive project documentation ### Technical - Astro v5.16.8 - TypeScript strict mode - TinaCMS v3.3.0 - Node.js 20.x+ required - Package management with npm