A cloud headless CMS: a control panel for content, forms and integrations that clients build their web and mobile apps on top of. I own the frontend of the admin panel — a large SPA in React 19 and TypeScript — working alongside designers and backend engineers.
Most of the work is not CRUD forms but interfaces with genuinely involved logic: a recurrence builder for dates and times, tables with a large number of states, real-time collaborative editing, a visual editor for relations between entities.
The work does not stop at the interface: I own the translation pipeline, the documentation and the tooling around it, and I step in for backend engineers on Node.js and PostgreSQL when needed.
What I did
Admin panel interfaces from Figma mockups to production: components, pages and backend API integration.
Pages with genuinely involved logic: a recurrence builder for dates and times, tables with filtering, sorting and a large number of states, JSON Schema form builders (RJSF).
Real-time collaborative editing on CRDT (Yjs, y-websocket, y-webrtc) with state synchronised between users.
A visual editor for schemas and relations on React Flow (@xyflow), an embedded Monaco code editor, dashboards on ApexCharts and Chart.js.
System localisation: i18n plus an in-house translator for interface copy built on the OpenAI API, replacing hand-maintained dictionaries.
Documentation in Docusaurus and the tooling around it: video walkthroughs generated with Playwright — a script drives the real system and records the clip, so the footage does not go stale after a redesign.
Retrieval-augmented generation over the documentation for an in-app chat widget: users ask a question and get an answer linked to the relevant section.
Migration of a legacy vanilla-JS site to Next.js.
Visual and end-to-end testing: Storybook with Playwright, maintaining the component library, code review.
Backend work on Node.js and PostgreSQL from time to time, standing in for backend engineers when the team needed it.
Interface
Recurrence builder: a calendar for picking days, weekly, monthly and yearly repeats, time intervals with a step and exceptionsVisual integrations editor on React Flow: a node palette, an order-processing graph and a debug panelPage editing: tabs for data, categories, attributes and blocks, plus a nested category tree