01.Co-Founder / Civic Alerts / MobileApp

Skouta

skouta.app
Skouta app widgets: outdoor conditions, area status, 7-day trend, last major event, closest incident and daily digest
Intro

Know your ground

If you move to Sweden and don't speak Swedish, you hit the same wall pretty much on day one. Public information here is really good, but it's in Swedish, and it's spread across a lot of different places. Police, weather warnings, transport and emergencies all have their own official site.

Skouta pulls official alerts from all of them into one feed, in English, with a map, push notifications and a morning digest.

There are two of us. My co-founder is a UX writer and content designer, and came up with the bigger idea behind it: this isn't really an alert app, it's a way to feel at home in the country you chose to live in. They also wrote the voice and all the copy. I did the product design, the design system and the visual brand, and I built the whole thing with Claude Code and Cursor. That means the app, the backend, the API integrations and the store submissions.

Role
Co-founder
Product & brand design
Built it with AI
Timeline
Started March 2026
Live on iOS and Android
Built with
Claude Code, Cursor
Expo, Supabase, DeepL
Where it stands
~5 months
From idea to the App Store
9
Official sources, checked every 10–15 minutes
~1,400
Alerts tracked a week
Top 3
Finalist for the UX Nordics award at Future Product Days

The problem

Getting the information to everyone who lives here

Public safety information in Sweden is meant for everyone who lives here. If you don't read Swedish, you're mostly left out of it.

Translating it fixes the language part. But while building an app around it, it's really easy to put new barriers in the way. Pushing so many notifications that people turn them off. Burying the alerts that matter under ones that don't. Asking for an email before you see anything. Putting safety behind a paywall.

Any one of those and you've left people out again, in a different way. So the problem for us was getting people to that information and keeping them there, without adding any of them. Each decision below takes one away.


Decision #1

Keeping notifications calm

A safety app can easily turn into an anxiety app. If your phone buzzes for everything, you either start worrying all the time or you turn notifications off, and then you miss the one alert that actually matters.

So we split notifications into levels. Critical alerts always get pushed. Important ones only get pushed for the categories you picked. Minor ones never buzz at all, and they're not in the morning digest either. They're still in the app if you want them, for your location or on the map.

The home screen works the same way. Each saved location opens with a quick read of what's going on around it, before any feed: All clear, Heads up or Take care, with the number of incidents nearby. Pip changes with it too. Singing in front of a blue sun when it's quiet, yellow when there's something to keep an eye on, and red when it's critical. So most days you can tell how things are around you without reading anything.

All clear

Nothing to worry about close by

Area status

based on your location

  • 0Critical
  • 0Important
  • 4Minor
See all incidents

Heads up

A few incidents in your area

Area status

based on your location

  • 0Critical
  • 3Important
  • 6Minor
See all incidents

Take care

Active critical incidents nearby

Area status

based on your location

  • 2Critical
  • 3Important
  • 5Minor
See all incidents
The top of the home screen in each state, with the same animations as in the app.

Decision #2

Dropping most of the minor alerts

Once the data was flowing, we noticed a big chunk of the minor alerts were just noise. They didn't help anyone, and translating all of them wasn't cheap either. So we dropped them, which took us from around 5,000 alerts a week to about 1,400.

The feed shows less than the official sources do, on purpose. Anything that makes it in is worth a look, and the translation budget goes where it matters.

Alerts as a list: Critical and Important filters at the top, then cards for an assault in Stockholm and a fire in Uppsala, each marked CriticalThe same alerts on a map around Stockholm, with markers coloured by level and the level filters at the topAlert details for a fire in Uppsala: a small map, the Critical tag, the translated report, the source (Swedish Police Authority) and a note that it was translated with AI

Decision #3

Removing sign-up

Skouta used to have a sign-up with a one-time code. PostHog showed some drop-off at that step. Not a big one, but we also didn't feel an account was a must, so we took it out.

Now you open the app, pick your city and you're in, with 14 days of Premium to start. Premium is tied to your device or store account instead.

Onboarding flow: three selling points, add your city, then the removed steps (enter email, one-time code check, enter or resend code) before the final screen
The original onboarding. The greyed-out steps (email, one-time code, resend) are the ones we took out.
Onboarding screen 1: the Skouta bird and "Welcome to Skouta. Get ready to know your ground."Onboarding screen 2: two birds saying "hi!" and "hej!", with "Know when something happens near you. In English or Swedish."Onboarding screen 3: digest widgets with a 7-day trend and alert counts, and "Daily Digest, delivered when you want to."
The first three screens now. After these you pick your city and you're in.

Decision #4

What's free and what you pay for

Two things were never going behind the paywall: safety and translations. So everything you need to stay informed is free. That's every alert from every source, in English or Swedish, the map, all the filters, and critical notifications for one location.

The harder part was finding the balance. The free version had to be good enough that people would actually install it and keep using it, and Premium still had to feel worth paying for. We went back and forth on that a lot.

Where we landed is that Premium is about making Skouta fit your life. The biggest part is locations. You can follow up to five places you care about, like your kid's school, your parents' place, the summer house or the office, each with its own status and alerts around it. You also get notifications for the categories you pick, and the morning digest.

Everyone gets two weeks of Premium when they start, so they can try all of it before deciding. We haven't tested the split with users yet, so for now it's our best call, and we'll see how people actually use it.


Brand

Pip as the brand

I designed the visual identity: the logo, the orange and dark palette, and Pip, a small bird who always knows first. The palette stands out in the Swedish App Store. I made Pip in a bunch of poses for the digest, empty states, loading and the paywall.

Skouta brand sheet: the logo with Pip in front of an orange sun, Fraunces and DM Sans, the white, dark and orange palette, and six Pip poses (standing, sleeping, wearing a crown, singing, with a star headband, in a cap)

Building it

Building the whole thing myself

I built Skouta end to end with Claude Code and Cursor: an Expo app for iOS and Android, a Supabase backend in Stockholm, nine official API integrations written in SQL that check for new alerts every 10–15 minutes, cron jobs that send the daily digest and filter which alerts become notifications, DeepL translation, push notifications, the paywall, and both store submissions.

Figma only has the core components (buttons, cards, toggles and so on). Everything else I designed straight in code.

Skouta is live on iOS and Android now, tracking around 1,400 alerts a week, and it was one of three finalists for the UX Nordics award at Future Product Days. It's still early days, and we're working on marketing at the moment.


Reflection

What building it taught me

AI made it possible for one designer to build the whole product, but it didn't make it quick. It takes longer than people advertise, there's definitely a learning curve, and there's a lot you don't know (and probably overlook) until it comes up. Building it is also only the first step. Shipping it and getting users to it is where the lift is.

The biggest one for me: don't let AI make the product and design decisions for you. Left alone, it fills every gap with a reasonable default, and a product made of reasonable defaults feels like every other product. Every decision on this page was ours.

And document every decision. When AI writes most of the code, the reasoning only exists if you write it down.