Featured case study · Design System

Tatva Design System

A unified design language built solo in 3 months — covering tokens, 50+ components, icons, and documentation. Now powering all 5 apps at AppsForBharat.

Role
Solo designer — end to end
Timeline
3 months
Deliverables
Figma + code tokens
Team size
6–8 designers
50+
Components
5
Apps unified
3mo
Solo build
1
Source of truth

5 apps. No shared language.

AppsForBharat runs 5 consumer apps, each built and designed independently. With 6–8 designers working across products, there was no shared visual language — buttons had different corner radii, type scales varied, and colour values were duplicated with slight inconsistencies. Every new screen started from scratch.

Developers were constantly asking for specs on components that had been built dozens of times before. Onboarding a new designer meant weeks of absorbing undocumented conventions. The brand felt fragmented to users, even if they couldn't name why.

"There was no single source of truth. Each app had its own button, its own definition of what 'primary' meant."

What changed with Tatva

Before Tatva
After Tatva
Each app had its own button styles and components
Colour hex values duplicated across 5 Figma files
Developers asked designers for specs repeatedly
No documentation for new designers joining the team
Brand felt inconsistent across the app ecosystem
Every designer doing things their own way
One component library shared across all 5 apps
Token-based system — one change updates everywhere
Code tokens eliminated handoff friction with devs
New designers onboard using Tatva documentation
Consistent brand experience across all products
Shared language between designers and engineers

Diagnose before prescribing

Before designing anything, I conducted a full UI audit across all 5 apps — cataloguing every unique button style, colour value, spacing unit, and type style in use. The number was revealing: it gave me a clear mandate and helped me prioritise which inconsistencies caused the most friction.

I spoke with developers to understand what slowed them down most in handoffs. I spoke with designers about what they copy-pasted between files. Their answers shaped every structural decision in Tatva.

↑ Three apps, three different primary button styles — same company

One system, five identities

The core insight behind Tatva's architecture: every app shares the same structure, but carries its own identity. Primitive colour ramps are defined once. Semantic tokens map roles to primitives. Each app then aliases those roles to its own brand palette — meaning a single component works across Sri Mandir, Khatu, Super Astro, and Daily Mantra with zero duplication.

Layer
What it contains
Primitive tokens
Raw values only
prasadamsaffron-50…900 divinerose-50…900 bPurple-50…900 CosmicBlue-50…900 sunsetorange-50…900
↓ aliased to roles
Semantic tokens
Role, not shade
Primary Surface Primary Surface Elevated Primary Primary Dim Secondary Surface Primary Surface Inverted
↓ resolved per app theme
App themes
One token, 5 outputs
Sri Mandir
Prasadam Saffron ramp
Khatu Light
Divine Rose ramp
Khatu Dark
Divine Rose — inverted
Super Astro
bPurple ramp
Daily Mantra
Cosmic Blue ramp

This architecture means Primary Surface resolves to Saffron-50 in Sri Mandir, Divine Rose-50 in Khatu Light, and Cosmic Blue-50 in Daily Mantra — the same token, five brand expressions, zero duplication.

Typography system

A unique challenge across AppsForBharat apps: all content exists in both English and Hindi. The type system had to work bilingually — same weight scale, same size ramp, different script. This was a deliberate architectural decision, not an afterthought.

Weight
English
Hindi
Regular · 400
Devotion
भक्ति
Medium · 500
Devotion
भक्ति
SemiBold · 600
Devotion
भक्ति
Bold · 700
Devotion
भक्ति
Bold Italic · 700i
Devotion
भक्ति

Bilingual type system supporting English and Devanagari script across all 5 apps

50+ components. Every state documented.

Each component in Tatva ships with a full property matrix — Type, State, Size, and Content — configurable as Figma variants. One component covers hundreds of combinations. Developers consume the same structure via code tokens. No guesswork on either side.

