Bangkok · Available for work

Damien
Fleury

Full-stack Developer & Web Designer

THE REAL JOB

Software that ships, and keeps running auth, retrieval, monitoring, and a bill you control.

Things I've shipped.

Full-stack products built end to end — RAG pipelines, CRMs, analytics and governance tooling. Open any card for the story and a look inside.

Next.js·FastAPI·TypeScript·Prisma 7·PostgreSQL·pgvector·LlamaIndex·Ollama·Azure OpenAI·RAG pipelines·Docker·Caddy·OCI·React·Tailwind v4·JWT·Supabase·Playwright·Elementor·WP Engine·Next.js·FastAPI·TypeScript·Prisma 7·PostgreSQL·pgvector·LlamaIndex·Ollama·Azure OpenAI·RAG pipelines·Docker·Caddy·OCI·React·Tailwind v4·JWT·Supabase·Playwright·Elementor·WP Engine·
Crisis Intelligence
Real-time PR crisis detection with AI-powered response.
Live
Computer Vision
Computer vision for African basketball.
Live
Sport · Performance
Sports performance tracking & athlete management.
Event Planning
End-to-end event performance tracking.
Infrastructure
DNS health monitoring & domain CMDB.
Live
Sports CRM
CRM for African professional basketball clubs.
Live
Governance
Phase-gated grant governance SaaS.
Live
Academy Ops
Ops tool for a kids martial-arts academy.
Live
EdTech
French exam-prep SaaS.
AI · RAG Translation
AI translation workflow with RAG translation memory.
HOW I WORK

From wireframe
to server.

One person accountable — from the first sketch
to a product running in production.

Discover

Goals, constraints, the real problem.

Design

Flows, wireframes, a visual system.

Build

Frontend, API, data, and the AI.

Ship

Dockerised, deployed, on a domain.

Operate

Monitoring, backups, automations.

Code becomes interface.

I write it and design it — scroll to watch a component build itself.

Impact.tsx
1export function Impact() {2  return (3    <Card>4      <Header>5        <h3>Impact</h3>6        <Delta>+38%</Delta>7      </Header>8      <Chart data={series} />9      <Stat value={128400} />10      <Toggle label="Dark" />11      <Tags>Productivity · Savings · Growth</Tags>12    </Card>13  );14}

Impact

Live
+38%
$0
ProductivitySavingsGrowth
STACK

The toolkit.

Tools I reach for across frontend, backend, data, AI and infrastructure.

ReactNext.jsTypeScriptJavaScriptTailwindViteHTML & CSSReactNext.jsTypeScriptJavaScriptTailwindViteHTML & CSS
Node.jsPythonPHPFastAPIExpressPrismaRESTPostgreSQLMySQLpgvectorRedisNode.jsPythonPHPFastAPIExpressPrismaRESTPostgreSQLMySQLpgvectorRedis
DockerKubernetesOCICloudflareCaddyNginxCI/CDRAGOllamaAzure OpenAIWordPressDockerKubernetesOCICloudflareCaddyNginxCI/CDRAGOllamaAzure OpenAIWordPress

The call,
and the why.

Engineering is a stack of trade-offs. A few I make often — and the conditions that would change my mind.

New product · small team · ship fast
My call

One language across front and back, shared types end to end, and the biggest ecosystem. For a small team shipping a product, that single mental model is the fastest path from idea to production.

BUILD → SHIP → OPERATE

The surfaces
I work across.

The parts under the hood that decide whether a product survives real users.

Realtime

Live, multi-user state so everyone works on the same data at once — fewer conflicts, faster decisions.

Auth

Secure sign-in and role-based access so the right people see the right things — and nothing leaks.

RAG

AI that answers from your own documents, not the open web — accurate, cited, on-topic for your team.

Payments

Stripe checkout, subscriptions and webhooks wired in — billing that just works and reconciles itself.

Containers

Packaged once, runs identically everywhere — no “works on my machine”, quicker onboarding and deploys.

CI/CD

