GOEZ

A ride tracker and community for motorcyclists. Record the ride, tell it in the language of the bike, and never ride alone.

Side project · Designed and built solo · Flutter + Supabase · Live on the App Store · App Store ↗

GOEZ app screens: home, live recording and ride summary, over a motorcyclist at sunset

Summary

GOEZ is a ride tracker and community for motorcyclists. I took it from a competitive teardown to a Flutter app now live on the App Store, deciding what the product is, what it refuses to be, and building the system that holds it together.

ProblemRiders stitch together three apps to record, plan and share a ride, and the category leader doesn’t support motorcycles at all. Recording drops data, sharing is an afterthought and safety sits behind a paywall.
InsightRiders don’t want a fitness log. They want the ride told in the language of the bike (corners, lean, the road), and they rarely ride alone.
StrategyOne product built around five jobs: record, tell, share, connect and stay safe. Every screen had to earn its place against them. Safety is free on every plan; revenue comes from expression and depth, never from protection.
My roleSolo, end to end. I did the research, defined the product and its information architecture, designed every screen and the design system, built the Flutter app and ran QA through to App Store submission. I built it in my own time, outside my role at Decathlon, and I ride, so I tested it on my own motorcycle.
Where it standsI turned my 42-screen prototype into a production app in five languages, with one design system I share between Figma and code. iOS 1.0 went live on the App Store on 30 October 2026. It’s too early for usage data; what I’ll measure is at the end.

01 Context

Riding a motorcycle isn’t an activity. It’s a language.

Corners, lean, pace, the road, the weather that day: it all wants to be told. But no app speaks that language today.

Strava doesn’t accept motorcycles. Moto apps either drop the recording, or draw the route and forget the community, or lock the most needed safety features behind a subscription. So riders bounce between three apps and never feel at home in any of them.

Positioning

GOEZ records a rider’s ride flawlessly, tells it in the language of the motorcycle, and connects it to a community the moment it’s told.

02 Research

A screen-by-screen pain and gain benchmark of Strava, REVER, Calimoto and EatSleepRide.

I coded what riders wrote in App Store and Google Play reviews, on Reddit and motorcycle forums, and in independent reviews, in August 2026. I tagged every finding with the app, the screen, pain or gain, and a category, and used the same screen taxonomy for all four apps from onboarding to paywall, so I could compare them side by side. Alongside the desk research I talked to riders I know, and I ride myself.

233Coded findings: 142 pains, 91 gains. Strava 74 · REVER 60 · Calimoto 52 · EatSleepRide 47
28Pains about recording reliability: lost rides, GPS, battery, sync and offline
22Pains about paywalls, the largest single category
Finding 1

The leader shuts riders out

Strava has no motorcycle activity type, so riders log rides as “E-Bike” and pollute cycling leaderboards. The audience is already improvising.

Finding 2

Recording is unreliable

The top complaint across REVER, Calimoto and EatSleepRide: lost data, crashes when paused, GPS drift and battery drain. One rider reported losing more than 1,000 miles of rides over five years.

Finding 3

Auto-pause is broken everywhere

It pauses but doesn’t resume. With high speeds and constant stop-and-go, a naive model is a disaster on a motorcycle.

Finding 4

Sharing is an open gap

Strava’s stat overlays are hidden, REVER is map-centric, Calimoto and EatSleepRide export nothing. Third-party overlay apps exist only because of this gap.

Finding 5

There is no real community

No user search or follow, group rides in beta for years, no group messaging. Riding together is the main use case, with no tool to coordinate it.

Finding 6

Safety sits behind a paywall

REVER locks Safety SMS and live links in Pro; EatSleepRide’s crash detection is paid, and its reviews are titled things like “False positive. But hey it worked”; one rider reported it missed a real crash.

Two more lessons that shaped the product
  1. 07Crash detection fails silently: protection quietly depends on the app being open, recording, with GPS and signal, and riders don’t know when they’re unprotected. So GOEZ makes no promise it can’t keep: no automatic crash detection in 1.0, GPS status always on screen, and the person following you sees “No signal · updated 3 min ago” instead of a dot that silently froze.
  2. 08Paywall creep kills reputation. Locking leaderboards, routes or a rider’s own data draws backlash every time. Draw the free/pro line early, keep it, and never paywall people’s own data.
Problem statement

A rider wants to record a great ride reliably, tell it in the language of the bike and share it with their own community, but can’t do it in one place.

How might we…
  1. 01…make recording invisible but provably reliable, so riders never doubt it’s running?
  2. 02…show how a ride went, not just how long it took, at a glance?
  3. 03…get riders to a shareable image in the first 30 seconds after a ride, without another app?
  4. 04…coordinate a group ride simply enough to work with gloves on, at the side of the road?
  5. 05…build a safety model where riders never ask “am I protected right now?”, and keep it free while the product stays sustainable?

