Prevents "M.forEach is not a function" crashes when API returns error objects or unexpected shapes instead of arrays. Guards all useQuery consumers with Array.isArray checks and safe defaults for object props. Files fixed: DeadlineList, AppointmentList, TenantSwitcher, DeadlineTrafficLights, UpcomingTimeline, CaseOverviewGrid, AISummaryCard, TeamSettings, and all page-level components (dashboard, cases, fristen, termine, ai/extract).
KanzlAI-mGMT
Kanzleimanagement online — law firm management for deadlines, appointments, and case tracking.
Structure
backend/ Go API server
frontend/ Next.js 15 (TypeScript, Tailwind CSS)
Development
make dev-backend # Go server on :8080
make dev-frontend # Next.js dev server
make build # Build both
make lint # Lint both
make test # Test both
Tech Stack
- Frontend: Next.js 15, TypeScript, Tailwind CSS
- Backend: Go
- Database: Supabase (PostgreSQL) —
kanzlaischema - Deploy: Dokploy on mLake (kanzlai.msbls.de)
Description
Languages
TypeScript
51.8%
Go
47.8%
Dockerfile
0.1%
CSS
0.1%