Tests and deploys automated on every change — ship more often, with less risk and no manual steps.

Compute

Right-sized servers, serverless or edge — the performance you need and a bill you can control.

DevOps

Infra-as-code, environments and automated releases — repeatable and boring.

Cloudflare

CDN, DNS, WAF and edge caching — fast everywhere and shielded.

UAT

Staging, preview envs and user acceptance — caught before it ships.

Monitoring

Logs, metrics and alerts that surface issues early — less downtime, faster fixes, calmer launches.

Maintenance

Backups, migrations and restores handled — the product stays reliable long after launch day.

Performance

Core Web Vitals, caching and query budgets — speed users actually feel.

Scalability

Queues, workers and horizontal scale so a spike doesn’t take it down.

Retention

Lifecycle emails, events and churn signals that turn first-time users into regulars.

WHAT I BUILD

Products, built
end to end.

  • SaaS productsend to end
  • RAG & AI pipelinesretrieval
  • Dashboards & analyticsdata
  • CRMs & internal toolsops
  • Brand & websitesdesign + build
  • Automationsworkflows

Results driven

Full products — shipped, deployed and kept alive. Not slides, not prototypes.

0+
Products shipped end to end.
0
SaaS running in production.
0%
Designed, built & deployed solo.

Interfaces that feel obvious.

Good UX disappears. The principles behind it — and the brands and product sites shaped end to end.

DESIGN PRINCIPLE

Good design disappears. The interface feels obvious, the motion means something, and nothing makes you stop and think.

From brief to UI.

I design it as well as ship it — scroll to watch one screen climb from a written brief to a finished interface.

  1. 1Brief
  2. 2Low-fi
  3. 3High-fi
  4. 4Final UI
Brief
Goal
Audience
  • Track key metrics at a glance
  • One primary action per screen
  • Accessible, dark mode, fast
01 — GeTeCe

A trading group,
made legible.

Brand identity and website for GeTeCe — a Thai group distributing chemicals, fragrances, flavours and food ingredients. A confident red-on-white system, a fluid water motif and calm wayfinding turn a wide, multi-audience catalogue into something that genuinely feels easy — and friendly — to navigate.

  • Identity system

    Colour, type and tone lifted straight from the brand and handed over as reusable tokens the whole team can reach for.

  • Bilingual EN / ไทย

    English and Thai, both first-class from day one — never bolted on at the end.

  • Maintenance & growth

    Ongoing upkeep, upgrades, SEO and GEO (generative-engine optimisation) keep the site fast, current and easy to find — for people and AI search alike.

Visit site

GeTeCe — fragrance & flavour collection, website hero
02 — IfYouCan

Designed, built
and tuned.

End-to-end design and WordPress build for IfYouCan — every screen, every icon and every component crafted from scratch, then tuned for near-perfect performance and search.

  • Design + WordPress build

    The whole site designed and hand-built in WordPress — custom blocks, no page-builder bloat.

  • Custom iconography & components

    A full custom icon set and reusable component library, consistent across every template.

  • Performance & SEO

    Tuned for top Core Web Vitals and search — fast, accessible and built to rank.

IfYouCan — product visual
03 — Songa

Scouting,
by the numbers.

A computer-vision platform for African basketball — turning game footage into structured player data and a scouting profile. Bilingual FR / EN, Côte d'Ivoire-first.

  • Bold identity

    Electric blue and lime, built to feel like sport — not spreadsheets.

  • Data made visual

    Raw footage becomes player cards and readable metrics.

  • Bilingual FR / EN

    One product, two languages, no compromise on either.

Visit site

04 — CourtBase

Built to
convert.

Marketing site for an African basketball-club CRM — animated social proof, a clear pricing toggle, and one conversion-first path from landing to sign-up.

  • Conversion-first

    Every section drives toward a single, obvious next step.

  • Motion with purpose

    Animated proof and counters that reinforce, never distract.

  • EN / FR

    Localised for clubs across francophone and anglophone Africa.

Visit site

