Lehká full-stack kostra pro Golang
Stavte aplikace v Go lehce, čistě a rychle. Gin, Vue 3 a přísná pravidla, podle kterých píše stejně dobrý kód člověk i AI.
Naklonujte repo a nechte AI pracovat
Co Gin GoKick umí
01–05
Rozjetí
-
01
Go a Gin
Gin obslouží web z jedné binárky i se šablonami a frontendem.
-
02
Konfigurace z .env
Proměnné mají kontrolu. Překlep zastaví start, ne produkci.
-
03
Pravidla v AGENTS.md
Člověk i AI píšou podle stejných pravidel, nástroje je vynutí.
-
04
Brána před commitem
Jeden blok spustí před commitem lint, typy i testy jako CI.
-
05
Kontrola před pushem
Lefthook před pushem ověří název větve i zprávy commitů.
06–09
Databáze
-
06
PostgreSQL 18
Aplikace se připojí přes pgx, databázi spustí jeden příkaz.
-
07
Migrace goose
Spustí se při startu se zámkem, takže se instance nepoperou.
-
08
sqlc místo ORM
Dotazy píšete v SQL, typované funkce v Go se vygenerují.
-
09
Testy s databází
Každý test dostane prázdné schéma s migracemi, v CI i lokálně.
10–13
Nasazení
-
10
Docker image
Image běží na Alpine bez roota a healthcheck ověří i databázi.
-
11
Návod na Dokploy
Provede prvním nasazením s Postgresem, Cloudflarem i Grafanou.
-
12
Klidný restart
Při vypnutí požadavky doběhnou, nejdéle do pěti sekund.
-
13
E-maily přes SMTP
Lokálně je chytí Mailpit, v produkci je odešle Amazon SES.
14–17
Frontend
-
14
Vite po vzoru Laravelu
HMR jde přes Go, takže i vývoj běží s produkční CSP.
-
15
Vue 3 a Tailwind 4
SPA s vue-routerem i stránky z Go sdílejí jeden styl.
-
16
Typy a guardy z Go
tsgen píše typy i guardy, změnu API odhalí kompilace.
-
17
Routy podle přihlášení
Každá routa říká, kdo na ni smí, a záložky sdílejí přihlášení.
18–20
Šablony v Go
-
18
SSR přes html/template
Homepage, stránku 404 i vstup do aplikace vykreslí server v každém jazyce.
-
19
Hlídané šablony
Kontroly odhalí v šabloně chybějící soubor, nepřeložený text i neznámý klíč.
-
20
Mailové šablony
Maily vzniknou z Go šablon a uživateli přijdou v jeho jazyce.
21–24
Komponenty
-
21
Sdílené prvky
Ikony, dropdowny a tooltipy vypadají ve Vue i v Go stejně.
-
22
Datagrid
Filtry i stránka zůstanou v adrese a výběr umí hromadné akce.
-
23
Formuláře
Pole pro text i čísla ukážou chybu z API přímo pod sebou.
-
24
Toasty a potvrzení
Toast přežije navigaci a před nevratnou akcí se zeptá modal.
25–28
Jazyky a SEO
-
25
Jazyky v adrese
Jazyk má vlastní adresu s hreflang a účet si ho pamatuje.
-
26
Kontrola překladů
tools/i18n hlídá chybějící klíče, nepoužité texty i plurály.
-
27
ICU v Go i Vue
Plurály a čísla vypadají v Go i v prohlížeči stejně.
-
28
Titulky a sdílení
Bez titulku, popisu nebo obrázku ke sdílení neprojdou kontroly.
29–33
Bezpečnost
-
29
Přihlášení
Hesla hashuje argon2id, limit pokusů platí napříč instancemi.
-
30
Přehled zařízení
Uživatel vidí svá zařízení s poslední IP a odhlásí, co nezná.
-
31
CSP s nonce
Nonce a Trusted Types zastaví cizí skript bez unsafe-inline.
-
32
CSRF bez tokenů
Požadavek z cizí stránky odmítne http.CrossOriginProtection.
-
33
Hlavičky na A+
HSTS, COOP, CORP i Permissions-Policy pošle server sám.
34–36
Sentry a telemetrie
-
34
Sentry pro Go i Vue
Spojí chybu z prohlížeče s backendem, release je SHA commitu.
-
35
Prometheus a Grafana
Hotový dashboard ukáže požadavky, doby odpovědí i runtime Go.
-
36
Logy v JSON
slog zapíše trace_id i user_id, nikdy e-mail ani jméno.
37–40
Měření a souhlas
-
37
Cookie lišta
Odmítnutí je stejně snadné jako souhlas a volbu lze kdykoli změnit.
-
38
Měření a konverze
GA4, Ads i Meta měří a počítají konverze až po souhlasu.
-
39
E-mail jen jako hash
E-mail dostanou jen Ads a Meta, a to jako hash SHA-256.
-
40
Události z Go
Události definuje Go a typecheck nepustí žádnou bez mapování.