03 The product

Five jobs, one flow.

A rule I used as a design filter: if a screen doesn’t serve at least one of these jobs, it has to justify being there. The app has three tabs, Home, Community and Map, with a record button beside them in the tab bar, so a ride is one tap away from anywhere.

Record

Crash-safe recording: every point is saved on the phone first and syncs once you’re back online. A stop longer than 2 minutes becomes a break by itself.

Tell

Corner count, estimated lean angle (max, left and right), top and average speed, elevation and breaks.

Share

Overlay templates put ride data on your own photo or route, ready for an Instagram Story.

Connect

A chronological feed, groups, events and chat, so a ride can be planned without leaving the app.

Stay safe

Ride Buddy live location and a hold-to-send SOS with your location, free on every plan.

Home: ready to ride with a Yamaha MT-07, Start ride button, weather, Ride Buddy toggle and upcoming event
Home: one tap to start
Recording screen: map with route, GPS strong pill, 42.6 km, 87 km/h, 48:12 duration, Break and Finish buttons
Recording: honest GPS status, big glanceable numbers
Ride summary in PRO: route map, 142.3 km, 2:10:44 moving, 65 km/h average, 214 corners, ~38° estimated max lean, Share and Cover image buttons
Summary: the ride in the language of the bike
Explorations

Before the final look, I built the home screen as clickable prototypes in three visual directions.

A neon direction, a black-and-white one and a dark one with a single orange action. I kept the dark one.

Neon direction: lime accent, big greeting and a suggested route
Neon
Black-and-white direction: monochrome cards and black buttons
Black and white
Final direction: dark theme with a single orange Start ride action
Dark, one orange action · chosen

04 Key decisions

Decision 01

Safety is free. Always.

FindingCompetitors lock safety behind Pro, and their crash detection lost riders’ trust through false alarms and a missed crash.
ChoseI made Ride Buddy and SOS free. You pick someone, GOEZ texts them a link, and they follow you live in the GOEZ app until you arrive; then the link turns off. If they don’t have the app yet, GOEZ tells you the web page isn’t live yet instead of sending a link that can’t open. SOS is hold-to-send and opens a message with your location; you press Send, so there are no false alarms.
CutI cut automatic crash detection, and two follower alert switches that weren’t wired to notifications yet. My feasibility check showed a phone can’t promise either reliably. A safety control that does nothing breaks trust faster than a missing one.
Trade-offI have to earn revenue from expression and depth (Pro metrics and templates), never from protection.
Ride Buddy pick sheet: send to Selin Arda, share until I arrive, Mom marked as not on GOEZ yet, message preview with a goezapp.com live link, Send link by SMS
Ride Buddy · pick a person
Rider view: Selin is following you, with link sent at 08:40, link opened in the GOEZ app, and a note that the link ends on arrival, plus Copy link and Stop sharing
Ride Buddy · rider
Follower view: following Kerem live on the map with speed, distance and time, and a live status that shows when the signal last updated
Ride Buddy · follower
Decision 02

Kilometres are table stakes. Tell the story.

FindingEvery app shows distance and time; none show how the ride felt.
ChoseI designed motorcycle-native metrics: corner count, lean angle (max, left and right, and spread), top speed and an elevation profile. Lean comes from GPS speed and heading change, not a sensor, so I label it as an estimate (~38°); it reads the road, not the rider. My feasibility check ruled out a true lean reading from a phone in a pocket or a loose mount.
Free vs ProI kept distance, time, speed and corners free and put lean angle in Pro, because it is the most motorcycle-specific number in the summary and the headline of the Telemetry share template. I never lock a rider’s own recorded ride.
Decision 03

From ride to Story in 30 seconds.

FindingSharing is the gap every competitor left open; riders screenshot or pay for a third-party overlay app.
ChoseI built overlay templates straight from the ride summary. Riders choose which metric shows, where and in what colour; the output is Instagram Story size and quality, with no extra app.
Classic overlay: route line and ride stats over a rider photo
Classic
Poster overlay: Istanbul ride, 142.3 kilometres in large type
Poster
Ride card overlay: a white card with Istanbul, 142.3 km and stats
Ride card
Telemetry overlay: 38 degree lean in corners gauge and total distance
Telemetry
Decision 04

Riding together is the main use case. Design for it.

FindingNo competitor has real group coordination, search or messaging.
ChoseI designed a chronological feed (no algorithm hides a friend’s ride), groups with roles and requests, events with meeting point, time, capacity and Going / Maybe / Can’t go, plus group chat to coordinate the ride.
Community feed: a ride post with route map, stats, likes and comments
Feed
Groups: create group, your groups and groups near you with Join and Send request
Groups
Event: Kartepe loop on 11 October, attendees, places left and Going / Maybe / Can't go
Events
Decision 05

