--- import BaseLayout from '../layouts/BaseLayout.astro'; import { Icon } from 'astro-icon/components'; import { getCollection } from 'astro:content'; import { SITE, LEGAL } from '../consts'; import { getPublishedPosts } from '../utils/posts'; const posts = (await getPublishedPosts()).slice(0, 4); const fmt = (d: Date) => d.toLocaleDateString(SITE.lang, { year: 'numeric', month: 'short' }); const GITEA = 'https://gitea.jeanlucmakiola.de/makiolaj'; // Selected work — pulled from the projects collection (single source of truth; // per-app pages live at /work/). Older experiments live on Gitea. const projects = (await getCollection('projects')).sort( (a, b) => a.data.order - b.data.order ); ---
Developer & designer

Jean-Luc Makiola.

I build design-led Android apps with Material 3 Expressive on top of open, self-hostable standards. This is my corner of the web — projects, writing, and notes.

I'd rather put a thoughtful interface on top of an open protocol than reinvent a sync stack. My apps read and write through the platform's own providers, so your data stays yours — and stays portable.

They form the Floret family: small, focused tools that share one expressive design language. Everything around them — code, translations, builds — runs on infrastructure I host myself.

Selected work

All work →

Plus a trail of smaller experiments and utilities — most unfinished by design — over on my Gitea.

{ posts.length > 0 && (

Latest writing

All posts →
) }