App · 2026
Ordo flyttar in i telefonen
Hur en resetjänst på webben blev en riktig iPhone-app på sex dagar, och varför allt blev bättre av det. Inte bara appen.
Besök projekt →
Ordo har alltid haft en enkel idé. Du vidarebefordrar dina bokningsbekräftelser till go@ordo.nu, och Ordo läser dem och lägger ihop flyg, hotell, tåg och hyrbilar till en resa med en tidslinje. Du behöver inte skriva in något, och du behöver inte installera något.
Det sista visade sig vara både styrkan och svagheten.
Webben gjorde det lätt att komma igång. Men när jag tittade på hur folk faktiskt använde Ordo var mönstret tydligt: de vidarebefordrade sina mail, och sedan loggade nästan ingen in. Resan låg där, prydligt sorterad, och väntade på någon som aldrig kom. Den som står vid en gate med en telefon i ena handen och ett pass i den andra öppnar inte en webbläsare, letar fram en sida och loggar in igen.
Så den 9 oktober bestämde jag mig. Ordo skulle bli en native iOS-app, skriven i SwiftUI, "så native som möjligt". Sex dagar och drygt 200 commits senare ligger den i TestFlight och är på väg in i App Store.
Ett beslut jag fick ändra
Jag hade faktiskt redan bestämt mig en gång. I juni var planen att bygga appen i Expo, med React Native och ett gemensamt kodförråd för webb, iOS och Android. Det lät rationellt: en kodbas, tre plattformar.
I oktober slängde jag den planen. En resehanterare lever eller dör på de små sakerna som bara operativsystemet kan ge: notiser som bryter igenom Fokus när din gate ändras, en dokumentskanner med kantavkänning, "Logga in med Apple", länkar som öppnar rätt resa direkt i appen. Det går att få till i ett ramverk ovanpå, men det blir alltid en översättning. Jag ville ha originalet.
Priset är känt: logik som finns i TypeScript på webben måste nu också finnas i Swift. Min lösning på det blev den viktigaste principen i hela projektet.
Tunn klient, smartare server
Appen ska veta så lite som möjligt. Allt som både webben och appen behöver ska ligga på servern. Varje gång appen behövde något som webben räknade ut i webbläsaren ställde jag frågan: varför räknas det här ut i klienten över huvud taget?
Tidszoner är det bästa exemplet. Webben hade en egen logik för att avgöra vilken tidszon en bokning hör till. I stället för att porta den till Swift flyttades den till servern, så att webben och appen läser samma svar. Samma sak med när en insikt ska börja synas. Det som tidigare var en gissning i gränssnittet blev ett faktum i databasen. Appen blev enklare att bygga, och webben blev mer korrekt på köpet.

Webbens utseende, iPhonens beteende
Min första tanke var att appen skulle se ut som en vanlig iOS-app med Ordos innehåll i. Det kändes fel så fort jag såg det. Ordo har ett eget uttryck: DM Serif Display i rubrikerna, varmt papper i bakgrunden, en enda orange accentfärg och nästan inga ikoner.
Så jag vände på det. Appen ser ut som Ordo, men beter sig som en iPhone. Bokningarna är kort som fälls ut, precis som på webben. Men svepningar, tillbaka-gester, haptik och typsnittsstorlekar följer iOS. Den som har använt webben känner igen sig direkt, och den som bara har använt iPhone behöver inte lära sig något nytt.
Notiser som vet när de får störa
Webben kunde skicka notiser, men på iPhone gick de via en installerad webbapp som få hade lagt till på hemskärmen. Nu går de direkt via Apple. Det största lyftet är inte att notiserna kommer fram, utan att de kan vara olika viktiga. iOS har en nivå som heter Time Sensitive, som får bryta igenom Fokus. Den är lätt att missbruka, så exakt fyra saker får använda den:
- Ditt flyg är inställt.
- Din avgångsgate har ändrats.
- Ditt flyg är försenat och avgår inom ett dygn.
- Du riskerar att missa en anslutning.
Allt annat, som påminnelser, väder och tips inför resan, kommer som vanliga notiser som väntar tills du har tid. Ordo ska aldrig jaga dig. Men när gaten byts tjugo minuter före boarding ska du få veta det, även om telefonen står på Stör ej. Och när du trycker på notisen öppnas rätt resa, scrollad till rätt flyg, med kortet utfällt.

