Bygg fullstack-uppgiftsmanager i Gleam: Ett språk för alla plattformar

Bygg fullstack-uppgiftsmanager i Gleam: Ett språk för alla plattformar

Maj 01, 2026 gleam full-stack development type safety web architecture backend development frontend development cross-platform apps erlang lustre tauri

Bygg en fullstack-uppgiftsapp med Gleam: En kodbas för alla plattformar

Drömmen om att skriva kod en gång och köra den överallt har jagat oss utvecklare i åratal. Vi har testat allt från Java applets till Electron och Flutter. Men tänk om lösningen inte ligger i ramverk – utan i rätt språk från början?

Här kommer Gleam: ett statiskt typat språk som kompileras till Erlang för backend och JavaScript för frontend. Det ger äkta enhetlig fullstack-utveckling. Vi dyker ner i ett konkret exempel – en enkel uppgiftsapp som visar vad det handlar om.

Målet: Samma kod överallt

De flesta ramverk lovar "skriv en gång, kör överallt" – men bara inom sina egna gränser. Gleam går längre. Samma källkod kompileras till helt olika miljöer.

Vår app, Doable, är medvetet basic. Den hanterar grunderna: skapa, läsa, uppdatera och radera uppgifter. Men under ytan döljer sig en hel stack:

  • JSON HTTP API på Erlang med PostgreSQL
  • Webbfrontend med reaktiv statshantering
  • Desktop-appar för Windows, macOS och Linux via Tauri
  • Mobilappar för iOS och Android, också via Tauri

Allt från samma språk. Samma typer. Samma logik.

Arkitektur: Utveckling mot produktion

Snabb feedback under utveckling

Som utvecklare vill du iterera fort. Docker för databas och API-server. Hot reload för alla klienter. Tester utan ombyggnad.

Så här funkar det:

  • PostgreSQL i Docker, separata databaser för dev och test
  • Gleam API-server körs lokalt eller i Docker
  • En Lustre dev-server hanterar hot reload för web, desktop och mobil
  • API-proxy löser CORS-problem – allt går via en ingång
  • Integrationstester körs mot routern med testdatabas

Det här boostar din hastighet. Inga 30-sekunders väntetider som dödar flowet.

Enkelhet i produktion

När du deployar blir det rent. Allt i Docker-containrar. Caddy som enda ingång, proxy till API och filserver för frontend.

Webbklienter hämtar frontend via Caddy och slår mot API genom samma proxy. Tauri-apparna packar in frontend lokalt men når API via Tauris HTTP-plugin. Optimerat per plattform, samma app.

Teknikstacketen uppdelad

Backend: Erlangs pålitlighet

API-servern kompileras till Erlang med Wisp och Mist. Du får inte bara ett webbramverk – du ärver telekomklassad hantering av parallellism, felhantering och distribution.

PostgreSQL sköter datalagring med relationsmodell som Erlang-folk litat på i decennier.

Delad kod: Den stora vinsten

Gleams styrka är shared-projektet – en Gleam-bibliotek som kompileras till både Erlang och JavaScript. Typer, validering, serialisering – allt gemensamt. Ändra en uppgiftsstruktur, så uppdateras det automatiskt överallt.

Inga typfel mellan frontend och backend. Kompilern fångar fel tidigt.

Frontend: Elm-mönster via Lustre

Webbappen använder Lustre med Elm Architecture för förutsägbar statshantering. Känner du Elm? Perfekt. Annars: lär dig det. Guldstandard för testbar UI-kod.

Desktop och mobil följer samma mönster, olika deployment.

Varför det här förändrar ditt nästa projekt

Fullstack-typsäkerhet blir allt viktigare i komplexa appar. Vad det ger:

Refaktorisering utan rädsla. Byt fältnamn i schemat, uppdatera shared-typerna – kompilern pekar ut exakt var du ska fixa.

Konsistens gratis. Skriv validering en gång i Gleam, kör på alla plattformar. Skippa översättning till TypeScript, Swift eller Kotlin.

Snabbare onboardning. Nya teammedlemmar lär ett språk och ett typesystem istället för tre ekosystem.

Mindre driftkaos. Färre språk = färre dependencys, deployments och runtime-överraskningar.

Verkligheten bakom

Är Gleam framtiden för all webbutveckling? Nej. Ekosystemet är litet jämfört med TypeScript eller Python. Rekrytering och bibliotek kan krångla.

Men för nya fullstack-projekt där typer och enhetlighet räknas? Det slår ut buggkategorier helt.

Doable är enkel avsiktligt. Den visar att arkitekturen funkar i liten skala. Större appar skalas upp med samma princip: kompilera en gång, validera överallt, deploya brett.

Kom igång

Intresserad? Gleam har en inlärningskurva, men syntaxen känns igen från JavaScript, Python eller Rust. Typesystemet är starkt men förlåtande i början.

Börja med Erlang-backend. Bygg API. Lägg till Lustre för frontend och upplev shared-typernas magi. När du väl smakat enhetlig fullstack känns fragmenterade stackar... gammaldags.

Framtiden kanske inte handlar om olika verktyg per lager. Utan om ett språk som täcker alla lager.


Redo för Gleam-fullstack? Kolla Gleam-dokumentationen och fundera på hur ditt nästa projekt kan vinna på typsäker kompilering över plattformar.

Read in other languages:

RU BG EL CS UZ TR FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN