IDEAS.md
Vision
A Dieter Rams–inspired minimalist navigation app, built on OpenStreetMap and powered through Telegram. Every design choice follows Rams’ principle: Less, but better.
Core Principles
Clarity: Every interaction is obvious and purposeful.
Minimalism: No excess decoration, only functional elements.
Consistency: Unified typography, spacing, and iconography.
Timelessness: Avoid trends; design remains relevant for years.
User Experience
Telegram-first: Commands and inline queries for reports, search, and navigation.
Map snapshots: Delivered as clean images with overlays for traffic events.
Navigation output: Text-based directions with optional minimalist map tiles.
Reports: Simple commands with location sharing — planned, not built. Implemented commands today are /start (+ /mula), /help, /privacy (+ /privasi); /accident, /traffic, /hazard are future report commands.
Feedback loop: Concise updates about nearby events.
Visual Design
Color Palette:
Signal Orange (#EB8008)
Functional Red (#ED3F1C)
Olive Green (#736B1E)
Soft Beige (#D9D2C6)
Matte Black (#1A1A1A)
Typography:
Geist (body) / Space Grotesk (headings) — as implemented in the token package; Helvetica Neue / Inter was the original idea
Regular for body, Bold for emphasis
Icons:
Line-based, monochrome with accent colors
Accident = ⚠️, Traffic = 🚗, Hazard = ⛔
Architecture Overview
Frontend: Telegram Bot + Mini App on Cloudflare Workers with static assets (Workers superseded Pages; PWA still optional/future)
Backend: grammY on Cloudflare Workers receiving updates at the POST /telegram/webhook endpoint
Database today: Cloudflare Workers KV (TTL-only chat sessions); Neon (Postgres + PostGIS) remains the target for event storage
Routing: not wired yet — validated target stack is Valhalla + Photon (OSRM references in older docs are superseded)
Tiles today: OpenFreeMap (theme/basemap/liberty-rams.json); Maptiler was the original idea
Queue: none yet — RabbitMQ is future/aspirational, deferred out of v1
Storage: none yet (no R2 binding in bot/wrangler.jsonc); R2 remains a future option for map snapshots
Monitoring: none yet — Prometheus + Grafana are future/aspirational
Email: none yet — Resend is future/aspirational
Gamification
Points for validated reports
Leaderboards via Telegram bot
Minimalist badges (circle outlines with symbols)
Future Ideas
Regional clusters via Telegram groups
Voice-to-text reporting
Offline mode with cached routes
API layer for anonymized traffic data
Motto
"Good design is as little design as possible." — Dieter Rams
arah²
Packages
Repo
- Source tree
- API — API
- Deployment — Deployment
- Contributing — Contributing
- Core concepts — Core-Concepts