courtbase.damien.asia
CourtBase — desktop
CourtBase — mobile
05 — FEDESA

A federation,
on the record.

Public site for the Senegalese Athletics Federation — a bold editorial hero, a live results ticker, and a dark stadium look carried by national-green accents.

  • Editorial hero

    Oversized type and imagery that give the federation real presence.

  • Live results

    A results ticker keeps the season visible at a glance.

  • National identity

    Green and gold from the flag, applied as a system.

FEDESA · case study
FEDESA — desktop
FEDESA — mobile
06 — Pikko

Reading,
made a game.

A Thai reading game for young children — karaoke-style word highlighting, a gamified story map, and a parent dashboard to follow progress. Installable as a PWA.

  • Karaoke highlighting

    Words light up in sync with audio to build word recognition.

  • Gamified map

    A story map turns practice into a journey kids want to finish.

  • Parent dashboard

    Progress, streaks and time spent — visible to parents.

Pikko — app homepage
07 — QNET

A redesign with
room to breathe.

An Apple-style redesign direction for a global e-commerce brand — restrained type, generous whitespace, and calm, deliberate motion.

  • Restrained type

    A tight type scale doing the heavy lifting — nothing shouting.

  • Whitespace as structure

    Space used as a layout tool, not leftover margin.

  • Calm motion

    Transitions that guide attention without demanding it.

Visit site

qnet.net
QNET — desktop
QNET — mobile
What I do

Design, end to end.

From a brand's first identity to a shipped product UI — and the build behind it when you need one person to carry it through.

01

Brand & identity

Logo, palette, type and tone — a system, not a one-off logo.

02

Product UI / UX

Flows, wireframes and high-fidelity screens for web and mobile apps.

03

Design systems

Tokens, components and docs so the product stays consistent as it grows.

04

Web design & build

Marketing sites and front-ends designed and shipped — WordPress or custom.

05

SEO

Semantic markup, metadata, sitemaps and fast pages so the work actually gets found.

06

Web performance

Core Web Vitals, image and font budgets, lazy-loading — quick on every device.

The work, in motion.

Ten products I designed and built, running live — on sample data, never a real client's.

AI · Crisis comms

A full PR toolkit, grounded in your own playbook.

Describe the crisis in a few lines and Luma drafts the whole response kit — holding statement, key messages, Q&A, 3Rs — pulled from a RAG knowledge base of your past responses, not invented.

Python / FastAPIReactpgvector · RAGLocal LLM
1
Generate a toolkitDescribe the crisis and scope it by type, severity and market. Luma embeds the brief and retrieves the most similar past responses from the knowledge base.
01 07
01 07
Create Toolkit
Generate a full PR response kit, grounded in past responses
Search markets, keywords…Generate toolkitPR
Crisis briefscope the toolkit
Knowledge base4 sources retrieved
Querying past statements, press releases & monitoring reports by similarity.
press release
Product safety clarification
Calvert · 2023
84%
historical crisis
Supply-chain defect response kit
Azuria · 2023
78%
monitoring report
Quarterly reputation review Q3
Meridia · 2024
71%
7 documents + action timeline will be drafted from these sources.Generate toolkit
AI · RAG translation

Translation memory that pays for itself.

Sylla turns past translations into a memory that auto-fills the next document — reviewers only touch what actually changed.

Next.js 16PostgreSQL · pgvectorAzure OpenAIRAG / TM
1
New translationName the project, pick a department, set From → Into languages, drop a file. One project fans out to 5+ languages.
01 05
01 05
New translationFRTHARVIID
Project name & departmentComplete
Project nameProduct Overview 2026
DepartmentSalesMarketingLegal
Languages5 / 7
FromEN
Translate intoFRTHARVIID+ Add…
3Source content
overview-2026.docx842 words · 9 paragraphs · matched against memory
CV · basketball scouting

Turn game footage into player data.

Songa watches the tape so coaches and scouts don’t have to — detecting and tracking every player frame by frame and turning raw movement into a structured match report.

