svego

Zbudowane z frustracji, nie z roadmapy.

Za każdym razem te same trzy tygodnie na to samo. Logowanie, płatności, panel. W końcu ktoś to zapisał raz i porządnie.

Nazwa
svego
Rok
2026
Stack
Svelte · Go · Postgres · Redis
Licencja
MIT
Repozytorium
sebcioxd/saas-starter
Status
Aktywny rozwój

Historia jako log zmian.

Pięć decyzji, które ukształtowały resztę kodu.

  1. a1c4f9e 2025-11

    Pierwszy commit

    Routing, pusty layout i decyzja, żeby nie zaczynać od komponentów.

  2. 3d8b071 2026-01

    Sesje zamiast JWT

    Wiersz w bazie wygrał z tokenem, którego nie da się unieważnić.

  3. 9f2e5aa 2026-03

    Płatności i webhooki

    Klucz idempotencji na zdarzenie, bo Stripe potrafi wysłać je dwa razy.

  4. c07b143 2026-06

    i18n przestaje być opcją

    Dwa katalogi tłumaczeń i jedno ciasteczko wspólne dla obu stron.

  5. 5e91d20 2026-09

    Repozytorium publiczne

    To, co zostało, to już tylko Twój produkt.

Cztery zasady, których się trzymamy.

Nie są nowatorskie. Są konsekwentnie stosowane, co jest trudniejsze.

Biblioteka przed własnym kodem

Jeśli ktoś rozwiązał to wcześniej i utrzymuje od lat, nie piszemy tego jeszcze raz. Limity zapytań, strefy czasowe i OAuth mają zbyt wiele przypadków brzegowych, żeby uczyć się ich na produkcji.

Jawność ponad magię

Wolimy kod, po którym widać, co się wydarzy. Zapytania budowane wprost, zależności przekazywane ręcznie, skończona lista kodów błędów zamiast dowolnych napisów.

Struktura przed treścią

Najpierw warstwy, regiony i motyw, dopiero potem widoki. Zmiana ramy po fakcie kosztuje wielokrotnie więcej niż wybranie jej raz, na początku.

Błąd na granicy, nie w środku

Brakująca zmienna środowiskowa zatrzymuje start aplikacji, a nie trzecie żądanie w piątkowy wieczór. Wszystko, co można sprawdzić przy uruchomieniu, sprawdzamy przy uruchomieniu.

Pliki cookie

Używamy tylko tych, które są niezbędne do działania serwisu. Możesz zgodzić się także na opcjonalne. Szczegóły

plen