Earn the paywall after the first ride.

FindingPaywall creep was the fastest way competitors lost goodwill.
ChoseI show the Pro screen once, after a rider’s first recorded ride of at least 2 km, with Close visible immediately.
PricingI set prices after studying competitors’ pricing. The yearly plan, $39.99, matches REVER Pro, the closest motorcycle app, and sits below Calimoto (about $59.99) and Strava (about $79.99). The monthly plan, $9.99, matches Strava’s monthly price; REVER has no monthly plan. Each country has its own price rather than a currency conversion: ₺899.99 / ₺149.99 in Türkiye, €39.99 / €9.99 in the euro zone.
Trade-offAt REVER’s price, I can’t win on price. GOEZ has to win on what is free, safety, and on what the others don’t do, sharing and riding together.

05 UX problems solved

I treated every complaint from the research as a problem to design out, not a feature to bolt on.

Three pains that came up again and again in the benchmark, paraphrased from riders’ reviews, and how I designed each one out. Safety, sharing and community are covered in the decisions above.

Riders reportedGOEZ
The app lost the rideI save every point on the phone first, so the ride survives an app crash or a dead zone and syncs once you’re back online.
Auto-pause doesn’t resumeI tuned auto-pause for motorcycles: 2 minutes below about 5 km/h starts a break, and 3 seconds above about 11 km/h ends it, so pushing the bike across a car park doesn’t count. Breaks stay out of moving time. I wrote unit tests for these thresholds.
No way to tell if it’s still recordingI keep GPS status on screen at all times: strong, weak with its accuracy in metres, or searching. The person following you sees “No signal · updated 3 min ago” instead of a frozen dot.

06 Design system

My 42-screen prototype was quick to make and hard to build: it used 26 different corner radii and 47 font sizes.

I cut it down to one token ladder: 10 radii, 11 type steps, a 44 pt minimum hit area and two themes, dark and light. I made ride controls bigger: Break and Finish use the 52 pt button, and Finish is hold-to-confirm, so a gloved tap can’t end a ride by accident. I gave the Flutter theme files the same names, so a token in Figma is the same token in code. Shared components and new screens take their colour, radius and spacing from tokens; if a value is missing, I add a token first, and I’m moving the remaining hard-coded values in older screens over to tokens. So I make a design change once and it lands in Figma and the app together.

Token ladder: dark and light palettes, ten corner radii, eleven type steps from displayLg to label, and component sizes with a 44 pt touch target
Token ladder · both themes, radius, type and size
Button component sheet: primary, secondary and ghost buttons in default, disabled, loading and danger states, plus pill buttons, chips and icon buttons
Buttons · every variant in default, disabled, loading and danger states

07 Pre-launch review

Before submitting, with no users yet, I tested it two ways: on my own motorcycle, on several real rides, and with a structured review alongside my release checklist.

I tested recording on my own motorcycle over several rides, because a locked screen, a dead zone or a long stop only shows up on a real road. For the review I went through the code and the store listing against Apple’s and Google’s store policies and my release checklist, screen by screen, as a rider would use it. It isn’t user research; that starts with the first riders. I caught six release blockers this way:

  1. 01The app targeted iPad with no tablet layout. 1.0 ships iPhone-only.
  2. 02The store text promised a Ride Buddy web page that wasn’t live yet.
  3. 03The privacy and terms pages had to be live before review.
  4. 04An unsigned Paid Apps Agreement would have shown an empty paywall.
  5. 05Android used an outdated Play Billing library.
  6. 06Android asked for background location the recording service didn’t need.
6Release blockers caught before submitting
42Prototype screens taken to production
5Languages at launch
StackFlutter · Supabase (Postgres + PostGIS, Realtime, Edge Functions) · MapLibre · RevenueCat · an on-device ride journal (sqflite) · 176 automated tests, covering the ride engine, auto-pause, metrics and Pro entitlements
StatusiOS 1.0 submitted on 14 October and live on the App Store since 30 October 2026 · Android next · App Store ↗

08 Measuring success

Success is riders deleting their other ride apps.

What I’ll measure

Lossless ride completion rate · share creation after a ride · group event participation · weekly returning riders · battery under 8–12% per hour of recording, the target I set in the requirements.

Next

The Ride Buddy web page, so a link works for anyone without the app. Follower alerts for SOS and long stops, wired to real notifications this time. The Android release.

What I’d do differently

Test what the phone can really do before polishing the screens that depend on it.

My first prototype showed crash detection and live group tracking working. The feasibility check I ran afterwards cut crash detection from 1.0 and flagged live group tracking as the first thing to go if battery use ran high. I finished the screens before I asked the question.

