Case Study

Mimo: A Zero-Cost Platform for a French Association

How I built a multi-artist media-sharing platform for a Loi 1901 association — with zero database, zero build step, and zero monthly cost.

Mimo association — artist community gathering

The Problem

A newly formed French association needed a way for artists to share their work, connect with each other, and manage events — on a budget of exactly €0.

No Budget

Loi 1901 associations run on volunteers and donations. Monthly SaaS fees, database hosting, and developer retainers were off the table.

Non-Technical Users

The artists needed something that "just works" — no CMS training, no Markdown, no Git. Upload a photo, write a title, done.

Privacy & Ownership

Artists needed to own their data. No Big Tech platforms, no ad-driven algorithms, no terms-of-service that claim ownership of uploaded content.

The Artists Behind Mimo

Meet the creative duo driving this association forward.

🎭

Morgane Guilloux

Co-founder & Artist

Morgane is a multidisciplinary artist whose practice spans visual arts, community engagement, and cultural programming. As co-founder of the association, she brings creative vision and grassroots organizing to everything Mimo does.

🔥

Gaëtan

Co-founder & Artist

Gaëtan is a sculptor and metal artist whose work blends soldering craftsmanship with psychedelic aesthetics. His practice explores the intersection of industrial materials and organic forms, creating pieces that challenge perception.

The Architecture

A React 19 SPA with no build step, a PHP flat-file backend, and JSON storage — deployed by rsync to IONOS shared hosting.

Frontend

React 19 SPA (No Build Step)

A single-page application using React 19, htm (tagged template literals), and GSAP animations. No Vite, no Webpack, no npm. The browser loads the source directly via ES module imports.

  • 1,468 lines of main.js — the entire SPA
  • 2,111 lines of CSS — dark mode, glass morphism, GSAP
  • 418 lines of bilingual copy (EN/FR)
  • React 19 + htm + GSAP + Lucide icons
Backend

PHP Flat-File (Zero Database)

Six PHP files handle authentication, file uploads, comments, messages, calendar notes, and the artist API. All data stored as JSON files on disk — no MySQL, no PostgreSQL, no SQLite.

  • 1,091 lines of PHP across 6 files
  • 6 JSON data files — artists, comments, messages, metadata, calendar, sessions
  • bcrypt authentication + PHP sessions
  • File upload with manifest management
Data Flow

How It All Connects

Browser (React 19 SPA)
  ├── Loads: index.html → main.js → copy.js (bilingual)
  ├── Gallery: reads photos/manifest.json (112 curated thumbnails)
  ├── Media: reads media/manifest.json (55 uploaded files)
  └── API calls: /partage/*.php
        ├── login.php → bcrypt verify → session cookie
        ├── upload.php → file save → manifest.json update
        ├── index.php → gallery CRUD
        ├── messages_api.php → message wall
        ├── calendar_api.php → event notes
        └── api.php → artist management

Storage (IONOS shared hosting)
  ├── data/*.json (flat-file, no database)
  ├── media/* (full-res uploads)
  ├── photos/* (480px curated thumbnails)
  └── artists/*/avatar.jpg (artist profiles)

By the Numbers

Real metrics from a real, live project — not a demo, not a mockup.

€0
Monthly Hosting Cost

Runs on existing IONOS shared hosting — no additional services needed

0
Build Steps

No Vite, no Webpack, no npm. Edit HTML, rsync, done.

4,058
Lines of Code

Full SPA + backend + bilingual copy in under 5,000 lines

0
Database Tables

JSON flat-file storage — readable, versionable, portable

55
Media Files

Artist uploads stored as full-res files on disk

112
Curated Photos

480px thumbnails for the public gallery

6
PHP Endpoints

Auth, upload, gallery, messages, calendar, API

2
Languages

Full bilingual support — English and French

What It Does

A complete association platform — not a landing page, not a placeholder.

Multi-Artist Upload

Each artist gets a profile, can upload photos/videos/audio, and manage their own portfolio. Admin moderation built in.

Comments & Likes

Threaded comments on every media file. Like system with counter. Community interaction without the toxicity of social media.

Events Calendar

Interactive calendar with note-taking. Members can add events, workshops, and rendez-vous. Shared across the community.

Message Wall

A community message board — leave words of encouragement, share ideas, or just say hello. Simple, warm, human.

Bilingual (EN/FR)

Full bilingual support with language toggle. Every label, every section, every error message translated. French-first design.

Secure Auth

bcrypt password hashing, PHP session management, upload token rotation. No OAuth dependency, no third-party auth service.

Design Decisions

Why Zero Build Step?

The no-build philosophy isn't a limitation — it's a strategic choice. Here's why it matters for this project:

Zero Attack Surface

No node_modules, no supply chain risk, no npm audit surprises. The only dependency is PHP — which IONOS provides.

Deploy by rsync

Edit a file, rsync it to the server, done. No CI/CD pipeline, no Vercel, no Netlify. The deploy command is one line.

Readable by Humans

The JSON data files are human-readable. You can open artists.json in any text editor and understand the structure. No ORM, no migrations.

📁
index.html
main.js
styles.css
copy.js
partage/*.php
data/*.json
media/*
photos/*
No build step. No node_modules. No framework magic.

Want Something Like This?

I build platforms like this for associations, small businesses, and creative communities. No vendor lock-in, no monthly fees, no complexity.