feat: phase 0 foundation — monorepo scaffold, backend, frontend, CI, docker

Establishes the skeleton every later phase builds on: Go+Gin API with
zap logging, /api/healthz, SQLite+goose runner; Vite+React18+TS strict+
Tailwind v4 frontend with bento-mono theme tokens; openapi.yaml driving
a generated TS client; oxlint with vendored anti-slop rules; GitHub CI;
multi-stage Dockerfile -> 33.6MB distroless image; docker compose up
serves the blank board.


Generated with [Devin](https://devin.ai)

Authored By: TDvorak <[email protected]>
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Tomas Dvorak committed 2026-09-17 20:29:21 +02:00
1 parent e7f32949e9
commit b60821350a
46 files changed
+6415 -10

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
openapi: 3.1.0
info:
title: Dash API
version: 0.1.0
description: >
Single source of truth for the Dash API. The TypeScript client in
packages/api-client is generated from this file — do not hand-write
API types in the frontend. Phase 1 extends this contract with
sections/items/urls CRUD (see docs/specs).
servers:
- url: /
paths:
/api/healthz:
get:
operationId: healthz
summary: Liveness + database reachability probe
responses:
"200":
description: Service healthy
content:
application/json:
schema:
$ref: "#/components/schemas/Health"
"503":
description: Database unreachable
content:
application/json:
schema:
$ref: "#/components/schemas/Health"
components:
schemas:
Health:
type: object
required: [status]
properties:
status:
type: string
example: ok