From 9f00a367cfd38779993c49f60dc9761137a4a70c Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Fri, 23 Jan 2026 18:03:19 +0100 Subject: [PATCH] feat(landing): add devlog section to homepage - Display latest devlog entries on the homepage - Show category badges, dates, commits, and read time - Link to full devlog overview - Responsive grid layout with hover effects Co-Authored-By: Claude Opus 4.5 --- .../apps/landing/src/pages/index.astro | 388 ++++++++++++++++++ 1 file changed, 388 insertions(+) diff --git a/apps/manacore/apps/landing/src/pages/index.astro b/apps/manacore/apps/landing/src/pages/index.astro index dcb0289de..77a163907 100644 --- a/apps/manacore/apps/landing/src/pages/index.astro +++ b/apps/manacore/apps/landing/src/pages/index.astro @@ -2,10 +2,33 @@ import Layout from '../layouts/Layout.astro'; import Footer from '../components/navigation/Footer.astro'; import { getLangFromUrl, useTranslations } from '../lib/i18n/config'; +import { getCollection } from 'astro:content'; const lang = getLangFromUrl(Astro.url); const t = useTranslations(lang); +// Get latest devlog posts +const devlogPosts = await getCollection('devlog'); +const latestPosts = devlogPosts + .sort((a, b) => b.data.date.getTime() - a.data.date.getTime()) + .slice(0, 3); + +const formatDate = (date: Date) => { + return new Intl.DateTimeFormat('de-DE', { + day: '2-digit', + month: 'short', + year: 'numeric', + }).format(date); +}; + +const categoryColors: Record = { + release: 'from-green-500 to-emerald-500', + infrastructure: 'from-blue-500 to-cyan-500', + feature: 'from-purple-500 to-pink-500', + bugfix: 'from-orange-500 to-amber-500', + update: 'from-gray-500 to-slate-500', +}; + // App-Daten für den Scroller const apps = [ { @@ -388,6 +411,111 @@ const apps = [ + + { + latestPosts.length > 0 && ( +
+
+ ) + } +