GOEZ

Motosiklet sürücüleri için sürüş takip uygulaması ve topluluk. Sürüşünü kaydet. Motorun diliyle anlat. Yalnız sürme.

Yan proje · Tek başıma tasarlayıp geliştirdim · Flutter + Supabase · App Store’da yayında · App Store ↗

GOEZ uygulama ekranları: ana sayfa, canlı kayıt ve sürüş özeti; gün batımında bir motosikletlinin üzerinde

Özet

GOEZ, motosiklet sürücüleri için bir sürüş takip uygulaması ve topluluk. Ürünü bir rakip analizinden App Store’da yayında olan bir Flutter uygulamasına taşıdım; ürünün ne olduğuna, neyi bilerek olmayacağına karar verdim ve bütünü bir arada tutan sistemi kurdum.

ProblemSürücüler bir sürüşü kaydetmek, planlamak ve paylaşmak için üç uygulamayı birbirine ekliyor; kategorinin lideri motosikleti hiç desteklemiyor. Kayıt veri kaybediyor, paylaşım sonradan düşünülmüş, güvenlik ödeme duvarının arkasında.
İçgörüSürücüler bir fitness günlüğü istemiyor. Sürüşün motorun diliyle (virajlar, yatış, yol) anlatılmasını istiyorlar ve nadiren yalnız sürüyorlar.
StratejiBeş iş etrafında kurulmuş tek bir ürün: kaydet, anlat, paylaş, bağlan, güvende kal. Her ekran bu işlerden birine hizmet ederek yerini hak etmek zorundaydı. Güvenlik her planda ücretsiz; gelir korumadan değil, ifade ve derinlikten geliyor.
RolümTek başıma, uçtan uca. Araştırmayı yaptım, ürünü ve bilgi mimarisini tanımladım, her ekranı ve tasarım sistemini tasarladım, Flutter uygulamasını geliştirdim ve App Store’a gönderene kadar QA’i yürüttüm. Decathlon’daki işimin dışında, kendi zamanımda yaptım; motosiklet kullanıyorum, bu yüzden kendi motosikletimde test ettim.
Bugün nerede42 ekranlık prototipimi, Figma ile kod arasında paylaştığım tek bir tasarım sistemiyle beş dilde canlı bir uygulamaya dönüştürdüm. iOS 1.0, 30 Ekim 2026’da App Store’da yayına girdi. Kullanım verisi için henüz erken; neyi ölçeceğim en sonda.

01 Bağlam

Motosiklet sürmek bir aktivite değil. Bir dil.

Virajlar, yatış, tempo, yol, o günün havası: hepsi anlatılmak ister. Ama bugün bu dili konuşan bir uygulama yok.

Strava motosikleti kabul etmiyor. Motosiklet uygulamaları ya kaydı yarıda bırakıyor, ya rotayı çizip topluluğu unutuyor, ya da en çok ihtiyaç duyulan güvenlik özelliklerini aboneliğin arkasına kilitliyor. Sonuçta sürücüler üç uygulama arasında savruluyor ve hiçbirinde kendini evinde hissetmiyor.

Konumlandırma

GOEZ, motosiklet sürücüsünün sürüşünü kusursuz kaydeden, onu motosikletin diliyle anlatan ve anlattığı anda bir topluluğa bağlayan uygulamadır.

02 Araştırma

Strava, REVER, Calimoto ve EatSleepRide için ekran ekran bir sorun ve kazanım karşılaştırması.

Ağustos 2026’da sürücülerin App Store ve Google Play yorumlarında, Reddit’te, motosiklet forumlarında ve bağımsız incelemelerde yazdıklarını kodladım. Her bulguyu uygulama, ekran, sorun ya da kazanım ve kategoriyle etiketledim; dört uygulamada da onboarding’den ödeme duvarına aynı ekran sınıflandırmasını kullandım, böylece onları yan yana karşılaştırabildim. Masa başı araştırmanın yanında tanıdığım sürücülerle konuştum; ben de motosiklet kullanıyorum.

233Kodlanmış bulgu: 142 sorun, 91 kazanım. Strava 74 · REVER 60 · Calimoto 52 · EatSleepRide 47
28Kayıt güvenilirliğiyle ilgili sorun: kaybolan sürüş, GPS, pil, eşitleme ve çevrimdışı
22Ödeme duvarıyla ilgili sorun; tek başına en büyük kategori
Bulgu 1

Lider, sürücüleri dışarıda bırakıyor

Strava’da motosiklet aktivite türü yok; sürücüler sürüşlerini “E-Bike” olarak kaydediyor ve bisiklet sıralamalarını kirletiyor. Kitle şimdiden çözümü kendi uyduruyor.

Bulgu 2

