Iโm Meena, a developer at GeekyAnts, specializing in React and React Native, and this is Tanisha, my colleague whoโs recently started to get all the dev jokes.
Hello everyone! Iโm Tanisha, and I work as a designer at GeekyAnts. Designer, right? Iโm here to share that apart from getting those developer jokes, Iโve also started to dive deep into the developer mindset while collaborating with my team. At GeekyAnts, we arenโt just about code; weโre a community of memes, hackathons, birthday celebrations, and epic trips. Youโll find us in heated foosball matches or planning our next tennis game. But if you look closely, what truly binds us is our shared passion for research, collaboration, and building amazing things.
Meena and I work closely, often side-by-side in the React Native ecosystem, but despite our proximity, weโve realized that miscommunication can create hurdles. So today, weโre here to talk about something many of you have probably experiencedโbridging the gap between design and development. Itโs a conversation many are having, especially when designers promise, "just one last change," and developers start to feel faint.
Uniting Design and Development, One Line at a Time
If you follow conversations online, youโll notice that designers are being encouraged to learn to code, and developers are being asked to familiarize themselves with design terminologies like tokens. So, today, weโve chosen to talk about bridging the gap between design and functionality. Weโll share the challenges, a possible solution, and how we built a universal component library thatโs shaping our collaborative process.
Two Mindsets, One Vision

Before we dive into the details, letโs acknowledge that the designer and developer mindsets are fundamentally different. This isnโt about a "versus" situation; itโs about how each perspective enhances the final product. When a designer hears about a new project, their mind races with ideas about user interfaces, brand consistency, and user flows. As a developer, Iโm more concerned with performance, APIs, and the technicalities that make it all work. We both have a vision, but they donโt always align.
The Struggle Between Dream and Reality

One of the common issues is when I, as a developer, see a design like a complex animation, and I immediately start thinking about how it will impact performance. Weโve even studied the performance of 20 websites, and letโs just say, the results didnโt live up to the design's promises.
Design Is an Art, But Coding Brings It to Life

Letโs talk about shadows for a moment. As a designer, Tanisha might meticulously craft the perfect shadow, considering its purpose, light source, intensity, and properties like blur and spread. But for me, implementing shadows across platformsโAndroid, iOS, and webโis far from straightforward. Each platform handles shadows differently. There are even open-source tools that attempt to bridge this gap, but they often fall short. We need tools that are truly designer-friendly, translating their vision into the technical realm seamlessly.
The Case of the Three Squares: When Numbers Donโt Tell the Whole Story
Now, letโs blow your mind with a simple riddle. Here are three squares, all with the same dimensions, 170 pixels by 170 pixels. But, visually, they look completely different. Can you tell why? It turns out that design tools like Figma allow for strokes to be inside, outside, or centered, but this isnโt reflected in the developer's specifications. For us, borders are just bordersโthey donโt change the boxโs dimensions. This kind of discrepancy is just one example of how we, as designers and developers, need to bridge the communication gap.
Letโs Speak the Same Language
So, how do we fix this? The first step is building a common language. We realized that even though we were talking about the same concepts, our terminology differed. For a designer, itโs an artboard; for a developer, itโs a viewport. Designers talk about opacity, developers mention alpha, designers use layers, and developers work with z-index. Improving communication is critical, but where do we start? Thatโs where our small side project, Bridge the Gap, comes in.
The Token Revolution
Another solution thatโs gaining traction across the industry is a tokenized system, which helps foster collaboration between design and development. Many companies have adopted it as part of their design systems, and itโs something weโre actively working on at GeekyAnts as we develop Glue Stack UI.
Real-Life Lessons from NativeBase and Glue Stack
Why are we speaking about this today? Well, Meena and I have first-hand experience from building NativeBase and now GlueStack UI. Despite sitting next to each other, there were constant communication gaps, especially around design handoff and the development process. Thatโs why weโre here to share the lessons weโve learned and the systems weโve built to close those gaps.
The Great Modal vs. Action Sheet Debate

Letโs take a look at an example. Modal vs. Action Sheetโtwo similar components with very different behaviors depending on the platform. On the web, itโs a modal, but on mobile, it might be an action sheet. Our solution needed to be flexible enough to accommodate both, which is why we opted to let users choose.
The same goes for gradients. While designers can easily create radial gradients in Figma, implementing them in React Native isnโt as straightforward. Often, we have to rely on third-party libraries or SVGs.
Breaking Silos, Building TeamsโWeโve covered some common issues and solutions, but now letโs talk about what we did differently. Instead of siloing designers and developers into separate teams, we created integrated squads that promote daily interaction. We also have design system leads who maintain the consistency of components and document everything so the entire team can stay on the same page.
Early Collaboration Beats Last-Minute Panic
On the process side, early collaboration is key. We started holding regular cross-functional meetings, demos, and feedback loops. We even created workshops that both designers and developers could attend together, fostering a shared understanding of each otherโs work.
Building a Library That Everyone Can UseโWhen it comes to project execution, we laid down a clear structure. We forked an open-source design system and customized it to create our internal system, which we use across multiple projects. We also built a development structure that allows for easy customization and reuse of components.
Weโve implemented checklists for every stage of development, from the requirement gathering phase, where we ask existential questions like, "What is the primary purpose of this component?" to the design phase, where we consider how components will interact with each other and align with the overall design system.
Handing Off Without Dropping the Ball
In terms of developer handoff, we created a specification sheet that includes APIs, tokens, and all the necessary details for each component. This way, anyone on the team can refer to it and understand exactly how the component should behave.
The Tools You Didnโt Know You Needed
We even took it a step further and developed tools like DSX, a design system builder that allows designers to generate foundation-level tokens that can be directly used in code. We also created Figma plugins that translate code into design files, ensuring a seamless handoff between design and development.
As weโve grown, so has our community. Tools like Figmaโs Dev Mode, Framer, Webflow, and Storybook have played a significant role in improving collaboration, and weโve been excited to contribute to that conversation by sharing our experiences and solutions.
Finding Harmony Between Creativity and Technology
In closing, itโs all about balance. The balance between creativity and functionality, aesthetics and usability, and innovation and practicality. This balance is what drives successful projects and fosters a thriving environment for both designers and developers.
Thank you all for being here today. If you want to continue the conversation or see more of what weโre working on, feel free to reach out.







