Veodyn
An open-source, self-hostable analytics platform for transportation agencies and data teams.
Write queries, arrange dashboards, track KPIs, and publish governed reports, with an AI assistant that drafts all four for you.

What is Veodyn?
Veodyn is a white-label analytics product built for regional transportation data: transit feeds, freeway sensors, bikeshare, air quality, and anything else you can reach with SQL or an API. Agencies self-host it, brand it with their own name, logo, and palette through a single YAML file, and connect it to their own warehouses.
Under the hood it pairs a Next.js frontend with a vendored Redash backend (queries, schedules, alerts, permissions) and a FastAPI sidecar (KPIs, reports, data catalog, AI). Users only ever talk to the frontend; every backend call goes through server-side proxy routes with the user's own session, so backend credentials never reach the browser.
Key capabilities
- Queries: a full SQL editor with a schema browser, parameters, schedules, forking, and per-query permissions, plus a no-code Visual builder that composes SQL from field picks.
- Dashboards: query results arranged on a drag-and-drop grid, with auto-refresh, dashboard-level parameters, annotations, public share links, a presentation mode, and an unattended wall mode.
- Visualizations: 15 core types (table, chart, counter, pivot, funnel, map, heatmap, sankey, choropleth, cohort, sunburst, word cloud, and more), each with a live-preview editor. Instances can allowlist types and install custom visualization plugins.
- Reports: board-facing documents built from data blocks, with snapshots that freeze the numbers, a four-eyes review workflow, PDF export, and revocable public links.
- KPIs: named metrics with a target, thresholds, an owner, and a cadence, evaluated on schedule with history charts and breach alerts.
- Create with AI: a chat that drafts queries, dashboards, KPIs, reports, and snippets, grounded in what your instance actually has. The model writes words; code assigns IDs, so a suggestion can never cite a query that does not exist.
- Alerts: conditions watched on query results, delivered to configurable destinations, including alerts armed directly from a KPI's breach threshold.
- Data catalog: browsable datasets with schema, coverage, and freshness, organized into configurable domains (Transit, Freeways, Rail, or whatever your instance defines).
- White-label: brand name, logo, accent color, chart palette, fonts, domains, and feature flags all come from instance configuration, never from code.
Tech stack
| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TypeScript, Tailwind CSS v4, shadcn/ui |
| Query backend | Redash fork (Flask, SQLAlchemy), PostgreSQL, Redis |
| Sidecar API | Python 3.11, FastAPI, SQLAlchemy 2, RQ |
| Historical warehouse | ClickHouse |
| AI | Anthropic Claude (bring your own key; every AI flow has a manual path) |
| Deployment | Docker images, Helm charts for Kubernetes |
Where to go next
- Getting Started: run the stack locally.
- Configuration: brand it as your own instance.
- Architecture: how the services fit together.
- Deployment: production installation on Kubernetes.