Development
Everything you need to contribute to TimeTiles.
Data flow, ingestion pipeline, background jobs, and design decisions.
ArchitectureDynamic filters, UI customization, language support, and localization.
FeaturesEnvironment setup, testing, commits, and documentation guidelines.
ContributingEndpoints, request/response formats, and authentication.
APITech Stack
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack), React 19, TypeScript (strict) |
| CMS | Payload CMS 3 (integrated mode, 23 collections, 4 globals) |
| Database | PostgreSQL 17 + PostGIS 3.5 |
| Maps | MapLibre GL JS, server-side clustering via PostGIS |
| State | React Query (server), Zustand (client), nuqs (URL) |
| UI | Tailwind CSS, Radix UI, shadcn/ui |
| i18n | next-intl (English, German) |
| Jobs | Payload Workflows (4 ingest workflows, 9 system jobs, 3 queues) |
| Testing | Vitest (unit/integration), Playwright (E2E) |
| Build | Turbo monorepo, pnpm workspaces |
Monorepo Structure
apps/
web/ Next.js app, Payload CMS, API routes
scraper/ TimeScrape runner (optional, Podman)
docs/ Documentation site (Nextra)
packages/
ui/ Shared UI components (shadcn/ui)
assets/ Logos and static assets (Git LFS)
payload-schema-detection/ CSV/Excel schema detection
eslint-config/ Shared ESLint config
typescript-config/ Shared TypeScript config
prettier-config/ Shared Prettier configRelated
- Guide — Using TimeTiles as an end user
- Self-Hosting — Deploying and operating TimeTiles
- Contributing — Contribution guidelines
Last updated on