Tech Stack Tech Stack — Lobby Statusoversikt Lag Teknologi Status Frontend Next.js 15 + React 19 + TypeScript + Tailwind + shadcn/ui Vedtatt Backend TBD — Node.js/TypeScript ELLER Java/Spring Boot ADR needed Database PostgreSQL + RLS (multi-tenancy) Vedtatt AI Claude API (Anthropic) Vedtatt Mobile React Native + Expo Phase 2 Infra TBD — Vercel+Supabase vs Azure ADR needed Monorepo Turborepo Vedtatt (følger Bilko-mønster) Frontend Stack: Next.js 15 + React 19 + TypeScript + Tailwind CSS + shadcn/ui Valg Begrunnelse Next.js 15 SSR, App Router, server components — samme som Bilko (delte lærdommer) React 19 Server Actions, concurrent features — reduserer boilerplate TypeScript Type safety, bedre DX, færre runtime-feil Tailwind CSS Utility-first, rask prototyping, konsistent design shadcn/ui Tilgjengelig, kopierbar komponent-bibliotek, ikke locked-in Backend (ADR Pending) Status: Beslutning kreves av CEO/arkitekt Alternativ A — Node.js + TypeScript (Hono/Express) Fordel Ulempe Samme språk som frontend (TypeScript) Svakere type-system vs Java Raskere onboarding for JS-devs Event loop — ikke egnet for CPU-heavy tasks Lettere deployment (Vercel/Railway) Mindre modent for enterprise-patterns Bilko-erfaring kan gjenbrukes Alternativ B — Java + Spring Boot Fordel Ulempe Sterke typer, robust for enterprise Annet språk enn frontend Godt testet for compliance-systemer Tyngre oppstart og deployment Utmerket støtte for multi-tenancy patterns Krever Java-kompetanse LumisCare bruker Java — erfaring finnes Anbefaling: Node.js/TypeScript for Phase 1 (fart og konsistens). Java vurderes for Phase 3+ (kompleksitet øker). Database Stack: PostgreSQL + Row Level Security (RLS) Multi-tenancy via RLS -- Hvert selskap er en "tenant" -- RLS sikrer at firma A aldri kan se firma Bs data ALTER TABLE employees ENABLE ROW LEVEL SECURITY; CREATE POLICY tenant_isolation ON employees USING (company_id = current_setting('app.current_company_id')::uuid); Kjernedatamodell Company (org_number, name, address, industry) ├── Employee (personal_info, employment_info, role) │ ├── Document (type, file, expiry_date) │ ├── Absence (type, start, end, status, approver) │ └── OnboardingTask (step, status, due_date) ├── Department (name, parent, manager) ├── HMSHandbook (version, content, generated_at) └── ComplianceCheck (regulation, status, last_checked) ORM: Prisma (type-safe, god migrering, støtter PostgreSQL RLS) AI Stack: Claude API (Anthropic) Modell Brukstilfelle Claude Haiku Rutineoppgaver — kategorisering, varsler, enkle svar Claude Sonnet Kompleks generering — HMS-håndbøker, onboarding-flyter, analyser AI-brukstilfeller Phase 1 HMS-håndbok-generator — Company info → 40–80 siders compliant håndbok Onboarding-flyt-generator — Stillingsbeskrivelse → komplett plan Arbeidslogg-transkripsjon — Talenotat → strukturert logg HR-analyser — Fraværsdata → innsikt og varsler Compliance-status — Regelendringer → påvirkning for kunden Mobile (Phase 2) Stack: React Native + Expo Deler UI-komponenter med web via shared packages Native check-in (GPS, kamera for dokumenter) Offline-støtte for feltarbeidere Push-varsler for vaktplaner og fravær Infrastruktur (ADR Pending) Alternativ A — Vercel + Supabase Fordel Ulempe Rask oppstart, minimal ops US-hosting (GDPR-kompleksitet) Bilko og andre ALAI-produkter bruker dette Supabase RLS-quirks Vercel AI SDK integrerer godt med Claude Kostnad skalerer raskt Alternativ B — Azure (Norway East) Fordel Ulempe Norsk datacenter — sterk GDPR-posisjon Høyere ops-overhead Compliance selling point Tregere oppstart Azure AD → BankID-integrasjon Dyrere for tidlig fase Anbefaling: Vercel+Supabase for Phase 1 (fart), migrer til Azure Norway East etter 50+ kunder (compliance selling point). DNA fra LumisCare Referanse: ~/projects/client/lumiscare/ — enterprise helseplattform vi bygde. Lobby deler DNA med LumisCare: Domene LumisCare Lobby Besøk Hjemmebesøk (hjemmesykepleie) Kundebesøk (feltarbeid) Planlegging Vaktplanlegging (sykepleiere) Skiftplanlegging HR Ansatthåndtering HR-modul Multi-tenancy Per kommune Per bedrift Compliance Norske helseregler Arbeidsmiljøloven Gjenbruk: Autentiseringsmønstre, multi-tenancy RLS-arkitektur, besøks-domenmodell, planleggingslogikk. Unngå: LumisCares over-engineering for enterprise — Lobby starter lettere. Ikke-funksjonelle krav Krav Mål Responstid <500ms for alle sider Oppetid 99.5%+ GDPR DPA, sletting, eksport fra dag 1 Språk Norsk bokmål primær, nynorsk Phase 2 Mobil Responsiv web Phase 1, native app Phase 2 Sikkerhet OWASP top 10, SOC 2 (Phase 3+)