Initial site: Astro + M3 Expressive, projects, blog

Personal site & blog for jeanlucmakiola.de.

- Astro 7 static output; self-hosted Inter + JetBrains Mono (Fontsource)
- Material 3 Expressive design tokens (red accent over neutral surfaces)
- Home (hero + about + selected work + latest writing)
- /work index + per-app pages (Calendula, Agendula, floret-kit) with
  build-time Gitea release tags, brand-icon link rows, features grid,
  and an at-a-glance facts panel
- Blog via Markdown content collection; RSS, sitemap, robots, OG/SEO
- Privacy-respecting Umami analytics, env-gated (off in dev)
- Dockerfile (build -> Caddy) + Caddyfile for Coolify deploy

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jean-Luc Makiola
2026-06-28 13:39:08 +02:00
commit 074199c656
35 changed files with 6954 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
---
import { Icon } from 'astro-icon/components';
import { SITE, SOCIALS } from '../consts';
const year = new Date().getFullYear();
---
<footer class="site-footer">
<div class="site-footer__inner">
<p>© {year} {SITE.author}</p>
{
SOCIALS.length > 0 && (
<nav aria-label="Social" class="socials">
{SOCIALS.map((s) => (
<a href={s.href} rel="me noopener">
<Icon name={s.icon} />
{s.label}
</a>
))}
</nav>
)
}
</div>
</footer>