- Scope of this legal notice: This legal notice and the privacy policy below apply to the following websites, all operated by Stefan Kölle: hub.moonweb.org, smarthome.moonweb.org, infra.moonweb.org, code.moonweb.org, retro.moonweb.org, buildbroken.moonweb.org, 28k8.moonweb.org, www.moonweb.org, and stefankoelle.de. All of these sites are part of the same personal project network and are covered jointly by this single document.
+ Scope of this legal notice: This legal notice and the privacy policy below apply to the following websites, all operated by Stefan Kölle: www.moonweb.org (including /infra/, /smarthome/, /code/, /retro/, /timecapsule/), buildbroken.moonweb.org, 28k8.moonweb.org, and stefankoelle.de. All of these sites are part of the same personal project network and are covered jointly by this single document.
@@ -41,7 +43,7 @@ layout: base.njk
2. Purpose of these Websites
- The moonweb.org subdomains (hub, smarthome, infra, code, retro) document my private home-lab, home-automation and retro-computing hobby projects. buildbroken.moonweb.org is an archive of a blog I created with friends in our spare time. 28k8.moonweb.org is a homage to the 90s era. www.moonweb.org is an archived version of my original website from 2001. stefankoelle.de presents my professional CV and background as the same person. All are part of one personal project network and share this legal notice and privacy policy.
+ The moonweb.org websites (hub, smarthome, infra, code, retro, timecapsule) document my private home-lab, home-automation and retro-computing hobby projects. buildbroken.moonweb.org is an archive of a blog I created with friends in our spare time. 28k8.moonweb.org is a homage to the 90s era. stefankoelle.de presents my professional CV and background as the same person. All are part of one personal project network and share this legal notice and privacy policy.
3. Hosting
@@ -49,18 +51,23 @@ layout: base.njk
Two different hosting providers are used within this network:
-
- Hosted via Cloudflare Pages, operated by Cloudflare, Inc., 101 Townsend St, San Francisco, CA 94107, USA. Cloudflare processes connection-level data (e.g. your IP address, request headers) as part of its content delivery and DDoS/security systems. This is governed by Cloudflare's Data Processing Addendum, which incorporates the EU Standard Contractual Clauses (2021) as a safeguard for the transfer of data to the USA. See cloudflare.com/privacypolicy.
-
-
-
b) www.moonweb.org and stefankoelle.de — IONOS SE
+
a) www.moonweb.org (hub, infra, smarthome, code, retro, timecapsule) — IONOS SE
Hosted on web space provided by IONOS SE, Elgendorfer Str. 57, 56410 Montabaur, Germany, acting as a processor under Art. 28 GDPR (Data Processing Agreement in place).
+
b) stefankoelle.de — IONOS SE
- Legal basis for both: Art. 6(1)(f) GDPR (legitimate interest in reliable, secure delivery of the websites).
+ Hosted on web space provided by IONOS SE, Elgendorfer Str. 57, 56410 Montabaur, Germany, acting as a processor under Art. 28 GDPR (Data Processing Agreement in place).
+
+
+
c) buildbroken.moonweb.org, 28k8.moonweb.org — Cloudflare Pages
+
+ Hosted via Cloudflare Pages, operated by Cloudflare, Inc., 101 Townsend St, San Francisco, CA 94107, USA. Cloudflare processes connection-level data (e.g. your IP address, request headers) as part of its content delivery and DDoS/security systems. This is governed by Cloudflare’s Data Processing Addendum, which incorporates the EU Standard Contractual Clauses (2021) as a safeguard for the transfer of data to the USA. See cloudflare.com/privacypolicy.
+
+
+
+ Legal basis: Art. 6(1)(f) GDPR (legitimate interest in reliable, secure delivery of the websites).
4. No Tracking, No Cookies, No Analytics (current state)
moonweb is a collection of personal projects that have grown over the past 25 years. What started as a single 486 running a BBS in the mid-90s has turned into a full homelab with Proxmox, Docker, smart home automation, and a growing collection of retro hardware. The name "moonweb" comes from the original domain moonweb.org, which has been online since 2000.
-
Each section of this site documents a different part of the setup. The infrastructure section covers the Proxmox cluster, Synology NAS, Docker containers, networking, and backup strategies. The smart home section shows what automation projects are running, from Tasmota energy monitoring to MQTT sensors and AirPlay audio. The code section lists the public GitHub projects that power these setups, and the retro section documents the hardware collection.
+
Each section of this site documents a different part of the setup. The infrastructure section covers the Proxmox cluster, Synology NAS, Docker containers, networking, and backup strategies. The smart home section shows what automation projects are running, from Tasmota energy monitoring to MQTT sensors and AirPlay audio. The code section lists the public GitHub projects that power these setups, and the retro section documents the hardware collection.
What I do professionally
I work as a Senior Software Developer & Architect at TENHIL GmbH (formerly stellenanzeigen.de), where I build and maintain microservices on .NET Core and Kubernetes. My day job involves designing cloud-native architectures, building APIs, and migrating legacy applications to modern stacks. I've been working with .NET since the early 2000s and have used everything from ASP Classic to the latest .NET 8 features.
+
+
diff --git a/infra/404.html b/infra/404.html
index 0597e48..a914d70 100644
--- a/infra/404.html
+++ b/infra/404.html
@@ -1,9 +1,10 @@
---
title: "Page Not Found"
section: "infra"
+tags: "infra"
description: "The page you are looking for does not exist."
layout: base.njk
-permalink: /404.html
+permalink: /infra/404.html
---
404
diff --git a/infra/backup-strategy/index.njk b/infra/backup-strategy/index.njk
index e1bb576..66affd2 100644
--- a/infra/backup-strategy/index.njk
+++ b/infra/backup-strategy/index.njk
@@ -1,7 +1,8 @@
---
title: "Backup Strategy"
section: "infra"
-parent: "/"
+tags: "infra"
+parent: "/infra/"
description: "Layered 3-2-1 backup strategy covering NAS snapshots, offsite copies, and cloud storage."
layout: base.njk
---
diff --git a/infra/dev-environment/index.njk b/infra/dev-environment/index.njk
index b40343c..78acbc3 100644
--- a/infra/dev-environment/index.njk
+++ b/infra/dev-environment/index.njk
@@ -1,7 +1,8 @@
---
title: "Xubuntu Dev VM"
section: "infra"
-parent: "/"
+tags: "infra"
+parent: "/infra/"
description: "A disposable, daily-backed-up Xubuntu VM for AI-assisted, remote development via SSH and Chrome Remote Desktop."
layout: base.njk
---
diff --git a/infra/docker/index.njk b/infra/docker/index.njk
index d095e4c..f1e53f2 100644
--- a/infra/docker/index.njk
+++ b/infra/docker/index.njk
@@ -1,7 +1,8 @@
---
title: "Docker Container Strategy"
section: "infra"
-parent: "/"
+tags: "infra"
+parent: "/infra/"
description: "How self-hosted services are organized across three Docker hosts on Proxmox and Synology, using Docker Compose as the single source of truth."
layout: base.njk
---
diff --git a/infra/eleventy.config.js b/infra/eleventy.config.js
deleted file mode 100644
index 3338af4..0000000
--- a/infra/eleventy.config.js
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = function (eleventyConfig) {
- eleventyConfig.addGlobalData("site", { url: "https://infra.moonweb.org" });
- eleventyConfig.addFilter("date", (d) => d.toISOString());
- eleventyConfig.addPassthroughCopy({ "shared/theme-infra.css": "theme.css" });
- eleventyConfig.addPassthroughCopy({ "shared/base.css": "shared-base.css" });
- eleventyConfig.addPassthroughCopy({ "shared/favicon/infra.svg": "favicon.svg" });
- eleventyConfig.addPassthroughCopy({ "infra/robots.txt": "robots.txt" });
-
- return {
- dir: {
- input: "infra",
- includes: "../shared/_includes",
- output: "dist/infra"
- },
- serverOptions: {
- host: "0.0.0.0",
- port: 8082
- }
- };
-};
diff --git a/infra/index.njk b/infra/index.njk
index f743915..173211b 100644
--- a/infra/index.njk
+++ b/infra/index.njk
@@ -1,6 +1,7 @@
---
title: "Homelab Infrastructure — Proxmox, Docker & Networking | moonweb"
section: "infra"
+tags: "infra"
description: "Homelab infrastructure overview: Proxmox hosts, Synology NAS, Docker VMs and Setup-Guides."
layout: base.njk
sections:
diff --git a/infra/lxc/index.njk b/infra/lxc/index.njk
index 76853cf..8bebac4 100644
--- a/infra/lxc/index.njk
+++ b/infra/lxc/index.njk
@@ -1,7 +1,8 @@
---
title: "LXC Container Strategy"
section: "infra"
-parent: "/"
+tags: "infra"
+parent: "/infra/"
description: "Overview of the lightweight LXC containers running on the main Proxmox host, and why they are LXC instead of Docker."
layout: base.njk
---
diff --git a/infra/monitoring/index.njk b/infra/monitoring/index.njk
index 7f29ed7..1657d75 100644
--- a/infra/monitoring/index.njk
+++ b/infra/monitoring/index.njk
@@ -1,7 +1,8 @@
---
title: "Monitoring"
section: "infra"
-parent: "/"
+tags: "infra"
+parent: "/infra/"
description: "Prometheus and Grafana monitoring stack for hosts, containers, and hardware metrics."
layout: base.njk
---
diff --git a/infra/openwrt/index.njk b/infra/openwrt/index.njk
index 3990d01..dddbb8a 100644
--- a/infra/openwrt/index.njk
+++ b/infra/openwrt/index.njk
@@ -1,7 +1,8 @@
---
title: "OpenWrt Multi-WAN Router"
section: "infra"
-parent: "/"
+tags: "infra"
+parent: "/infra/"
description: "Multi-WAN OpenWrt router in the study with WiFi and Powerline failover, plus VLAN 189 for IoT isolation."
layout: base.njk
---
diff --git a/infra/proxmox/index.njk b/infra/proxmox/index.njk
index 0548872..3853fbb 100644
--- a/infra/proxmox/index.njk
+++ b/infra/proxmox/index.njk
@@ -1,7 +1,8 @@
---
title: "Proxmox Virtualization"
section: "infra"
-parent: "/"
+tags: "infra"
+parent: "/infra/"
description: "What Proxmox VE is, the hardware it runs on in my homelab, its key advantages, and a short setup walkthrough."
layout: base.njk
---
diff --git a/infra/robots.txt b/infra/robots.txt
deleted file mode 100644
index b9acb72..0000000
--- a/infra/robots.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-User-agent: *
-Allow: /
-
-Sitemap: https://infra.moonweb.org/sitemap.xml
diff --git a/infra/sitemap.xml.njk b/infra/sitemap.xml.njk
deleted file mode 100644
index 7cbc214..0000000
--- a/infra/sitemap.xml.njk
+++ /dev/null
@@ -1,5 +0,0 @@
----
-permalink: /sitemap.xml
-eleventyExcludeFromCollections: true
----
-{% include "sitemap.njk" %}
diff --git a/infra/synology/index.njk b/infra/synology/index.njk
index 2bad928..41601f2 100644
--- a/infra/synology/index.njk
+++ b/infra/synology/index.njk
@@ -1,7 +1,8 @@
---
title: "Synology NAS"
section: "infra"
-parent: "/"
+tags: "infra"
+parent: "/infra/"
description: "Model, storage setup and current role of the Synology NAS in the homelab after the late-2025 cleanup."
layout: base.njk
---
diff --git a/package.json b/package.json
index d23157d..88ad30d 100644
--- a/package.json
+++ b/package.json
@@ -1,23 +1,16 @@
{
"name": "moonweb-site",
- "version": "0.2.0",
+ "version": "0.3.0",
"private": true,
- "description": "Monorepo for hub/infra/smarthome/code/retro (Eleventy, static, deployed to Cloudflare Pages)",
+ "description": "Monorepo for hub/infra/smarthome/code/retro/timecapsule (Eleventy, static, deployed to IONOS SFTP)",
"scripts": {
- "dev:hub": "npx @11ty/eleventy --config=hub/eleventy.config.js --serve --port=8081",
- "dev:infra": "npx @11ty/eleventy --config=infra/eleventy.config.js --serve --port=8082",
- "dev:smarthome": "npx @11ty/eleventy --config=smarthome/eleventy.config.js --serve --port=8083",
- "dev:code": "npx @11ty/eleventy --config=code/eleventy.config.js --serve --port=8084",
- "dev:retro": "npx @11ty/eleventy --config=retro/eleventy.config.js --serve --port=8085",
+ "dev": "npx @11ty/eleventy --serve --port=8081",
"dev:stefankoelle": "npx @11ty/eleventy --config=stefankoelle/eleventy.config.js --serve --port=8086",
- "dev": "npm run dev:hub & npm run dev:infra & npm run dev:smarthome & npm run dev:code & npm run dev:retro & npm run dev:stefankoelle",
- "build:hub": "npx @11ty/eleventy --config=hub/eleventy.config.js",
- "build:infra": "npx @11ty/eleventy --config=infra/eleventy.config.js",
- "build:smarthome": "npx @11ty/eleventy --config=smarthome/eleventy.config.js",
- "build:code": "npx @11ty/eleventy --config=code/eleventy.config.js",
- "build:retro": "npx @11ty/eleventy --config=retro/eleventy.config.js",
+ "dev:timecapsule": "cd timecapsule && npx @11ty/eleventy --serve --port=8087",
+ "build": "npx @11ty/eleventy",
"build:stefankoelle": "npx @11ty/eleventy --config=stefankoelle/eleventy.config.js",
- "build": "npm run build:hub && npm run build:infra && npm run build:smarthome && npm run build:code && npm run build:retro && npm run build:stefankoelle",
+ "build:timecapsule": "cd timecapsule && npx @11ty/eleventy && mkdir -p ../dist/timecapsule && cp -r _site/timecapsule/* ../dist/timecapsule/",
+ "build:moonweb": "npm run build && npm run build:timecapsule",
"pdf:cv": "bash stefankoelle/pdf/build-pdf.sh",
"prebuild": "bash prebuild.sh"
},
diff --git a/retro/404.html b/retro/404.html
index 30ca8ac..8a321b7 100644
--- a/retro/404.html
+++ b/retro/404.html
@@ -1,9 +1,10 @@
---
title: "Page Not Found"
section: "retro"
+tags: "retro"
description: "The page you are looking for does not exist."
layout: base.njk
-permalink: /404.html
+permalink: /retro/404.html
---
404
diff --git a/retro/amiga-hardware-landscape/index.njk b/retro/amiga-hardware-landscape/index.njk
index 39790da..98fdb4b 100644
--- a/retro/amiga-hardware-landscape/index.njk
+++ b/retro/amiga-hardware-landscape/index.njk
@@ -1,9 +1,10 @@
---
title: "Running AmigaOS in 2026: MiSTer FPGA vs Amiberry on Pi"
section: "retro"
+tags: "retro"
description: "Two very different ways to get a fully working AmigaOS 3.2.3 desktop running today."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
Running AmigaOS in 2026: MiSTer FPGA vs Amiberry on Pi
diff --git a/retro/amiga-modern-platforms/index.njk b/retro/amiga-modern-platforms/index.njk
index 0fa568f..577e0a0 100644
--- a/retro/amiga-modern-platforms/index.njk
+++ b/retro/amiga-modern-platforms/index.njk
@@ -1,9 +1,10 @@
---
title: "Vampire V4, A600GS or MiSTer: Amiga Hardware Isn't a Simple Speed Race"
section: "retro"
+tags: "retro"
description: "Why raw benchmark numbers are actively misleading when comparing modern Amiga hardware options."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
Vampire V4, A600GS or MiSTer: Amiga Hardware Isn't a Simple Speed Race
diff --git a/retro/atari-mega-st-fleet/index.njk b/retro/atari-mega-st-fleet/index.njk
index acb3c81..bf242e1 100644
--- a/retro/atari-mega-st-fleet/index.njk
+++ b/retro/atari-mega-st-fleet/index.njk
@@ -1,9 +1,10 @@
---
title: "The Atari Mega ST Fleet: Three Machines, Three Jobs"
section: "retro"
+tags: "retro"
description: "How three Atari Mega ST computers ended up with completely different roles in a modern retro setup."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
The Atari Mega ST Fleet: Three Machines, Three Jobs
diff --git a/retro/atari-monitor-compatibility/index.njk b/retro/atari-monitor-compatibility/index.njk
index 21911b0..8e73d0a 100644
--- a/retro/atari-monitor-compatibility/index.njk
+++ b/retro/atari-monitor-compatibility/index.njk
@@ -1,9 +1,10 @@
---
title: "The 15kHz Problem: Finding a Monitor That Speaks Atari"
section: "retro"
+tags: "retro"
description: "Why most modern monitors refuse to display Atari ST colour modes, and which ones actually work."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
The 15kHz Problem: Finding a Monitor That Speaks Atari
diff --git a/retro/atari-networking-bbs/index.njk b/retro/atari-networking-bbs/index.njk
index 4ba1025..3f89807 100644
--- a/retro/atari-networking-bbs/index.njk
+++ b/retro/atari-networking-bbs/index.njk
@@ -1,9 +1,10 @@
---
title: "Getting a 40-Year-Old Computer Online: Atari ST Networking and BBS Access"
section: "retro"
+tags: "retro"
description: "Connecting an Atari ST to the modern internet and to dial-up-era bulletin board systems, warts and all."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
Getting a 40-Year-Old Computer Online: Atari ST Networking and BBS Access
diff --git a/retro/batocera-living-room/index.njk b/retro/batocera-living-room/index.njk
index b8ca972..36b6cf9 100644
--- a/retro/batocera-living-room/index.njk
+++ b/retro/batocera-living-room/index.njk
@@ -1,9 +1,10 @@
---
title: "Batocera in the Living Room: One Box, Every Retro System"
section: "retro"
+tags: "retro"
description: "Why the living room emulation station takes a completely different approach than the FPGA rigs upstairs."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
Batocera in the Living Room: One Box, Every Retro System
diff --git a/retro/dos-486-tower/index.njk b/retro/dos-486-tower/index.njk
index 156f3f2..858a834 100644
--- a/retro/dos-486-tower/index.njk
+++ b/retro/dos-486-tower/index.njk
@@ -1,9 +1,10 @@
---
title: "The 486 DX2-66: Rebuilding a DOS Era on MiSTer FPGA"
section: "retro"
+tags: "retro"
description: "Recreating a Vobis-Highscreen 486 DX2-66 setup on MiSTer FPGA, down to the original DOS configuration."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
The 486 DX2-66: Rebuilding a DOS Era on MiSTer FPGA
diff --git a/retro/eleventy.config.js b/retro/eleventy.config.js
deleted file mode 100644
index 729f1d4..0000000
--- a/retro/eleventy.config.js
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = function (eleventyConfig) {
- eleventyConfig.addGlobalData("site", { url: "https://retro.moonweb.org" });
- eleventyConfig.addFilter("date", (d) => d.toISOString());
- eleventyConfig.addPassthroughCopy({ "shared/theme-retro.css": "theme.css" });
- eleventyConfig.addPassthroughCopy({ "shared/base.css": "shared-base.css" });
- eleventyConfig.addPassthroughCopy({ "shared/favicon/retro.svg": "favicon.svg" });
- eleventyConfig.addPassthroughCopy({ "retro/robots.txt": "robots.txt" });
-
- return {
- dir: {
- input: "retro",
- includes: "../shared/_includes",
- output: "dist/retro"
- },
- serverOptions: {
- host: "0.0.0.0",
- port: 8085
- }
- };
-};
diff --git a/retro/et4000-experiment/index.njk b/retro/et4000-experiment/index.njk
index 3ec5ce3..5ed0dde 100644
--- a/retro/et4000-experiment/index.njk
+++ b/retro/et4000-experiment/index.njk
@@ -1,9 +1,10 @@
---
title: "Why an ET4000 Graphics Card and a Mega ST Don't Mix (Yet)"
section: "retro"
+tags: "retro"
description: "A cautionary tale about pushing 1980s power supplies past their limits with a modern-ish graphics card."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
Why an ET4000 Graphics Card and a Mega ST Don't Mix (Yet)
diff --git a/retro/index.njk b/retro/index.njk
index be06473..b241dd6 100644
--- a/retro/index.njk
+++ b/retro/index.njk
@@ -1,6 +1,7 @@
---
title: "Retro Computing — Vintage Hardware & FPGA | moonweb"
section: "retro"
+tags: "retro"
description: "Physical retro hardware collection — Raspberry Pi units, Pi 400, and vintage computing setups."
layout: base.njk
sections:
diff --git a/retro/mini-arcade-handheld-roundup/index.njk b/retro/mini-arcade-handheld-roundup/index.njk
index ab3d8ce..82457c9 100644
--- a/retro/mini-arcade-handheld-roundup/index.njk
+++ b/retro/mini-arcade-handheld-roundup/index.njk
@@ -1,9 +1,10 @@
---
title: "Mini Arcades and Handhelds: Sorting the Real Deal from the Bootlegs"
section: "retro"
+tags: "retro"
description: "A buyer's guide to compact retro gaming devices, and why the cheapest option is almost never the right one."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
Mini Arcades and Handhelds: Sorting the Real Deal from the Bootlegs
diff --git a/retro/mist-mister-fpga/index.njk b/retro/mist-mister-fpga/index.njk
index ba5b5c3..58a425c 100644
--- a/retro/mist-mister-fpga/index.njk
+++ b/retro/mist-mister-fpga/index.njk
@@ -1,9 +1,10 @@
---
title: "MiST and MiSTer: Two FPGA Boxes, Two Very Different Personalities"
section: "retro"
+tags: "retro"
description: "Why the newer, more powerful MiSTer isn't automatically the better choice for every retro system."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
MiST and MiSTer: Two FPGA Boxes, Two Very Different Personalities
diff --git a/retro/pimiga-journey/index.njk b/retro/pimiga-journey/index.njk
index 38000a7..4e21dba 100644
--- a/retro/pimiga-journey/index.njk
+++ b/retro/pimiga-journey/index.njk
@@ -1,9 +1,10 @@
---
title: "PiMiga 3 to 5: Chasing the Perfect Amiga-on-a-Pi Distro"
section: "retro"
+tags: "retro"
description: "Three generations of PiMiga later, here's what actually changed — and why newer isn't always better."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
PiMiga 3 to 5: Chasing the Perfect Amiga-on-a-Pi Distro
diff --git a/retro/retro-corner-snapshot/index.njk b/retro/retro-corner-snapshot/index.njk
index 82ea0f7..fee3a18 100644
--- a/retro/retro-corner-snapshot/index.njk
+++ b/retro/retro-corner-snapshot/index.njk
@@ -1,9 +1,10 @@
---
title: "The Retro Corner Today: A Snapshot of the Whole Setup"
section: "retro"
+tags: "retro"
description: "A tour through every retro system currently active across the home, room by room."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---
The Retro Corner Today: A Snapshot of the Whole Setup
diff --git a/retro/robots.txt b/retro/robots.txt
deleted file mode 100644
index b42cb4e..0000000
--- a/retro/robots.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-User-agent: *
-Allow: /
-
-Sitemap: https://retro.moonweb.org/sitemap.xml
diff --git a/retro/sitemap.xml.njk b/retro/sitemap.xml.njk
deleted file mode 100644
index 7cbc214..0000000
--- a/retro/sitemap.xml.njk
+++ /dev/null
@@ -1,5 +0,0 @@
----
-permalink: /sitemap.xml
-eleventyExcludeFromCollections: true
----
-{% include "sitemap.njk" %}
diff --git a/retro/the-a1200/index.njk b/retro/the-a1200/index.njk
index 601cd3c..0c100a7 100644
--- a/retro/the-a1200/index.njk
+++ b/retro/the-a1200/index.njk
@@ -1,9 +1,10 @@
---
title: "The A1200: What We Know Before It Ships"
section: "retro"
+tags: "retro"
description: "A close look at Retro Games Ltd.'s upcoming Amiga 1200 console, based on everything public so far."
layout: base.njk
-parent: "/"
+parent: "/retro/"
---