Next.js 16FastAPIYOLOv8 · ByteTrackOpenCV
1
Drop the footage inA club-grade game clip is dropped straight in. Songa splits frames and runs the pipeline — detect, track, shots, report — with no manual tagging.
01 05
01 05
Upload · CV match analysisAnalysing
match-q3-half-court.mp4214 MB · 1080p · 30 fps
62%
Estimated time remaining~4 min
Player detection
Trajectory tracking
Shot analysis
Report generation
Sport analytics

Every result, tracked over time.

SenTrack Pro turns scattered meet sheets into one athlete history for a national federation — automatic personal bests, season progression and side-by-side comparison.

Node / ExpressReact / VitePostgreSQLDocker / OCI
1
One roster, one sourceAthletes, clubs and disciplines live in a single roster — filterable by club, category and status — instead of loose meet sheets and spreadsheets.
01 05
01 05
Athletes
54 athletes · 8 affiliated clubs
Search athletes, events…+ Add athleteFA
All clubsSeniorU20ActiveSearch…
46Active
4Injured
31Men
23Women
28Senior
18Youth
AS
Amina Sow
Coastal AC
Active
100m200m
Senior
KN
Karim Ndiaye
Union Sprint
Active
400m400m H
Senior
FB
Fatou Bâ
Génération AC
Active
Long jumpTriple j.
U20
LF
Lamine Faye
Coastal AC
Injured
High jump
Senior
AD
Awa Diop
River Track
Active
800m1500m
U20
MC
Moussa Cissé
Union Sprint
Inactive
Shot put
Senior
Infra ops · CMDB

One source of truth for every domain.

Cirrus cross-references your providers into one inventory, scores every domain’s health and surfaces drift and dead weight before it bites.

Python / FastAPIReact / VitePostgreSQLDocker
1
Every provider, mergedStratus Edge, PressForge and Verra Host records are pulled into one canonical inventory — one searchable table with provider, category, status and expiry on every domain.
01 05
01 05
Domains
318 records · merged across 3 providers
Search domain, owner, department…ExportIN
All statusesActivePendingDecommissioned318 domains
DomainProviderCategoryStatusIn CFExpiryOwner
northwind.exampleStratus EdgesitesActiveYes14 Mar 27A. Reyes
shop.northwind.exampleStratus EdgeportalsActiveYes02 Sep 26A. Reyes
harbor-mail.examplePressForgebusinessPendingNo21 Jun 26M. Okafor
go.northwind.exampleVerra HostredirectsActiveNo30 Nov 26L. Tran
legacy-crm.exampleVerra HostbusinessDecommissionedNo08 Jul 26
cdn.northwind.exampleStratus EdgesitesActiveYes17 Jan 28S. Bauer
Sports CRM

Run the club like a real front office.

CourtBase gives a pro basketball club one dark-mode front office for its squad, transfers and fans — FM-style player cards, a prospect pipeline and a fan CRM, instead of notebooks and chat.

React / ViteTypeScriptExpressPostgreSQL · multi-tenant
1
One squad of recordPlayers, contracts and history live in one place instead of a stack of notebooks — KPI tiles surface roster size, average age and contracts expiring within 90 days.
01 05
01 05
Squad
Lagune BC · 18 players on the roster of record
Search players, prospects…Add playerDC
Players18active roster
Avg age24.6years
Avg height197cm
Expiring3contracts ≤90d
7
A. Diabaté
SG24y · 196cm · CI
Expiring
3
M. Traoré
PG22y · 188cm · ML
15
K. Mensah
C27y · 211cm · GH
21
S. Okafor
PF25y · 205cm · NG
Injured
11
B. Cissé
SF23y · 200cm · SN
5
J. Bahati
PG26y · 190cm · CD
Operations SaaS

The whole academy on one board.

Kids Academy gives parents a phone app to book, refill and check in — and the studio a live board for reception, coaches and the manager.

