A journal that listens: building Dyfna with Expo
Users•React Native••11 minutes read
Karol Koronowicz
Guest Author
Discover how Dyfna used Expo to build a native-first journaling app delivering therapy-inspired experiences, rapid iteration, and science-backed well-being.

This is a guest post from Karol Koronowicz - a designer and engineer from Poland and the founder of Responsly, an experience management platform and Dyfna, a well-being app.
...
Most journaling apps are digital notebooks. Dyfna is something deeper — a mind assistant designed to feel like a therapy session. It remembers what you’ve shared, reflects on your thoughts, and offers science-backed suggestions to help you grow. It’s part journal, part companion, and fully grounded in cognitive behavioral research.
Access to therapy remains limited worldwide. Even among those who manage to begin treatment, many struggle to afford ongoing care. According to a 2022 survey by Verywell Mind—a platform guided by mental health professionals—nearly one-third of 1,000 adults in therapy reported discontinuing their sessions to save money. Additionally, almost half expressed concern about their ability to continue paying for treatment. Increasing access to therapy should be an important priority - but it's also important to build apps that can give therapy-like experiences in more accessible form.
In this post, I’ll share how we brought Dyfna to life using Expo — and why it was the perfect choice for building a polished, native-first experience with a small team and fast iteration cycles.
The origin of Dyfna
The idea for Dyfna came from a personal struggle with depression and work burnout. I started from a complete lack of mental health awareness, which significantly delayed my recovery. When I began using various psychology tools, I found it difficult to manage them all together. I wanted a tool that could help people like me process emotions, identify patterns, and move toward healthier habits — even if they couldn’t see a therapist regularly. That story is documented in more detail here, but the key takeaway is that I needed Dyfna to feel personal, trustworthy, and thoughtful.
Go native-first
From the beginning, we knew we didn’t want to start with a web app. It was clear that for Dyfna to reach widespread adoption, we needed to go native — on both Android and iOS.
Mobile-first made sense not just from a user experience perspective, but also for distribution, engagement, and long-term retention. Native platforms come with built-in discovery channels like the App Store and Google Play, support for push notifications, and frictionless integration into users’ daily habits. We didn’t want to fight the limitations of the browser when our core experience needed to feel personal, always available, and deeply embedded in everyday life.
Going native wasn’t the easy path — it meant more upfront effort, higher initial development costs, and tighter iteration cycles. But for Dyfna, it was the only path that made both strategic and emotional sense. It aligned with our belief that wellbeing tools should live where people already are — on their phones, ready when they need them.
Why we chose Expo
From the beginning, we knew we wanted Dyfna to feel like a beautiful, hand-crafted native app. But we also needed to move fast — with a team of just two developers. We initially tried Flutter, but the developer experience didn’t suit us. The syntax felt unfamiliar and slowed us down. We quickly switched to Expo, and from day one, it clicked. Coming from a Vue.js background, React Native felt intuitive and easy to pick up.
The biggest advantages of Expo:
- Full control over the UI, allowing us to custom-design every component
- React Native performance, without the headaches of native setup
- Fast iteration, with hot reload and emulator-based design sessions
- Amazing DX (Developer Experience), with no glitches or unexpected issues
- Production-ready defaults, especially when integrating with services like Supabase and RevenueCat
We shipped our MVP in about five months — redesigning nearly every screen five or more times until it felt just right. That level of iteration would’ve been painful with most native stacks. With Expo, it felt natural.
Designing the app in Expo
I personally love designing directly in code — there’s something powerful about testing an idea the moment it comes to mind. For Dyfna, we took a very hands-on, iterative approach. We spent minimal time in Figma and didn’t bother creating clickable prototypes. Instead, we would sketch out a rough concept, build it right away in Expo, and adjust on the fly. In many cases, changes we came up with during development were better than what we initially designed — so we updated Figma after coding, not before.
This workflow was fast, fluid, and allowed us to focus on how the product actually feels, not just how it looks. That’s especially important for a wellbeing app like Dyfna, where emotional tone and micro-interactions matter a lot more than pixel-perfection.
One of the most fun and impactful aspects of our design process was working with animations. We created a fully custom navigation experience with animated transitions that respond to user taps. This added a personal, polished touch that users consistently mention in feedback. It made the app feel alive — responsive, warm, and intentional.
Expo made this easy. Animating things — whether it was buttons, screens, or entire flows — felt smooth and approachable. There were multiple ways to achieve each effect, and we were rarely blocked or slowed down. Support for SVGs was excellent, and animating vector paths was straightforward with libraries like react-native-reanimated and react-native-svg.
In short, designing Dyfna inside Expo was not only effective — it was deeply enjoyable. It gave us the flexibility to experiment, the speed to ship, and the power to craft something that feels truly personal.
Journaling with intention
Journaling is one of the most powerful tools for supporting mental health — especially in facing depression, burnout, and emotional overwhelm. If you look up evidence-based methods for improving mental wellbeing, journaling consistently ranks among the top recommendations. With Dyfna, we wanted to take that core practice and elevate it by combining it with therapy-inspired suggestions, intentional habits, and gentle self-care techniques like affirmations and reflections.
All of Dyfna’s features are grounded in science-backed mental health practices. But our goal wasn’t to recreate a productivity app. Instead, we set out to build a space that feels emotionally safe, calming, and deeply personal — a space you’d want to return to not because you have to, but because it feels good.
We designed features that adapt and grow with the user. Daily quotes respond to your in-app input, offering gentle encouragement or fresh insight. Intentions are more than static affirmations — they double as habit-like actions that create emotional momentum, helping users build meaningful rituals without pressure.
Our approach to notifications reflects our philosophy: we don’t believe in pushing people to engage daily just to meet a quota. Dyfna isn’t a dopamine-driven streak tracker. It’s more like Google Maps — when you need direction in your life, you open Dyfna. It’s there for you when it matters.
Summary of features:
- Guided journaling notes
- Personalized prompts and responses
- Daily intentions and affirmations
- Smart intention recommendations
- Intelligent suggestions based on past entries
- Non-intrusive, thoughtful notifications
We’re still innovating on new features, trying to bring the best methods in the best form factor.
What the stack looks like
We’ve always loved Postgres, so when we came across the Supabase project, it felt like a perfect match — especially for a modern app like Dyfna. It gave us the flexibility and power of Postgres with a developer-friendly experience. Building Dyfna was the ideal opportunity to put it to the test.
Early in development, we maintained a living note where we brainstormed potential stack components. We prioritized tools that were reliable, well-documented, and easy to integrate — so we could focus on product design, not fighting infrastructure.
We ended up using:
- Supabase for our backend — handling authentication, database, and all user-generated content
- RevenueCat for subscription and payment management
- Expo SDK for accessing native device features and managing builds
This setup worked incredibly well together. We didn’t waste time debugging native modules or wrestling with fragile dependencies. Everything just worked — which gave us more time to focus on the things that mattered: crafting a smooth, meaningful experience for Dyfna users.
Our Expo-based app with this stack proved remarkably stable. Across 70 internal builds leading up to the final release, we experienced only a handful of crashes. The App Store approved our submission on the very first attempt — and it only took 12 hours.
We’re thrilled with how the tech stack supported our goals, and we’re continuing to refine it as Dyfna grows.
No questions about native app
We’re incredibly proud of how we approached the early stages of building Dyfna. We started by going all-in on a native app, because we believed deeply in giving users the smoothest, most integrated experience possible. We took time to evaluate the right tools for our goals, and grounded every decision in our product vision and what we knew about the people we wanted to serve.
We didn’t receive the annoying question: Do you have a mobile app?
In hindsight, that methodical process — thoughtful, grounded in our team’s strengths, and aligned with what we knew mattered — gave us the clarity and conviction to move forward with confidence. For startups, especially when resources are tight, being intentional like that can be a superpower.
What’s exciting now is how little anyone talks about the technology. People are using Dyfna. They’re coming back. They’re finding value. That’s the real win. The early choices we made aren’t just paying off — they’ve become invisible, which is exactly what you want from good technology: it fades into the background and lets the product shine.
This is just the beginning. But these early signs of traction and user love give us the energy and momentum to keep building.