Kayıt güvenilmez

REVER, Calimoto ve EatSleepRide’daki en yaygın şikâyet: kaybolan veriler, duraklatınca çöken uygulama, GPS sapması ve pil tüketimi. Bir sürücü beş yılda 1.000 milden fazla sürüşünü kaybettiğini yazmış.

Bulgu 3

Otomatik duraklatma her yerde bozuk

Duraklatıyor ama devam ettirmiyor. Yüksek hızlar ve sürekli dur-kalk düşünüldüğünde, saf bir model motosiklette tam bir felaket.

Bulgu 4

Paylaşım açık bir boşluk

Strava’nın istatistik katmanları gizli, REVER harita odaklı, Calimoto ve EatSleepRide hiçbir şey dışa aktarmıyor. Üçüncü taraf katman uygulamaları tam da bu boşluk yüzünden var.

Bulgu 5

Gerçek bir topluluk yok

Kullanıcı arama ya da takip yok, grup sürüşleri yıllardır beta’da, grup mesajlaşması yok. Birlikte sürmek ana kullanım senaryosu, ama onu koordine edecek bir araç yok.

Bulgu 6

Güvenlik ödeme duvarının arkasında

REVER, Güvenlik SMS’i ve canlı konum bağlantılarını Pro’ya kilitliyor; EatSleepRide’ın kaza algılaması ücretli; yorum başlıkları “False positive. But hey it worked” gibi, bir sürücü de gerçek bir kazayı kaçırdığını yazmış.

Ürünü şekillendiren iki ders daha
  1. 07Kaza algılama sessizce başarısız oluyor: koruma, uygulamanın açık olmasına, kayıt yapmasına, GPS ve sinyal almasına sessizce bağlı; sürücüler ne zaman korumasız kaldıklarını bilmiyor. Bu yüzden GOEZ tutamayacağı bir söz vermiyor: 1.0’da otomatik kaza algılama yok, GPS durumu hep ekranda ve seni takip eden kişi sessizce donmuş bir nokta yerine “Sinyal yok · 3 dk önce güncellendi” görüyor.
  2. 08Ödeme duvarının giderek genişlemesi itibarı öldürüyor. Sıralamaları, rotaları ya da sürücünün kendi verisini kilitlemek her seferinde tepki çekiyor. Ücretsiz/Pro çizgisini erkenden çiz, ondan şaşma ve insanların kendi verisini asla ücretli yapma.
Problem tanımı

Sürücü, harika bir sürüşü güvenle kaydetmek, motorun diliyle anlatmak ve kendi topluluğuyla paylaşmak istiyor; ama bunu tek bir yerde yapamıyor.

Nasıl yapabiliriz…
  1. 01…kaydı görünmez ama kanıtlanabilir şekilde güvenilir kılıp, sürücünün çalışıp çalışmadığından hiç şüphe duymamasını?
  2. 02…bir sürüşün yalnızca ne kadar sürdüğünü değil, nasıl geçtiğini de bir bakışta göstermeyi?
  3. 03…sürücüyü, başka bir uygulamaya gerek kalmadan, sürüşten sonraki ilk 30 saniyede paylaşılabilir bir görsele ulaştırmayı?
  4. 04…grup sürüşünü, yol kenarında eldivenle bile yapılabilecek kadar basit koordine etmeyi?
  5. 05…sürücünün hiçbir zaman “şu an korunuyor muyum?” diye sormadığı bir güvenlik modeli kurup, ürün sürdürülebilir kalırken bunu ücretsiz tutmayı?

03 Ürün

Beş iş, tek akış.

Tasarım filtresi olarak kullandığım bir kural: Bir ekran bu işlerden en az birine hizmet etmiyorsa, orada olmasını haklı çıkarmak zorunda. Uygulamada üç sekme var: Ana sayfa, Topluluk ve Harita; sekme çubuğunda yanlarında bir kayıt butonu duruyor, böylece sürüş her yerden tek dokunuş uzakta.

Kaydet

Çökmeye dayanıklı kayıt: her nokta önce telefona yazılır, bağlantı gelince eşitlenir. 2 dakikadan uzun bir duruş kendiliğinden mola olur.

Anlat

Viraj sayısı, tahmini yatış açısı (maksimum, sol ve sağ), en yüksek ve ortalama hız, rakım ve molalar.

Paylaş

Katman şablonları sürüş verisini kendi fotoğrafının ya da rotanın üzerine yerleştirir; Instagram Story için hazır.

Bağlan

Kronolojik akış, gruplar, etkinlikler ve sohbet; bir sürüş uygulamadan çıkmadan planlanır.

Güvende kal

Ride Buddy canlı konumu ve konumunu içeren basılı tutarak gönderilen SOS; her planda ücretsiz.