Button — type · state · size · content
2
1
Button text
1. Icon Swap
Icon
2. ✏ Label 1 Text
TButton text
✏ Label 2 Text
T₹999
Type
Primary
State
active
Size
xl-56
Content
Right Icon
Text input — default · error · disabled · 3 sizes
Default
Error
Disabled
Label Name
Input Text
Supporting Text
Label Name
Input Text
Supporting Text
Label Name
Input Text
Supporting Text
Label Name
Input Text
Supporting Text
Label Name
Input Text
Supporting Text
Label Name
Input Text
Supporting Text
Label Name
Input Text
Supporting Text
Label Name
Input Text
Supporting Text
Label Name
Input Text
Supporting Text
OTP / PIN input — empty · focused · filling · 3 sizes
Empty
Focused
Filling
Label Name
×
×
×
×
Supporting Text
Label Name
×
×
×
Supporting Text
Label Name
2
2
×
Supporting Text
Label Name
×
×
×
×
Supporting Text
Label Name
×
×
×
Supporting Text
Label Name
2
2
×
Supporting Text
Label Name
×
Supporting Text
Label Name
Supporting Text
Label Name
2
2
Supporting Text
Toggle switch — on (neutral) · on (brand) · off
On — neutral
On — brand
Off / disabled
Chat bubble — sent & received

It suddenly increased in the last few weeks

2:00pm

It suddenly increased in the last few weeks

2:00pm
Product cards — Sri Mandir app (components in production)

Every element here is a Tatva component — the Popular badge, Prasad for Home tag, price block (₹450 ₹555 Save 20%), the bilingual CTA button (चुनें), and the 20k social proof footer. One consistent system across all 5 apps.

Popular
+ चुनें
Special water Coconut
For inner strength, healing...Read More
₹450 ₹555
+ चुनें
Prasad for Home
Offer Panch Mahabhent to Shri Hanuman
Navgrah Shani Temple
Invites wealth, prosperity & success...Read More
₹450 ₹555 Save 20%
Popular · 20k people offered
+ चुनें
Prasad for Home
Offer Sindoor and Coconut to Hanuman Garhi
2 Temples, 2 Offerings · On 21st June, Saturday
₹450 ₹555 Save 20%
Popular · 20k people offered
आपके प्रसाद पार्सल जल्द ही भेजा जाएगा
सालासर बालाजी प्रसाद बॉक्स
रवि कुमार, हाउस नंबर 552, दूसरी मुख्य सड़क...
बिल विवरण
बटन
ट्रैकिंग आईडी: XXXXXXXXXXXXXXXX
बटन
बटन

Sri Mandir app — all screens built with Tatva components, Devanagari script rendered natively via the bilingual type system

Building it was the easy part

Getting 6–8 designers and their respective engineering teams to adopt a new system — especially one built by a single person without top-down mandate — required more than great documentation. It required trust.

With designers: I ran working sessions where I built screens alongside teammates using Tatva components — making it feel like a tool, not a constraint. I also made it easier to use Tatva than to go off-system, by keeping the library close to real product patterns rather than theoretical ideals.

With developers: I showed engineers how code tokens would reduce their own rework — not just ours. Once they saw that a button change wouldn't require hunting through 5 codebases, they became advocates.

Deciding scope: A design system that tries to solve everything solves nothing. I made explicit, documented decisions about what Tatva would and wouldn't cover in v1 — and why. This kept the system lean and credible.

What Tatva unlocked

After Tatva was adopted across all 5 apps, the results were measurable — across handoff speed, consistency, and team onboarding.

50%
Faster handoff
Design-to-dev time cut in half with code tokens & shared component specs
40%
Fewer inconsistencies
UI inconsistencies across apps reduced after full Tatva adoption
Faster onboarding
New designers go from 2–3 weeks to days to get up to speed using Tatva docs
Velocity
More experiments shipped
With a stable component foundation, teams stopped debating UI decisions and started shipping. Faster iterations, more experiments, quicker wins.
Brand
One company, 5 products
Users now experience a consistent visual language across all AppsForBharat products. Trust and recognition compound over time.
Cost
Less rework, lower cost
Fewer one-off components, fewer spec clarification calls, fewer inconsistency fixes in QA. The system pays back its build cost quickly.
Scale
Future-ready foundation
Token architecture means a rebrand or product pivot doesn't require rebuilding from scratch. Tatva scales with the company.

What I'd do differently

I'd involve engineers earlier — even in the token naming phase. The vocabulary designers use and the vocabulary developers use don't always match, and that gap costs time downstream. I'd also establish a versioning and contribution model from day one, rather than retrofitting governance onto a system that had already shipped. A design system without a contribution model is a single point of failure.