Next.js 16Prisma 7PostgreSQLEN / TH / FR
1
Parent logs inNo passwords — a one-time code lands by SMS and the parent is straight into their kids and packs.
01 06
EN · TH · FR
Enter your codeSent to +66 81 ··· 5678
481
Resend code in 0:24
Change number
Event ops SaaS

Every event, on one timeline.

Event Flow replaces a scatter of spreadsheets and chat threads with a single year-long board — teams, regions and channels in one view, planned together in real time.

ReactNode / ExpressPostgreSQLSocket.IO
1
The whole year on one boardEvery team, region and channel sits on a single 12-month Gantt — a sticky team column on the left, months and weeks across the top, and status-coloured bars stacked into lanes so nothing overlaps.
01 05
01 05
TEAM
JanFebMarAprMayJun
W1W2W3W4W5W6W7W8W9W10W11W12
BrandSpring LaunchHero FilmOut-of-Home
GrowthPaid SocialRetargeting
LifecycleWelcome SeriesWin-back
FieldSummitRoadshow
Governance SaaS

No tranche moves without a gate.

Playn puts every disbursement behind a phase-gate — funds only release once the checkpoint is signed off, evidence is attached, and the whole trail is auditable after the fact.

Next.js 16Prisma 7SQLite
1
One governance dashboardActive programmes, expenses pending action and open CRAID items in one place, with the queue that needs your sign-off surfaced first.
01 05
01 05
Dashboard
PMO · 12 active programmes
Search programmes…ExportDF
Active programmes12
Expenses pending5
Open CRAID items3
Needs your attentionview all
Field training — facilitator stipendsSahel WASH$14,200Finance ReviewAwaiting Finance
Borehole survey equipmentAnopa Fund$8,750SubmittedAwaiting PM review
Community radio airtimeVolta Health$3,400ClarificationNeeds clarification
Recent activity
AD

Amina Diallo Finance approved expenseapproved

12m ago

KM

Kojo Mensah Forwarded to Finance expensefinance review

1h ago

LO

Lena Osei Passed gate on tranchereleased

3h ago

Spend by classificationapproved
$1.4Mdisbursed
Training38%Equipment26%Logistics18%M&E12%Other6%
Education dashboard

Structured French prep that tracks itself.

Nuance turns a pile of PDFs into a guided DELF / DALF track — sequenced vocabulary sessions, grammar drills, full mock exams and a practice picture per skill, all in French, for one enrolled learner.

Next.jsNextAuth (Google)MarkdownDocker
1
One guided courseInstead of a folder of loose PDFs, the home dashboard sequences every session into a real track — with a per-session progress bar and B2 / C1 level so the learner always knows the next step.
01 05
01 05
Bonsoir, ravi de te revoir.
Mardi 17 juin · 6 jours d’affilée
Chercher un mot…ReprendreG
Ta progression
Vocabulaire, grammaire, compréhension — session par session.
18sessions
214mots
5B2
13C1
Tes sessionsprogression par session
S7C114 mots
IA, souveraineté et culture
100%
S6C112 mots
L’engagement citoyen
67%
S5C111 mots
Transition écologique
33%
S4B210 mots
Médias et information
0%
Modules
Vocabulaire18 sessions · 214 mots
Grammaire9 exercices QCM
Examens4 simulations DALF C1
About

Whole products,
shipped by one person.

I partner with founders to take an idea from the first sketch to a product running in production — designing the brand and the UX, then building the full stack underneath it. One mind across the whole thing, so nothing falls between design and engineering.

  • Strategy before screensShaping the product and the call behind it — not just the pixels on top.
  • One accountable makerDesign, build, deploy and upkeep from a single person who owns the whole.
  • The unglamorous parts, handledAuth, RAG pipelines, infra and monitoring — the plumbing that keeps it alive.
  • Fast, remote, EN or FRA tight loop from first sketch to production, fully remote, in two languages.
10+Products shipped end to end
6SaaS live in production
SoloDesigned, built & deployed
Capabilities
Product UI / UXBrandingWeb designDesign systemsFull-stackRAG & AIDevOpsWordPressSEOBilingual EN / FR