Tworzymy pełnostackowy menedżer zadań w Gleam: jeden język, wszystkie platformy

Tworzymy pełnostackowy menedżer zadań w Gleam: jeden język, wszystkie platformy

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

Task Manager w Gleam: Jeden język na backend, frontend i mobile

Marzenie o pisaniu kodu raz i uruchamianiu wszędzie dręczy programistów od lat. Próbowaliśmy z Javą, Electronem czy Flutterem. A co, jeśli sekret tkwi nie w frameworkach, tylko w dobrze dobranym języku?

Poznaj Gleam. Statycznie typowany język, który kompiluje się do Erlanga na backend i JavaScript na frontend. Dzięki temu budujesz pełny stack w jednym stylu. Dziś sprawdzimy to na prostym przykładzie: aplikacji do zarządzania zadaniami.

Cel: Ten sam kod na wszystkich urządzeniach

Chodzi o coś więcej niż obietnice frameworków. Gleam bierze twój kod źródłowy i generuje wersje pod różne środowiska uruchomieniowe.

Nasza apka, nazwijmy ją Doable, to podstawy: dodawanie, przeglądanie, edycja i usuwanie zadań. Proste, ale pokazuje cały stos:

  • API HTTP z JSON na Erlangu z bazą PostgreSQL
  • Frontend w przeglądarce z reaktywnym stanem
  • Aplikacje desktopowe na Windows, macOS i Linux przez Tauri
  • Aplikacje mobilne na iOS i Android, też z Tauri

Jeden język. Jeden system typów. Jedna logika walidacji.

Architektura: Jak działa dev i produkcja

Rozwój: Szybki feedback to podstawa

W codziennej pracy liczy się błyskawiczna reakcja na zmiany. Docker na bazę i serwer API, hot reload na wszystkich frontendach, testy bez przebudowy.

Oto setup:

  • PostgreSQL w Dockerze – osobne bazy na dev i testy
  • Serwer Gleam API lokalnie lub w kontenerze
  • Lustre dev server z hot reloadem dla webu, desktopu i mobile
  • Proxy API omija problemy z CORS – wszystko przez jeden punkt
  • Testy integracyjne prosto na routerze z bazą testową

Dzięki temu nie tracisz czasu. 30 sekund na restart? To tortura.

Produkcja: Prostota na całego

W releasie wszystko ląduje w Dockerze. Caddy jako brama: proxy do API i serwuje pliki frontendu.

Frontend w przeglądarce pobiera assets przez Caddy i API też. Desktop i mobile z Tauri pakują frontend lokalnie, ale łączą się z API przez wtyczkę HTTP. Optymalnie na każdą platformę.

Co kryje się pod maską

Backend: Siła Erlanga

API kompiluje się do Erlanga z bibliotekami Wisp i Mist. Dostajesz gotową maszynę do obsługi ruchu, błędów i skalowania – dziedzictwo telekomów.

PostgreSQL to solidna relacyjna baza, sprawdzona z Erlangiem od lat 90.

Magia shared code

Geniusz Gleama to biblioteka shared. Kompiluje się na Erlang i JS. Typy, walidacja, serializacja – wszystko wspólne. Zmiana w strukturze zadania? Kompilator zaktualizuje każdy cel.

Żadnych rozbieżności typów. Żadnych błędów "u mnie działa".

Frontend: wzorzec Elm

Web używa Lustre z architekturą Elm. Przewidywalny stan UI, łatwe testy. Znasz Elm? Super. Nie znasz? Warto ogarnąć – to standard.

Desktop i mobile idą tym samym tropem.

Dlaczego warto to rozważyć

W dużych apkach typy na full stack to game changer:

Refaktoring bez strachu. Zmieniasz pole w schemacie? Shared typy i kompilator wskażą wszystkie miejsca.

Jedna walidacja wszędzie. Bez kopiowania kodu między TypeScriptem, Swifem czy Kotline.

Szybski start zespołu. Jeden język zamiast trzech ekosystemów.

Mniej operacyjnego bólu. Mniej zależności, strategii deploymentu i niespodzianek.

Realia w praktyce

Gleam nie zastąpi wszystkiego. Ekosystem mniejszy niż TypeScript czy Python – trudniej o devów i biblioteki.

Ale dla nowych projektów full stack, gdzie liczy się spójność? Eliminuje masę błędów na starcie.

Doable jest proste celowo. Pokazuje, że architektura działa. W realu dodajesz features, ale filozofia zostaje: pisz raz, waliduj wszędzie, deploy na wiele.

Jak zacząć

Krzywa uczenia jest, ale łagodna. Składnia jak w JS, Pythonie czy Rust. Typy mocne, ale nie przytłaczające.

Zacznij od backendu na Erlangu. Zrób API. Dodaj Lustre i shared typy. Poczujesz różnicę – powrót do fragmentacji boli.

Przyszłość full stack to nie nowe narzędzia na warstwy. To język, który ogarnia wszystkie.


Chcesz spróbować Gleama? Zajrzyj do docs i pomyśl, jak to wpasuje się w twój następny projekt. Type safety na wszystkich platformach czeka.

Read in other languages:

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