Independent web developer — Brittany, France
I build fast, accessible websites for craftspeople and small businesses — development, technical SEO and performance, by one person.
Twenty years of web development, now on my own from Séné, on the Gulf of Morbihan. I design, build and ship sites end to end, and I cover in one place the three things most projects split across three vendors.
Build — Custom sites and web apps: content model, interface, code, deployment. Static-first when it fits, a framework when it earns its place.
Rank — Full-site technical SEO audits, run through a crawler and reporting pipeline I wrote myself. Findings come out prioritised, and when I have the codebase, applied rather than just listed.
Speed — Core Web Vitals, payload budgets, render path. Fewer bytes and fewer requests: better for users, better for search, and lighter on the servers and devices that carry it.
Everything below is live. Open it, load it on a phone, run Lighthouse on it.
| Project | What it is | Stack |
|---|---|---|
| cedric-ruiu.fr source |
My own studio site. Zero pixel ads, Zero third-party CDN, content in Markdown. | Eleventy 3 · Tailwind v4 (OKLCH) · Nunjucks |
| Myrmecophoto source |
Naturalist macro-photography of European ants: a taxonomic collection, one page per species, plus a field journal. Database-backed at build time, fully static at runtime. | Nuxt · Prisma · SQLite · SSG |
| Aksel San Tattoo source |
Client site for a tattoo artist near Strasbourg: portfolio, flashes, booking enquiry. Entirely static — nothing to patch, nothing to fall over under traffic. | Eleventy · Sass |
| GypSum source |
Plaster-mould calculator for ceramics. Derives exact water and plaster quantities from real gypsum density instead of a rule of three. Runs entirely in the browser. | Vue 3 · Vite |
| ATM Trainer source |
A cash-machine simulator so people with cognitive difficulties can rehearse a withdrawal with nothing at stake. Built with a special-education worker. Free, ad-free, open source. | Vue 3 · Vite |
Two earlier client sites are still online more than ten years after delivery, on hand-written WordPress themes rather than off-the-shelf templates: Danse de la Licorne (2015) and AKSVB Strasbourg (2014).
@cedric-ruiu/stylelint-config — a shareable Stylelint preset for CSS, SCSS, HTML, Vue, Svelte and Astro, with Tailwind v4 support and a logical property order. Published in 2023 and still maintained. It is the linting baseline on my own projects.
Daily JavaScript · TypeScript · Vue / Nuxt · Eleventy · Tailwind CSS · Node.js
Also PHP · SQL (PostgreSQL, SQLite) · Prisma · Sass / PostCSS
Ship & run Git · GitHub Actions · Docker · Linux · Nginx
Measure Lighthouse & CrUX · Search Console · my own crawler and audit tooling
- Static-first. If a page can be a file, it should be a file. Nothing to patch, nothing to keep alive.
- No lock-in. Code, content, images and domain belong to the client. Nothing sits behind a subscription or a tool they have no key to.
- One person. The one who understands the brief is the one who writes the code and pushes it live.
- Performance and accessibility up front. Not a cleanup pass three weeks after launch.
- Boring where it counts. Dependencies are a liability. I add one when it pays for itself.
I dive and freedive in the Gulf of Morbihan, volunteer with Bretagne Vivante, photograph ants for Myrmecophoto and contribute records to Antarea, and make ceramics when the tide is wrong. Different materials, same job: notice small details, be patient with things that only work if you get them exactly right.
Note
Available for freelance work — remote across France and further afield, on site around Vannes and the Gulf of Morbihan.
Tell me what you do and what you would like to improve. You will get an honest first opinion, including when the answer is that you do not need a new site.
cedric-ruiu.fr · contact@cedric-ruiu.fr · Séné, Morbihan (56), France
My site is in French. The code and the conversation are not.
No tracking pixel, no generated stat cards, no animated banner on this page. Same principle as the sites I build.
