# Ura

URL: https://sola.ysz.life/projects/ura

> Snowmobile navigation for Lapland, even offline

- Type: Commercial project
- Period: Aug 2026 - Present
- Live: https://ura-app.com
- Source: private
- Stack: TypeScript, React, Tailwind CSS, Next.js App Router, Supabase, Capacitor, MapLibre, Vercel, Base UI, shadcn/ui, Motion, Vite, Zod, Vitest, GitHub Actions

I designed and built Ura for a client: the rider app for iPhone and Android, and ura-app.com, the website that introduces it. The app is written in React and TypeScript and runs on both phones through Capacitor, with its map drawn by MapLibre.

## Snowmobile navigation for Lapland

Ura is an app for snowmobile riders in Finland, on iPhone and Android. It puts every official snowmobile route in the country on one map and tells you, while you ride, whether you're on one. I designed and built it for a client, along with its website, [ura-app.com](https://ura-app.com).

A rider looks at the phone for a second at a time, at a junction, often in the dark and wearing gloves. So Ura is one map screen with one line of text at the top, and everything else opens in a sheet from the bottom.

![The ura-app.com home page in the dark theme: from the headline Know you're on the trail, the page scrolls through the app one step at a time while the phone beside the text changes with it, from the On route line to the map settings for fuel, food and rest stops, and then the map at Inari under the headline Works where the signal doesn't](https://sola.ysz.life/projects/ura/site-story.webp)
*The website walks through the app as you scroll.*
[Video](https://sola.ysz.life/projects/ura/site-story.mp4)

### One answer at the top of the screen

The line at the top answers the question a rider has at a junction:

| Where you are                          | The line shows                                                    |
| -------------------------------------- | ----------------------------------------------------------------- |
| On a route                             | A green dot and the route's name                                  |
| Off a route                            | Amber, how far away the nearest route is, and an arrow back to it |
| Far from any route, or outside Finland | A note that says so                                               |

The screen stays on while Ura follows you, so a quick look doesn't mean unlocking the phone with gloves on.

![Ura on the map near Levi in the light theme: the rider's blue dot on a green route, restaurant and fuel markers around it, and the line at the top reading On route, Levi keskus/center](https://sola.ysz.life/projects/ura/on-route.webp)
*On a route near Levi.*

![The rider's dot on open ground between the routes, and the line at the top reading Off route, 320 m, with an arrow pointing back toward the nearest route](https://sola.ysz.life/projects/ura/off-route.webp)
*Off route by 320 m.*

### A verdict that holds still

A phone's GPS position drifts, more so under trees, and a plain distance check would flip between on and off route every few seconds near a junction. So Ura treats the two directions differently:

- **Leaving takes ten seconds.** Ura only calls you off a route once you've been clearly away from it for that long.
- **Coming back is immediate.** The moment you're on the route again, the line turns green and names it.
- **Parallel routes keep their name.** Where two routes run side by side, the line stays with the one you're on instead of swapping between them.

![Ura in the dark theme near Levi: the line at the top reads Off route, 150 m, with an arrow pointing left; the distance counts down as the rider's dot moves toward the green route, and when it reaches the route the line turns to On route, Levi keskus/center](https://sola.ysz.life/projects/ura/ride-back.webp)
*Riding back to a route.*
[Video](https://sola.ysz.life/projects/ura/ride-back.mp4)

### Every route on one map

Zoom out and the whole network is there, from the south of Finland to the far north of Lapland. Fuel stations, restaurants and cafés, huts, shelters and fire sites near the routes are on the map as well. Tap one and a sheet shows its name, how far away it is and which way to go. Fuel, food and rest stops can each be hidden in the settings.

![The map zoomed out over all of Finland, covered by the snowmobile network in green and yellow from Helsinki to the far north, with the rider's dot in Lapland](https://sola.ysz.life/projects/ura/network.webp)
*Every route in Finland.*

![A sheet over the map at Inari for the fuel station Neste Inari Juutuantörmä, with a Fuel station tag and a distance of 720 m beside an arrow pointing the way](https://sola.ysz.life/projects/ura/place-sheet.webp)
*A fuel station in Inari.*

### Without signal

Coverage in the fells comes and goes, so Ura doesn't depend on it while you ride. The routes and places are stored in the app, and the map keeps the areas you've already looked at, so a valley you rode into with signal is still drawn after the signal is gone. When the routes change, the app fetches the new set the next time it's online.

![The map around Inari in the light theme: routes in green along the lake shore and across the ice, restaurant and fuel markers in the village, and the line at the top reading On route with the name of the village route](https://sola.ysz.life/projects/ura/inari.webp)
*Inari, in the far north.*

### Theme and language

Ura has a light and a dark theme, and it follows the phone's setting unless you pick one. The dark theme darkens the map too, for riding through the long nights of a Lapland winter. The app is in English, Finnish and German, again following the phone unless you choose. The store images use the same screens, here in the dark theme, set on a photograph of snow-covered forest.

![Store image headed Off route? See the distance.: a phone over a photograph of snowy spruce forest, showing the dark map with the Off route line, 320 m and an arrow back to the route](https://sola.ysz.life/projects/ura/store-dark-off-route.webp)
*Off a route.*

![Store image headed Finland's trails. One clear map.: the dark map zoomed out over the whole network across Finland](https://sola.ysz.life/projects/ura/store-dark-network.webp)
*The whole network.*

### The website

[ura-app.com](https://ura-app.com) introduces the app to riders before they install it. Its main section is the scroll story at the top of this page: one phone stays beside the text and changes to show each part of the app. The site follows the visitor's light or dark setting, a button in the corner switches it by hand, and an aurora drifts behind the headline. On a computer, a QR code at the end of the page opens the download on your phone.

![The ura-app.com hero in the dark theme, with a green aurora moving behind the headline Know you're on the trail; the button in the bottom-right corner switches the page to the light theme and back](https://sola.ysz.life/projects/ura/site-theme.webp)
*The hero, switched from dark to light and back.*
[Video](https://sola.ysz.life/projects/ura/site-theme.mp4)

![The ura-app.com home page in the light theme: the headline Know you're on the trail, App Store and Google Play badges, and a phone showing the route network around Kittilä](https://sola.ysz.life/projects/ura/site-desktop.webp)
*ura-app.com in the light theme.*

![The ura-app.com home page on a phone in the dark theme: the headline, the store badges and the top of the app's map below them](https://sola.ysz.life/projects/ura/site-mobile.webp)
*The site on a phone.*

![Ura in the dark theme near Levi: green routes on a dark map and the line at the top reading On route, Levi keskus/center](https://sola.ysz.life/projects/ura/app-dark.webp)
*The app after dark.*