Ana sayfa: Yamaha MT-07 ile sürüşe hazır, Sürüşü başlat butonu, hava durumu, Ride Buddy anahtarı ve yaklaşan etkinlik
Ana sayfa: başlamak için tek dokunuş
Kayıt ekranı: rotalı harita, GPS güçlü etiketi, 42,6 km, 87 km/sa, 48:12 süre, Mola ve Bitir butonları
Kayıt: dürüst GPS durumu, bir bakışta okunan büyük rakamlar
PRO’da sürüş özeti: rota haritası, 142,3 km, 2:10:44 hareket süresi, 65 km/sa ortalama, 214 viraj, ~38° tahmini maksimum yatış, Paylaş ve Kapak görseli butonları
Özet: motorun diliyle anlatılan sürüş
Keşifler

Son görünümden önce ana sayfayı üç görsel yönde tıklanabilir prototipler olarak kurdum.

Neon bir yön, siyah-beyaz bir yön ve tek turuncu aksiyonlu koyu bir yön. Koyu olanı tuttum.

Neon yön: yeşil vurgu, büyük karşılama ve önerilen rota
Neon
Siyah-beyaz yön: tek renkli kartlar ve siyah butonlar
Siyah-beyaz
Son yön: tek turuncu Sürüşe Başla aksiyonlu koyu tema
Koyu, tek turuncu aksiyon · seçilen

04 Temel kararlar

Karar 01

Güvenlik ücretsiz. Her zaman.

BulguRakipler güvenliği Pro’ya kilitliyor; kaza algılamaları da yanlış alarmlar ve kaçırılan bir kazayla sürücülerin güvenini kaybetmiş.
TercihimRide Buddy ve SOS’u ücretsiz yaptım. Birini seçiyorsun, GOEZ ona bir bağlantı gönderiyor ve o kişi sen varana kadar seni GOEZ uygulamasında canlı takip ediyor; sonra bağlantı kapanıyor. Kişinin uygulaması yoksa GOEZ, açılamayacak bir bağlantı göndermek yerine web sayfasının henüz yayında olmadığını söylüyor. SOS basılı tutularak gönderiliyor ve konumunu içeren bir mesaj açıyor; Gönder’e sen basıyorsun, bu yüzden yanlış alarm yok.
ÇıkardığımOtomatik kaza algılamayı ve henüz bildirime bağlanmamış iki takipçi uyarı anahtarını çıkardım. Yapılabilirlik denetimim, bir telefonun ikisini de güvenilir şekilde vaat edemeyeceğini gösterdi. Hiçbir şey yapmayan bir güvenlik kontrolü, olmayan bir özellikten daha hızlı güven kırar.
ÖdünleşimGeliri korumadan değil; ifade ve derinlikten (Pro metrikler ve şablonlar) kazanmak zorundayım.
Ride Buddy kişi seçimi: Selin Arda’ya gönder, varana kadar paylaş, Annem için henüz GOEZ’de değil notu, goezapp.com canlı bağlantılı mesaj önizlemesi, SMS ile bağlantı gönder
Ride Buddy · kişi seç
Sürücü görünümü: Selin seni takip ediyor; bağlantı 08:40’ta gönderildi, GOEZ uygulamasında açıldı, bağlantı varınca kapanıyor; Bağlantıyı kopyala ve Paylaşımı durdur
Ride Buddy · sürücü
Takipçi görünümü: Kerem’i haritada canlı takip; hız, mesafe ve süre; sinyalin en son ne zaman güncellendiğini gösteren canlı durum
Ride Buddy · takipçi
Karar 02

Kilometre işin olmazsa olmazı. Asıl mesele hikâyeyi anlatmak.

BulguHer uygulama mesafeyi ve süreyi gösteriyor; hiçbiri sürüşün nasıl hissettirdiğini göstermiyor.
TercihimMotosiklete özgü metrikler tasarladım: viraj sayısı, yatış açısı (maksimum, sol ve sağ, dağılım), en yüksek hız ve rakım profili. Yatış bir sensörden değil GPS hızı ve yön değişiminden geliyor; bu yüzden onu “tahmini” diye etiketledim (~38°): sürücüyü değil, yolu okuyor. Yapılabilirlik denetimim, cepteki ya da sabitlenmemiş bir telefondan gerçek yatış ölçümünü dışarıda bıraktı.
Ücretsiz ve ProMesafe, süre, hız ve virajları ücretsiz bıraktım, yatış açısını Pro’ya koydum; çünkü özetteki en motosiklete özgü rakam ve Telemetri paylaşım şablonunun başlığı o. Sürücünün kendi kaydettiği sürüşü asla kilitlemiyorum.
Karar 03

Sürüşten Story’ye 30 saniyede.

