Personal app · Next.js · TypeScript · Vercel
Ledger
A salary and budgeting app I built for my own use. Designed directly in code, never in Figma, and I’ve been using and improving it for two months.
How I work in Figma
I’ve used Figma since day one, 7+ years now. I build design systems where every value is a reference, so engineers get code that matches the design, not an approximation of it.
01
Developers can connect their favourite AI agent to Figma over MCP and get pixel-perfect code.
Designers used to spend reviews arguing about why the build wasn’t pixel-perfect. With that out of the way, the conversation moves to what matters more: better interactions, micro-interactions and animation that guide and delight users.
01
Figma design
Tokens, auto layout, constraints
02
MCP
Agent reads the real structure
03
Developer’s AI agent
Whichever they prefer
04
Production code
Responsive, mapped to tokens
02
A live widget from my team’s library at Dialog: W0015, the product configuration widget, open in Figma.
ID and version
W0015 v0.1.0. Every widget is catalogued and versioned, like a code package.
Versioned building blocks
The segmented control track (v0.1.0) holds segments at v0.2.0. Each layer updates without breaking the one above it.
Properties that become code props
5 on/off switches and 3 text properties, named the way a developer would name them.
A slot for other widgets
configuration-item-slot takes W0025, the configuration selection widget, without detaching anything.
Auto layout throughout
Vertical stack, 16 spacing, fixed 328 width, height that hugs its content.
The same widget, as a developer uses it
<ProductConfiguration showConfigurationType configurationType="Billing type:" showConfigurationValue configurationValue="Postpaid (Monthly bill)" showSelectionLabel showLinkText linkText="Compare router options" showSeparator > <ConfigurationSelection /> // W0025 in the slot </ProductConfiguration>
Illustrative. Every property in the Figma panel carries straight across.
This is what an AI agent reads over MCP. Nothing to interpret.
03
I started as a design engineer: Android native before AI, React Native with it, and front-end prototyping for the web. I know what a developer expects to find in a design file, so code-ready design isn’t extra work for me. I still ship code today as a hobby.
Personal app · Next.js · TypeScript · Vercel
A salary and budgeting app I built for my own use. Designed directly in code, never in Figma, and I’ve been using and improving it for two months.
E-commerce · Storefront and admin panel
An online store I designed and built end to end: the storefront customers shop on, and the admin panel behind it that runs the business.
04
Components and slots
I build components the way engineers do: one source, variants for every state, and slots so content swaps without anyone detaching.
Never detachAuto layout
If a frame can’t resize like the real screen, it isn’t finished. Everything I hand over stretches, wraps and hugs like production.
Built to resizeVariables
Colour, spacing, radius and type live as tokens. In Marvel, one mode switch moves a screen between English, Sinhala and Tamil.
Modes, not copiesStyles
Styles sit on top of variables, so a brand tweak is one change, not a hunt through two hundred frames.
One change, everywhereLibraries
One published library feeds every team file. Fix it once and every file gets the fix.
Single source of truthFigma agent
Agents take care of the grunt work that slows delivery, and stay true to the system. I spend my time on the design problems worth solving.
Grunt work, handledFigJam
Where the messy thinking happens: workshops, journey maps and turning research into themes before anything is drawn.
Think before pixelsFigma Make (AI)
When a static frame can’t answer the question, I prompt a working prototype and put it in front of people quickly.
Prompt to prototypeFigma · Design work samples
See the files for yourself
A mix of my own concepts, freelance projects and Dialog work.
Next · Get in touch
Like what you see? Let’s talk.
Still working on the mobile version…
This portfolio is built for tablets and laptops, so the case studies and screens read properly. Please open it on a wider screen.