Back to work
Client · Association · 2026

un-hopital-autrement

A complete website and admin back-office for a French medical humanitarian association — built so a two-person team can run it without ever touching code.

Next.js 16 React 19 TypeScript Firebase TipTap Tailwind v4
Challenge

A medical humanitarian association needed to publish updates and collect donations regularly, without a tech team and without touching any code.

Approach

Next.js 16 front-end + TipTap rich-text admin: two volunteers publish articles and newsletters directly, with role isolation, drafts, and a publication workflow.

Outcome

Shipped in 4 weeks, the team has been publishing autonomously since day one.

01Context

A site that works, not a brochure

The association needed more than a static page. They wanted a news blog to tell the project's story, a monthly newsletter for the community, a contact form that lands in a real inbox, and — above all — the ability to publish an article on a Sunday evening from their couch, without a developer.

02What I built

Public site + admin back-office

  • Public pages — homepage, "Notre projet", news with dynamic per-article routes, contact form.
  • Newsletter — public signup, admin compose & history, auto-generated monthly HTML template from published articles.
  • Rich text editor — TipTap with images, bubble menu, formatting. The team writes the way they would in Notion.
  • User management — Firebase auth, roles, protected admin routes.
  • Inbox — contact form submissions land in Firestore and are read from the back-office with a read / unread state.
03Architecture

Next.js 16 App Router + Firebase

Clean App Router structure: src/app/ for public site + /admin, src/lib/ for the Firebase layer, src/components/ for UI. Firestore and Storage rules do the heavy lifting on security: public read on published articles, write restricted to authenticated admins.

Deploys on Vercel, with a separate Firebase project. Secrets are environment variables; the public repo ships a .env.local.example and a .firebaserc.example as templates.

04Stack
Next.js 16App Router, Server Components
React 19UI components
TypeScriptEnd-to-end
FirebaseAuth, Firestore, Storage
TipTapRich editor
Tailwind v4Styling
VercelHosting