BulguPaylaşım, rakiplerin hepsinin açık bıraktığı boşluk; sürücüler ekran görüntüsü alıyor ya da üçüncü taraf bir katman uygulamasına para ödüyor.
TercihimKatman şablonlarını doğrudan sürüş özetinden kurdum. Sürücü hangi metriğin nerede ve hangi renkte görüneceğini seçiyor; çıktı, ek bir uygulamaya gerek kalmadan Instagram Story boyutunda ve kalitesinde.
Klasik katman: sürücü fotoğrafı üzerinde rota çizgisi ve sürüş istatistikleri
Klasik
Poster katmanı: İstanbul sürüşü, büyük puntoyla 142,3 kilometre
Poster
Sürüş kartı katmanı: İstanbul, 142,3 km ve istatistikler içeren beyaz bir kart
Sürüş kartı
Telemetri katmanı: virajlarda 38 derece yatış göstergesi ve toplam mesafe
Telemetri
Karar 04

Birlikte sürmek ana kullanım senaryosu. Ona göre tasarla.

BulguHiçbir rakipte gerçek anlamda grup koordinasyonu, arama ya da mesajlaşma yok.
TercihimKronolojik bir akış (hiçbir algoritma bir arkadaşın sürüşünü gizlemiyor), rolleri ve katılım istekleri olan gruplar, buluşma noktası, saat, kontenjan ve Katılıyorum / Belki / Katılamıyorum seçenekleriyle etkinlikler tasarladım; üstüne sürüşü koordine etmek için grup sohbeti ekledim.
Topluluk akışı: rota haritası, istatistikler, beğeniler ve yorumlarla bir sürüş paylaşımı
Akış
Gruplar: grup oluştur, grupların ve yakınındaki gruplar; Katıl ve İstek gönder butonlarıyla
Gruplar
Etkinlik: 11 Ekim Kartepe turu, katılımcılar, kalan yer ve Katılıyorum / Belki / Katılamıyorum
Etkinlikler
Karar 05

Ödeme duvarını ilk sürüşten sonra hak et.

BulguÖdeme duvarını giderek genişletmek, rakiplerin itibar kaybetmesinin en hızlı yolu oldu.
TercihimPro ekranını yalnızca bir kez, sürücünün en az 2 km’lik ilk kayıtlı sürüşünden sonra gösteriyorum; Kapat butonu hemen görünüyor.
FiyatFiyatları rakiplerin fiyat politikalarını inceleyerek belirledim. Yıllık plan, $39,99, en yakın motosiklet uygulaması REVER Pro ile aynı; Calimoto’nun (yaklaşık $59,99) ve Strava’nın (yaklaşık $79,99) altında. Aylık plan, $9,99, Strava’nın aylık fiyatıyla aynı; REVER’de aylık plan yok. Her ülkenin kur çevirisi değil, kendi fiyatı var: Türkiye’de ₺899,99 / ₺149,99, euro bölgesinde €39,99 / €9,99.
ÖdünleşimREVER’in fiyatında GOEZ fiyatla kazanamaz. Ücretsiz olanla, yani güvenlikle, ve diğerlerinin yapmadığıyla, yani paylaşım ve birlikte sürmeyle kazanmak zorunda.

05 Çözülen UX sorunları

Araştırmadaki her şikâyeti, üstüne bir özellik eklenecek bir şey olarak değil, tasarımla ortadan kaldırılacak bir sorun olarak ele aldım.

Karşılaştırmada tekrar tekrar çıkan üç sorun (sürücü yorumlarından özetlendi) ve her birini tasarımla nasıl ortadan kaldırdığım. Güvenlik, paylaşım ve topluluk yukarıdaki kararlarda.

Sürücülerin şikâyetiGOEZ
Uygulama sürüşü kaybettiHer noktayı önce telefona yazıyorum; sürüş uygulama çökse de, kapsama dışında kalınsa da kaybolmuyor ve bağlantı gelince eşitleniyor.
Otomatik duraklatma geri başlamıyorOtomatik duraklatmayı motosiklete göre ayarladım: yaklaşık 5 km/sa altında 2 dakika mola başlatıyor, yaklaşık 11 km/sa üstünde 3 saniye molayı bitiriyor; motoru otoparkta itmek sayılmıyor. Molalar hareket süresine sayılmıyor. Bu eşikler için birim testleri yazdım.
Hâlâ kaydediyor mu, bilinmiyorGPS durumunu hep ekranda tutuyorum: güçlü, metre cinsinden doğruluğuyla zayıf ya da aranıyor. Seni takip eden kişi donmuş bir nokta yerine “Sinyal yok · 3 dk önce güncellendi” görüyor.

06 Tasarım sistemi

