andrii.designer
available for work
Contact
← Back to all cases
Mobile App · Web · iOS & Android

Wayly — explore your world

A map tracker that turns everyday walks into world exploration — on the phone and in the browser.

A fitness tracker and a fog-of-war map in one — every walk uncovers territory on your own map of the world. Designed and built solo, for mobile and the web.

Role
Product Designer & AI Design Engineer
Solo — strategy → design → code
Type
Mobile app + Web (iOS · Android · web)
Timeline
2026 — ongoing
Wayly — explore the world, uncover your territory
1,000+active users, grown from zero
3 platformsiOS, Android and the web — one account
Solostrategy, design system, UI and the code
Paid tiersubscription model, live in the stores
01 — Context

The market is split in half — and nobody bridges it.

Trackers like Strava log a run and the map goes dead. Explorer apps reveal the map but have no real workouts. Wayly joins the two: every walk adds to a personal map you light up.

02 — Challenge

Constraints I designed around from day one.

Building solo means every constraint is also a design decision.

01

One codebase, two platforms

Solo build → iOS and Android from a single stack. That choice (Flutter) shaped the component model before the first screen existed.

02

Background GPS eats battery

The #1 killer in this product category. It had to be a design constraint, not a bug found after launch.

03

The map must always stay primary

So the whole UI is an overlay on top of the map — never separate pages that replace it.

04

Offline is the real use case

Trails and mountains have no signal. Recording must work with no internet and sync later.

03 — My role

Not "design it, then hand it off."

I owned the whole loop — from strategy to the code running on a real phone.

Strategy

Product strategy

Concept, persona hypotheses, a four-phase roadmap and the monetization model.

PositioningRoadmapPricing
UX

UX architecture

Screen map, navigation, state machines and edge cases — specified before the UI.

Screen mapState machinesEdge cases
Design

Design system & UI

Tokens, typography, spacing and components — authored as a real Flutter theme, not a static library.

TokensComponentsDark-first UI
Code

Interface engineering

Building the app in Flutter (Riverpod, Go Router), integrating the map, GPS and the fog layer.

FlutterRiverpodGPS + fog
04 — Key decisions

Five calls that defined the product.

Decision 01

Hexagons, not a square grid

Problem

The fog had to read well on a single street and on a whole country.

Solution

An H3 hexagon grid (~50 m cells) — every GPS point lights up one cell.

Street levelFog lifts hex by hex along every walk.
Neighbourhood% of the city explored, always on screen.
RegionCollections live on the same fogged map.
WorldThe same mechanic, zoomed out to countries.
Result

One mechanic that stays legible at every zoom level — no second visual language needed.

Decision 02

A track that uncovers fog

Problem

In fitness apps a finished run becomes just another row in a list.

Solution

Recording is wired into the fog — every point of a track reveals the map around it.

Recorded tracksEvery walk paints the map around its path.
ActivityA recording, its route and what it uncovered.
RoutesPlanned and recorded routes side by side.
TrailsCurated trails to go and uncover next.
Result

Each walk visibly adds to your map, so the reason to go out again is built into the core loop.

Decision 03

The route builder as a state machine

Problem

Route planning is the deepest flow — the easiest place to leave people at a dead end.

Solution

Modelled as states (Planning → Preview → Navigating), with every unhappy path designed up front.

PlanningDrop points — they snap to trails.
PreviewDistance, time and the elevation profile.
Route detailEverything to decide before you set off.
NavigatingLive distance, time and pace from the start.
Unhappy pathLeaving mid-edit asks before discarding.
Result

The deepest flow shipped without dead ends — every edge case already had a screen.

Decision 04

Usage rules, not just a palette

Problem

A growing app drifts visually when screens are designed one-off.

Solution

A dark, map-first system with strict colour rules: green means progress, amber means rewards.

ProfileLevel, world progress and collections.
RewardsRewards and challenges in the same card language.
Map layersGlass sheets over the map, never instead of it.
WaypointsCategories with one consistent icon set.
Result

New screens are assembled from the system, not redesigned — users learn the colours once.

Decision 05 · From user feedback

Peaks — built on what users told me

Insight

Feedback showed people want one place to collect, keep and track the peaks they climb — and Wayly was becoming that place.

Solution

Peaks grew from a counter into a full feature: range collections, detailed stats, gamified badge reveals and share cards.

Peak baggingHighest peaks, every summit found, lists by region.
Explored mountainsEach summit with its height, date and repeat visits.
Range collectionA mountain range to complete — main ridge first.
Peaks on the mapEvery explored summit, right where it stands.
Gamified revealRub the cover off to reveal a new collection badge.
Share card · mapThe range and your summits on one card.
Share card · skylineEvery summit as a skyline, ready for stories.
Result

Every summit now adds to a collection, a statistic and a story — a reason to come back and something people want to share.

05 — The web version

The same world, now in the browser.

Not a marketing page — the product itself at wayly.cc: one account, the same map and fog, rebuilt for a big screen and a mouse.

LandingThe front door — same dark, map-first language as the app.
Explore mapThe full map on a big screen, glass panels on top.
Route plannerWaypoints snap to trails; distance, time and elevation in one bar.
Result

Tracks and routes become links that open in any browser — no install needed to see what someone explored.

06 — Outcome

From concept to a product on a phone and the web.

✓

Flutter app for iOS and Android — map, fog, tracking, routes, profile and rewards.

✓

Web version at wayly.cc on the same account.

✓

Design system in code — one source of truth for both platforms.

✓

Paid tier live in the stores, with the user's own data free forever.

Takeaway

Design-as-code collapses the loop.

When the system lives in code, handoff losses disappear — and the decisions that define the product stay human.