Groovetime
From Fragments to a Full-Fledged Design System
Evolving a tiny product UI into a robust system amid a company pivot

Contributions
Visual Design
Stackholders
Kwasi Ohene-Adu
Founder
Aaron Aung
Software Engineer
Jairo Villa
Art Director
Timeline
January - March 2022
Set the Mood
Forging the Foundations of Tomorrow
When I first arrived, the product was made up of icons, colors, and scattered screens, but no system to carry us forward. I began shaping a design system to lay the groundwork for scaling, just as the company entered its first major pivot.
The moment the new brand guidelines landed in my inbox, I knew the system had to evolve, immediately. It had to breathe with the brand and scale with the product.


Branding
Crafting a visual voice
As we made our 1st pivot into Web3, we needed a presence that could stand out in a crowded space. With the guidance of our art director, Jairo Villa, we discovered a new brand direction, one filled with vibrancy, energy, and a language that could carry our evolving identity forward.


Information Architecture
Defining the Language of Space and Order
To make the system scalable, I started by establishing clear rules for spacing and alignment. Every component and layout was mapped to a consistent grid, ensuring that elements felt connected while maintaining flexibility across different screen sizes.
I also defined the placement logic for key elements, buttons, cards, forms, and icons, so that each screen followed a predictable hierarchy. This made it easy for designers and developers to assemble new pages without breaking visual consistency.


Typography
Crafting a Universal Voice
As we expanded from designing solely for iOS to both major platforms, we needed a type system that could speak universally. SF Pro wasn’t readily accessible for Android users, so relying on it would fragment the experience. We wanted a custom font, one that was distinctive, cohesive, and reflective of our brand’s emerging identity.
This challenge coincided with new font technologies emerging, which allowed us to create a cross-platform solution that was flexible, unique, and ready to grow with the system.


Art Direction
Shaping the Language of Play
Art direction gave the system its personality. Blobs helped establish approachability, while gradients introduced vibrancy and motion. Frosted glass layers added depth and polish, softening the interface and making it feel more tactile.
We also introduced a subtle noise texture in the background to balance the glossy surfaces. This detail grounded the visuals, giving the product a sense of warmth and tactility that contrasted with the sleekness of glass and gradients.


Motion
Movement as a Design Language
With tight deadlines and a fast-moving team, our focus was on shipping the product efficiently. We leaned heavily on Google’s Material Design for existing widgets to maintain speed, but wherever possible, we added subtle, thoughtful touches.
Adoption & Practical Use
Bringing the System to Life
To make the design system truly usable, every component needed clear, centralized documentation. I detailed specs, states, and variants all on the same page, alongside example usages, so designers and developers could reference and implement components confidently without hunting across multiple files. This structure turned the system from a set of guidelines into a living toolkit.
Real-world adoption often revealed challenges. Developers occasionally diverged from typography rules, and some components required flexibility for edge cases. To address this, I implemented clear guidance on when exceptions were allowed and updated documentation as new scenarios emerged. This iterative approach ensured the system could evolve with the team while maintaining its integrity and consistency.



Pivot & Rebuild Mandate
One codebase, two tracks: preserve the core, reimagine the rest
We rebuilt the app to move faster on iOS and Android. The plan ran on two tracks: keep the primary flow stable for existing users, and redesign surrounding journeys to serve the new strategy.
Constraints: 8–12 weeks, a lean team, and platform expectations to respect. Success meant shipping a trustworthy core while creating room for innovation around it.
Critical Path
What shipped first—and why
- Define success for main flow → no regressions at launch
- Establish shared foundations (type, spacing, tokens) → faster, consistent assembly
- Essential components (buttons, inputs, top-level navigation) → unblock daily use
- Daily check ins on progress → readiness over polish
Scope Cuts
Protect reliability and speed
- Advanced effects after the core is stable
- Edge-case components → document now, schedule for v2
- Items risking timeline without clear user value → defer
Parity + Redesign Map
Preserve the main flow, rethink the rest
We protected the core flow that existing users depended on, and rethought others that no longer fit the strategy. We mapped which journeys needed 1:1 parity and which to retire, rebuild, or create from scratch.
The design system was our safety net—enabling speed and consistency as we redesigned without sacrificing quality.

Ready to go back to the main page?
Go back