Fota pappret
Det här var det enda uttryckliga kravet jag hade från början: det ska gå att fotografera ett papper. En utskriven biljett, en bekräftelse från resebyrån, ett kvitto från hotellets reception. iPhonens egen dokumentskanner hittar kanterna, rätar upp perspektivet och tar flera sidor i rad. Sidorna blir en PDF som skickas till samma tolkning som ett vidarebefordrat mail, och några sekunder senare ligger bokningen i rätt resa.
Ingen ny servertjänst behövdes. Men när jag testade skanningen hittade jag en bugg som funnits länge: om AI-modellen skrev en mening efter sitt svar slängdes hela tolkningen, och användaren fick "Hittade ingen bokning" trots att allt var rätt läst. Den drabbade även vanliga PDF-bilagor i mail. Nu är den borta, för alla.
Du kan också dela en PDF eller en bild till Ordo från vilken app som helst. Men vidarebefordran till go@ordo.nu är fortfarande hur Ordo fungerar. Det fungerar från vilken mailklient som helst, och det kommer inte att ändras. Kameran och delningsbladet är komplement för de bokningar som inte kommer som mail.
Resor man gör tillsammans
De flesta resor görs inte ensam. I appen kan du bjuda in andra till en resa via e-post, med en engångslänk eller med en QR-kod som den andra fotar av. Den som har appen hamnar direkt i resan. Den som inte har den får se vem som bjudit in och till vad, innan något konto ens är skapat. En QR-kod över ett bord säger mer än en länk i ett mail.

Inloggning som inte är ett hinder
"Logga in med Apple" tar en sekund. Inloggning var det största hindret på webben, och det är svårt att överskatta skillnaden mellan att leta efter ett lösenord och att titta på telefonen. Det följde också med ett ansvar: när du raderar ditt konto återkallar Ordo nu din Apple-inloggning, raderar dina sparade filer och tar bort dig ur utskickslistorna. Apple krävde det, men det var rätt sak att göra ändå, och webben har fått samma städning.
Det som inte syns
Det mesta av det som gjorde appen möjlig syns inte i appen:
- En ny väg in för filer, med regler för storlek och filtyp och en kontroll av att filen verkligen är det den säger sig vara.
- Ett svep för fastnade uppladdningar. Dör något halvvägs får du besked inom en kvart i stället för en snurra som aldrig slutar.
- Inga dubbla notiser. Har du appen tystnar den gamla webbnotisen på samma telefon.
- Ett bokningskontrakt som beskriver exakt vilka fält varje typ av bokning har. Det skrevs för appen, men blev facit för tolkningen, webben och appen.
- Nästan 500 automatiska tester i appen, som körs vid varje ändring.
Ingen av dem är glamorös. Alla gjorde Ordo stabilare, även för den som aldrig kommer att installera appen.
Hur det gick på sex dagar
Jag ska inte låtsas att jag skrev 200 commits Swift på en vecka med egna händer. Ordo byggs med Claude Code, och appen byggdes på samma sätt: jag fattar besluten, skriver kraven och granskar, och AI-agenter skriver koden enligt en plan, en uppgift i taget, med en granskning efter varje steg.
Det som gjorde det möjligt var inte att det gick fort att skriva kod. Det var att varje beslut skrevs ner: en specifikation, en plan, ett kontrakt. När en agent undrade hur en tidszon skulle tolkas fanns svaret redan. När jag ändrade mig om utseendet ändrades specen först, och sedan koden.
Vad som kommer härnäst
Första versionen gör kärnloopen riktigt bra: resor, tidslinje, notiser, skanning, delning. Den är gratis och har inga köp. Efter lanseringen kommer det som bara en iPhone kan göra: boardingkort i Wallet, nedräkning till avgång på låsskärmen och i Dynamic Island, widgets för nästa resa, och ett App Clip så att den du bjuder in kan öppna resan utan att installera hela appen.
Och webben? Den blir mindre. Den finns kvar för den som vill, men Ordos hem är nu i telefonen, där resan faktiskt händer.
Ordo finns på ordo.nu. Vidarebefordra en bokning till go@ordo.nu och se vad som händer.