Adeola Adekoya portfolio
Journly Case Study
Wellness | 2025 | Product Designer, Developer
Overview
The wellness app market is worth $4.5 billion, yet most journaling tools feel like task managers — sterile, neutral, and quietly punishing users who miss a day. That disconnect between product design and the women these apps claim to serve was the starting point for Journly.
Journly is a private, secure journaling app designed specifically for women — a space built around emotional safety rather than engagement metrics. It tracks your mood, asks a daily reflective question, and follows up based on how you're feeling, making it less of a diary and more of a guided emotional companion. I led the product end to end, from UX and visual design through to React Native engineering, backend architecture, and App Store optimization.
The aesthetic leaned deliberately into hyper-femininity as a psychological signal of safety — a conscious rejection of the minimalist grey that dominates the category. Streaks and reminders were made opt-in, and the architecture was built offline-first so the app remained functional in the moments women actually journal.
Problem
I identified a disconnect between current journaling tools and user psychology. While the wellness market is worth $4.5B, most products use sterile, neutral designs that fail to build an emotional connection with their primary demographic.
Market Insights:
• The "Guilt Gap": Competitive audits showed users felt "punished" by apps when they missed a day, leading to app abandonment.
• The Aesthetic Shift: Pinterest data showed a 280% increase in "Dopamine Decor"—a move toward saturated, joyful colors that stimulate calmness and joy.
• The Bet: Women will choose a space that feels like a "safe harbor" over a tool that feels like a "task manager."
Constraints
The journaling slice of the wellness market has a quiet problem: most tools are built around engagement mechanics that shame the user when she misses a day. Streaks, reminders, "you broke your record" pushes. The category is designed against the people it claims to serve, especially the women who turn to journaling during the harder moments of their lives. The aesthetic mirrors that posture: sterile, neutral greys that signal "this is a task to complete," not a space to feel safe in.
Women using journaling apps don't need another task manager with guilt baked in. They need emotional safety. That was the design problem under all the other design problems.
Every journaling product also has to solve two recurring usability problems: the blank page problem (what do I write?) and the empty week problem (why did I stop?). Most ship templates and reminders and call it done.
I started Journly to design against all of that, and to do it solo, end-to-end, including the React Native engineering and the App Store work. Doing both meant trade-offs played out in real time, not across handoffs.
Role and collaboration
[object Object]
System view
These didn't come from intuition. They came from research I did upfront: where the category was failing women, what emotional safety actually means in practice, and when and how women use journaling tools in real life.
Streaks and reminders, opt-in only. Every engagement mechanic in journaling (streaks, push notifications, "you broke a 7-day record" pushes) treats guilt as motivation. So I made them opt-in: available for users who wanted them, but never on by default. Emotional safety meant the app couldn't pressure the user back, even when she'd been gone a week.
Offline-first architecture. Journaling happens in liminal moments: on the train, in waiting rooms, in bed before sleep. The app had to assume no network. Journly is SQLite-first, with Supabase syncing when the device reconnects. The user never sees a loading state when she wants to write. I could make the offline-first call confidently because I was also writing the React Native code, and knowing the engineering cost made the design choice obvious.
A hyper-feminine aesthetic, on purpose. The category's default is minimalist grey: neutral, sterile, "safe for everyone." Journly is unapologetically pink and soft. The aesthetic isn't decoration; it's a signal. This was made for you, specifically turns out to be a stronger trust statement than this works for everyone.
Key decisions
The first version shipped as a deliberate beta, with in-app feedback baked in from day one. Users used it, which was itself a signal. When people send in requests, they're saying they want the product to keep getting better so they can keep using it.
A lot broke in the early weeks. I was learning the technical stack (React Native, Supabase, network handling) on a real product with real users in it. Bugs got fixed in tight loops with a small group of early loyalists who tested with me and shaped the product as it grew. That feedback loop is the reason most of the next section exists.
I also had to cut. Several of the more complex features I tried to ship were slowing the app down before the foundation could hold them, so I pulled them. Most of those features, it turned out, users didn't actually need.
Impact
- Designing and engineering at the same time meant I could see things design alone couldn't: where production slowed down, where the architecture would bend under scale, where technical debt was building. It changed how I think about shipping. Building something that works is one thing; building something that scales is another. Journly is still growing, and most of the work I'm doing now is keeping it ready for that.
Prioritization got sharper too. I learned to drop what wasn't working, double down on what was, and ship only the user requests that fit the roadmap and were backed by the data. Listening to feedback matters; acting on all of it doesn't.
- 40+ Countries reached in the first week through organic App Store discovery — no paid acquisition or launch campaign
- 54.2% Onboarding completion after post-launch drop-off analysis and targeted iteration on friction points
- 74% Increase in downloads within two months from ASO improvements after launch
- 155 % Growth in first-time downloads after launch — organic App Store discovery, no paid campaign
- 62.5 % Growth in returning users updating the app — retention signal as the install base matured
- 100 + New users each month through organic App Store discovery — no paid acquisition, built on onboarding and ASO iteration
Reflection
Two things showed up after launch. The first was operational: a wave of bug fixes as more users came in. The second was directional: users wanted the product to do more, and to be more fun. More journals, more ways to write, more emotional range. The reframes below came out of that.
Folders → Journals. The first version organized entries inside folders, which made the app feel like file management. Users kept asking for "more journals." They didn't want a system to sort things into; they wanted to own multiple notebooks. So I reframed the core unit: folders became journals, each designed to look and feel like a physical book, with a page-swipe animation as the default reading mode and vertical scroll available as an explicit toggle. The shift was metaphor-deep, not surface-deep. It changed how the data model worked underneath, not just how the screens looked.
One-and-done → Continue writing. Post-launch data showed users dropping off after their first week. The original design gave each journal one prompt per day; once a user had written, she was done until tomorrow. The reframe was that journaling momentum isn't daily, it's situational. Now, after writing in one journal, the app surfaces related journals based on the entry's themes, and any single journal accepts multiple entries per day with different prompts. The email I sent describing the update brought back users who had previously churned.
Mood as a label → Mood as a range. Users said the mood picker felt blanket: "happy" could mean three different things in one week. So I rebuilt the flow in layers: a user picks a mood, specifies the type, and answers a short follow-up about what's making her feel that way. Copy in the follow-up changes depending on the mood. The answers then seed the journal entry itself, so the user opens the page to a soft, human-voiced opener like "I had a good day today because…" rather than a blank cursor. It was the most technically involved piece, and it's the one users mention most.