42 ekranlık prototipimi hızlı yapmıştım ama koda dökmek zordu: 26 farklı köşe yarıçapı ve 47 font boyutu kullanıyordu.

Hepsini tek bir token merdivenine indirdim: 10 radius, 11 tipografi kademesi, 44 pt en küçük dokunma alanı ve koyu ile açık iki tema. Sürüş kontrollerini büyüttüm: Mola ve Bitir 52 pt butonu kullanıyor, Bitir basılı tutarak onaylanıyor; eldivenli bir dokunuş sürüşü yanlışlıkla bitiremiyor. Flutter tema dosyalarına aynı adları verdim; Figma’daki bir token kodda da aynı token. Ortak bileşenler ve yeni ekranlar renk, radius ve boşluğu token’lardan alıyor; bir değer eksikse önce token ekliyorum, eski ekranlarda kalan sabit değerleri de token’lara taşıyorum. Böylece bir tasarım değişikliğini bir kez yapıyorum ve Figma ile uygulamaya birlikte yansıyor.

Token merdiveni: koyu ve açık palet, on köşe yarıçapı, displayLg’den label’a on bir tipografi kademesi ve 44 pt dokunma alanıyla bileşen ölçüleri
Token merdiveni · iki tema, radius, tipografi ve ölçü
Buton föyü: birincil, ikincil ve hayalet butonlar; varsayılan, kapalı, yükleniyor ve tehlike durumları; pill butonlar, çipler ve ikon butonlar
Butonlar · her varyant; varsayılan, kapalı, yükleniyor ve tehlike durumları

07 Lansman öncesi inceleme

Göndermeden önce, henüz kullanıcı yokken, iki yolla test ettim: kendi motosikletimde, birkaç gerçek sürüşte ve yayın kontrol listemle birlikte yapılandırılmış bir incelemeyle.

Kaydı kendi motosikletimde birkaç sürüşte test ettim; çünkü kilitli ekran, kapsama dışı bir bölge ya da uzun bir duruş ancak gerçek yolda ortaya çıkar. İnceleme için kodu ve mağaza sayfasını Apple ile Google’ın mağaza politikalarına ve yayın kontrol listeme göre, bir sürücünün kullanacağı gibi ekran ekran gözden geçirdim. Bu bir kullanıcı araştırması değil; o, ilk sürücülerle başlıyor. Bu incelemeyle altı yayın engeli yakaladım:

  1. 01Uygulama, tablet düzeni olmadan iPad’i hedefliyordu. 1.0 yalnızca iPhone’da.
  2. 02Mağaza metni, henüz yayında olmayan bir Ride Buddy web sayfası vaat ediyordu.
  3. 03Gizlilik ve kullanım koşulları sayfaları incelemeden önce yayında olmalıydı.
  4. 04İmzalanmamış Paid Apps Agreement, paywall’u boş gösterecekti.
  5. 05Android eski bir Play Billing kütüphanesi kullanıyordu.
  6. 06Android, kayıt hizmetinin ihtiyaç duymadığı arka plan konum iznini istiyordu.
6Göndermeden önce yakalanan yayın engeli
42Üretime taşınan prototip ekranı
5Lansmandaki dil sayısı
TeknolojiFlutter · Supabase (Postgres + PostGIS, Realtime, Edge Functions) · MapLibre · RevenueCat · cihazda sürüş günlüğü (sqflite) · sürüş motorunu, otomatik duraklatmayı, metrikleri ve Pro haklarını kapsayan 176 otomatik test
DurumiOS 1.0, 14 Ekim’de gönderildi ve 30 Ekim 2026’dan beri App Store’da yayında · sırada Android · App Store ↗

08 Başarıyı ölçmek

Başarı, sürücülerin diğer sürüş uygulamalarını silmesidir.

Neyi ölçeceğim

Kayıpsız tamamlanan sürüş oranı · sürüş sonrası paylaşım oluşturma · grup etkinliklerine katılım · haftalık geri dönen sürücüler · gereksinimlerde koyduğum hedef: kayıt sırasında saatte %8–12’nin altında pil.

Sırada

Uygulaması olmayan herkes için çalışan Ride Buddy web sayfası. SOS ve uzun duruşlar için takipçi uyarıları, bu kez gerçek bildirimlere bağlı. Android sürümü.

Farklı yapacağım şey

Telefonun gerçekte neyi yapabildiğini, ona dayanan ekranları cilalamadan önce test etmek.

İlk prototipim kaza algılamayı ve canlı grup takibini çalışıyormuş gibi gösteriyordu. Sonradan yaptığım yapılabilirlik denetimi kaza algılamayı 1.0’dan çıkardı, canlı grup takibini de pil tüketimi yüksek çıkarsa ilk gidecek özellik olarak işaretledi. Ekranları, bu soruyu sormadan önce bitirmiştim.