Overview
Hortai is a booktech startup built for the growing Ukrainian book market. We’re creating a reading tracker that gives people full control over how social and open their reading experience is – from fully private to community-driven.
I joined as Lead Product Designer, responsible for product design strategy, design system architecture, and mentoring a junior designer through her first product role. This is also my first experience leading design and mentoring – which became one of the most rewarding parts of the project.
Timeline: 6 months (ongoing, approaching MVP)
Team: 7 people – Lead Product Designer, Product Designer (mentee), Product Manager, 3 Frontend Developers, Backend Developer, DevOps
My role: Design Leadership, Product Design Strategy, UX/UI Design, Design System Architecture, Mentoring
Status: Grant-funded, pre-launch MVP
The Problem
The Ukrainian book market is growing, but the tools available for readers don’t keep up. The dominant local reading tracker covers basic needs – but suffers from poor UX and a buggy, unreliable technical foundation. Beyond that, the experience feels limited, especially around social features and personalization. Readers want to track what they read, share selectively, and feel ownership over their reading data – but existing products force an all-or-nothing approach to privacy and social sharing.
Strategy
Our approach was layered and deliberate:
Layer 1 – Match and exceed the baseline. First, we’re building every core experience the leading competitor offers, but making it more convenient and polished. The demand for these features is validated by their existing user base. The improvements we made on top are additionally validated through analysis of their app store reviews and simulated focus groups via Gemini Deep Research.
Layer 2 – Expand what’s possible. On top of the baseline, we’re building features that go meaningfully further than what’s currently available on the market – particularly around social interaction and personal library management. These are validated as far as simulation allows, but the real signal will come from actual users post-launch.
Layer 3 – Iterate based on reality. Every feature has a development roadmap tied to its adoption rate after MVP. We don’t build big from the start – we ship, observe, and expand based on real user behavior.
Research
We combined qualitative interviews with real readers, systematic analysis of the competitor’s app store reviews, and simulated focus groups using Gemini Deep Research to stress-test our assumptions at scale.
The biggest discovery wasn’t about features – it was about identity. People treat books as deeply personal objects. Their reading list isn’t just a list – it’s a reflection of who they are. Some readers love showing off their collection and discussing it publicly. Others treat their bookshelf as something intensely private, almost intimate. And most people sit somewhere in between, wanting to share some things with some people, but not everything with everyone.
This insight reshaped the entire product. It’s why privacy isn’t a settings page you visit once – it’s a system woven through every feature, giving users control at every layer. The confidence to build that level of granularity came directly from understanding how emotionally charged the relationship between a reader and their library really is.
Key Design Decisions
Privacy as a Spectrum, Not a Switch
The core tension of the product – social yet private – required more than a single toggle. We designed a granular confidentiality system where users control visibility for each layer independently: library and reading statuses, collections, reading progress, publications, and online presence. There’s also a full invisibility mode for reading anonymously. The goal: let people be exactly as open as they’re comfortable with, without forcing a binary choice.
Reading Sessions with Context
The reading timer isn’t just a stopwatch. During a session, readers can attach notes tied to specific pages or page ranges, tag them with emoji reactions, and build a personal log of their reading journey. This system went through multiple iterations – the interaction between timer, page tracking, and note-taking had to feel seamless without becoming cluttered. The result is a flow where logging thoughts during reading feels natural, not like a chore.
Batch ISBN Scanner for Instant Library Building
One of the biggest friction points for any reading tracker is the initial setup – getting your existing library into the app. We designed a barcode scanner with batch mode: users can scan book after book without leaving the scanner screen, building up a queue of scanned titles, and then transfer everything to their library at once. No interruptions, no repetitive flows. This came from understanding that our audience reads physical books – and if onboarding your collection feels like a chore, people won’t do it.
Profile as a Reading Identity
The user profile brings everything together: collections, reading activity with time stats, current reads with progress, and published reviews. It’s designed to work as both a personal dashboard and a public-facing reading identity – depending on how the user configures their privacy settings.
Process & Tools
Visual Language
The two brand palettes aren’t just aesthetic – they’re strategic. Readers are an incredibly wide spectrum of people, and the visual language needed to reflect that.
Paradiso (teal) carries the calm, intimate side of the product – library browsing, reading sessions, profile. It sets a tone that says: this is your quiet space. Lemongrass (yellow-green) shows up where the energy shifts – statistics, challenges, leaderboards. It’s sharper, more competitive, more playful. The two palettes coexist so the app can feel like a personal reading nook and a social arena at the same time, depending on where the user is and what they came for.
AI-Augmented Workflow
We lean heavily on AI tools, but with a clear boundary. AI accelerates execution – it doesn’t replace thinking.
Gemini Deep Research runs simulated focus groups to stress-test assumptions at scale. Figma Make and Cursor let us build interactive prototypes fast, so we can validate UX before committing to polished screens. Claude via MCP writes documentation and automates repetitive design tasks – the kind of work where you’re applying a known pattern many times over.
Where AI doesn’t help: inventing the UX for a new screen. That’s still human intuition, sketching, and iterating through prototypes until the flow clicks. The tools handle the volume; the thinking stays ours.
Design System
The design system is built on a two-layer token architecture:
Primitives – the raw values layer. This includes a full color palette alongside two custom brand scales: Paradiso (the teal-based primary) and Lemongrass (the yellow-green secondary). These are pure values with no semantic meaning attached.
Aliases – the semantic layer. Every token is named by its purpose, not its appearance: bg-page, text-neutral-primary, border-action-focus, bg-status-error. This layer references primitives, so switching themes means remapping aliases without touching any component.
The system also includes color-coded categories for reading stats (pages, time, goals, streaks – each with their own border, background, icon, and text tokens) and a named palette system (truffle, peach, matcha, blueberry, strawberry, grape) with subtle, core, vibrant, and deep variants for flexible UI expression.
This architecture was a deliberate investment. It pays off in three ways: consistency across every screen, fast and reliable handoffs to developers, and – just as importantly – it became the primary learning framework for my mentee, teaching her to think in systems rather than individual screens.
Aliases
Resolution
- Alias
- --bg-page
- Primitive
- --neutral-75
- Value
- #f8f8f8
Handoff & Team Communication
With three frontend developers, one backend developer, and a two-person design team, clear communication wasn’t optional – it was survival. We built the entire handoff culture from scratch:
Design handoffs happen during team-wide meetings where everyone can ask questions and raise concerns. After that, there’s a dedicated 1-on-1 call with the developer implementing the specific feature, followed by continuous async communication in working chats. This layered approach – group context first, individual detail second, async support ongoing – eliminated the ambiguity that usually slows down small teams.
Mentoring
This was my first time leading design and mentoring another designer. I was intentional about how we split the work:
My focus: design strategy, design system architecture, stakeholder communication, and direct screen design when bandwidth allowed.
Her focus: building screens and components within the strategic direction I set, growing her craft in tokenized design systems and technically correct component construction.
Early on, the hardest part was trusting the process – wondering if I was doing enough as a lead. The turning point came when I saw my mentee independently assembling pixel-perfect components and delivering handoff-ready flows that I had almost no notes on. That’s when I knew the system was working.
The other achievement I’m proud of: we built a culture of genuine trust within the team. Design decisions are discussed openly, feedback flows in both directions, and there’s no anxiety around iteration. For a startup moving fast, that culture is a multiplier.
What’s Next
We’re approaching MVP launch. Every feature ships with a planned evolution path – what we expand, what we simplify, and what we cut will be driven by real adoption data, not assumptions.
Reflection
We haven’t launched yet – and that matters. Everything described here is built on research, validated assumptions, and a lot of iteration, but not yet on real user data. The real test is ahead.
What I can reflect on is the process itself. The biggest thing I’ve learned: leading design isn’t about designing more – it’s about creating the conditions where good design happens without you in the room. That shift – from maker to enabler – changed how I think about my role entirely.
This case will be updated after launch.