Le pitch
presque.cool est un site portfolio présentant une collection de jeux, applications et prototypes créatifs. Filtrage par type, catégorie, technologie et tags. Pages de projets avec case studies bilingues. Thème clair/sombre.
Visiter : presque.cool
Pourquoi ce projet
En 2025, je me suis lancé un défi : terminer des petits projets ou des prototypes en souffrance sur mes disques durs depuis des années.
En 2026, nouveau défi : publier et montrer ces projets. Les faire dialoguer les uns avec les autres pour révéler ce qu’ils ont en commun — des styles, des thématiques, des objectifs récurrents. C’est révélateur de mes obsessions : la génération procédurale, les générateurs d’avatars, les outils pour rôlistes, les expériences contemplatives.
presque.cool est le lieu qui rassemble tout ça.
Évolution du projet
Version 1 — Alpine.js (septembre 2025) : Première version avec les projets présentés en modales. Fonctionnel, mais pas idéal pour le SEO — les modales ne sont pas indexables.
Version 2 — Astro (janvier 2026) : Migration vers des pages dédiées pour chaque projet. C’était l’occasion d’apprendre Astro, un framework que je voulais explorer.
Architecture technique
Astro pour le statique : Les pages sont générées statiquement (SSG). Excellent pour le SEO et la performance — pas de JavaScript côté client pour le contenu principal.
Alpine.js pour l’interactivité : Les filtres, le thème, la navigation — tout ce qui nécessite de l’interactivité côté client est géré par Alpine.js, léger et pragmatique.
Content Collections : Les projets sont définis en Markdown avec un schéma Zod pour valider le frontmatter. Descriptions bilingues (français/anglais) dans le même fichier.
View Transitions API : Transitions fluides entre les pages, natives au navigateur, sans JavaScript lourd.
Le défi principal
Ce n’était pas un défi technique.
Le plus frustrant : décider comment présenter ces projets. Trouver le bon ton pour les case studies — ni trop technique (un README froid), ni trop générique (un pitch marketing vide). Décider quels projets inclure et lesquels laisser de côté — tous ne sont pas encore présentés. Savoir quand s’arrêter de peaufiner.
Le code était le plus simple. Les décisions éditoriales, beaucoup moins.
Stack technique
- Astro — Génération statique (SSG), Content Collections
- Alpine.js + plugins — Interactivité côté client (persist, collapse, focus)
- Tailwind CSS — Configuration CSS-first, classes utilitaires
- TypeScript — Typage strict
- Zod — Validation du frontmatter des projets
- Compression — Brotli + Gzip sur les assets
- CSP — Content-Security-Policy avec hashes auto-générés
Évolutions
| Date | Version | Description |
|---|---|---|
| Sep 2025 | 1.0 | Prototype Alpine.js — Projets en modales, filtres basiques |
| Jan 2026 | 2.0 | Migration Astro — Pages dédiées, Content Collections, View Transitions |
Bilan
Ce que j’ai appris :
- Qu’il faut lâcher prise. Un portfolio ne sera jamais “parfait” — à un moment, il faut publier.
- Que les décisions éditoriales (ton, sélection, mise en valeur) sont un travail à part entière, distinct du développement.
Ce que je referais pareil :
- Le choix Astro + Alpine.js — léger, performant, pragmatique
- Les case studies intégrés directement dans les pages projets
Ce que je changerais :
- C’est un portfolio : il évolue avec les projets qu’il présente. Ce qui est publié aujourd’hui sera différent dans six mois — et c’est normal.
The pitch
presque.cool is a portfolio site showcasing a collection of creative games, applications and prototypes. Filtering by type, category, technology and tags. Project pages with bilingual case studies. Light/dark theme.
Visit: presque.cool
Why this project
In 2025, I set myself a challenge: finish small projects or prototypes that had been languishing on my hard drives for years.
In 2026, new challenge: publish and show these projects. Make them dialogue with each other to reveal what they have in common — recurring styles, themes, goals. It reveals my obsessions: procedural generation, avatar generators, tools for role-players, contemplative experiences.
presque.cool is the place that brings all of this together.
Project evolution
Version 1 — Alpine.js (September 2025): First version with projects presented in modals. Functional, but not ideal for SEO — modals are not indexable.
Version 2 — Astro (January 2026): Migration to dedicated pages for each project. It was an opportunity to learn Astro, a framework I wanted to explore.
Technical architecture
Astro for static: Pages are statically generated (SSG). Excellent for SEO and performance — no client-side JavaScript for main content.
Alpine.js for interactivity: Filters, theme, navigation — everything that requires client-side interactivity is handled by Alpine.js, lightweight and pragmatic.
Content Collections: Projects are defined in Markdown with a Zod schema to validate frontmatter. Bilingual descriptions (French/English) in the same file.
View Transitions API: Smooth transitions between pages, native to the browser, without heavy JavaScript.
The main challenge
It wasn’t a technical challenge.
The most frustrating: deciding how to present these projects. Finding the right tone for the case studies — neither too technical (a cold README), nor too generic (an empty marketing pitch). Deciding which projects to include and which to leave out — not all are presented yet. Knowing when to stop polishing.
The code was the easy part. Editorial decisions, much less so.
Tech stack
- Astro — Static generation (SSG), Content Collections
- Alpine.js + plugins — Client-side interactivity (persist, collapse, focus)
- Tailwind CSS — CSS-first configuration, utility classes
- TypeScript — Strict typing
- Zod — Project frontmatter validation
- Compression — Brotli + Gzip on assets
- CSP — Content-Security-Policy with auto-generated hashes
Timeline
| Date | Version | Description |
|---|---|---|
| Sep 2025 | 1.0 | Alpine.js prototype — Projects in modals, basic filters |
| Jan 2026 | 2.0 | Astro migration — Dedicated pages, Content Collections, View Transitions |
Takeaways
What I learned:
- That you have to let go. A portfolio will never be “perfect” — at some point, you have to publish.
- That editorial decisions (tone, selection, presentation) are work in their own right, distinct from development.
What I’d do the same:
- The Astro + Alpine.js choice — lightweight, performant, pragmatic
- Case studies integrated directly into project pages
What I’d change:
- It’s a portfolio: it evolves with the projects it presents. What’s published today will be different in six months — and that’s fine.