DORA
Features
Multi-DatabasePostgreSQL, MySQL, SQLite & libSQLQuery HistorySearch, replay and analyze every querySchema VisualizationLive ER diagrams of your relationshipsDocker ContainersSpin up and manage local databasesSSH TunnelingReach private databases through secure tunnelsORM CockpitDiff Drizzle/Prisma schema, preview migrationsThemingCustom look and feel for your workspaceAnalyticsQuery PostHog with HogQL, build dashboards
All features
ChangelogDORADocumentationView web app
Dora docs
Dora docsGetting StartedInstallation

Connect a database

Connections

Features

Features
AnalyticsDrizzle ↔ SQL converter

Guides

Reference

API ReferenceShared TypesDora runner (Go CLI/TUI)
Features

Loading documentation…

Preparing this guide.

Loading page content

Features

Deep dives into individual Dora features.

Drizzle ↔ SQL converter

Convert Drizzle schemas and queries to SQL and back. Deterministic, offline, and dialect-aware, with no AI involved.

Engineered by remco_stoeten
GitHub ProfileRepositoryFeaturesDocsChangelog
© 2026 Dora. All rights reserved.Latest commit: fix(marketing): stop the homepage scrolling sideways and fix its phone… · 3 days ago · ed5a7d2
Features

Analytics

Connect a PostHog project and query events, persons, and sessions with HogQL, with no separate analytics tool required.

Dora connects to a PostHog project over the read-only HogQL Query API. There's no wire protocol to implement, so the connector works the same way against PostHog Cloud (US or EU) as it does against a self-hosted instance.

Your browser does not support the video tag.

Connecting a project

Add a PostHog connection the same way you'd add any other data source, using a personal API key with query:read scope. See Connect → PostHog for the credential setup.

Browsing the schema

PostHog has no information_schema, so Dora reflects each virtual table's columns by running a zero-row SELECT * and reading back the HogQL Query API's columns/types metadata. The tables surfaced in the schema browser are:

  • events
  • persons
  • sessions
  • groups
  • cohort_people
  • raw_sessions

Row counts shown next to each table are a live SELECT count(). They're hidden rather than shown as zero if the count can't be read.

The built-in dashboard

Opening a PostHog connection adds an Analytics entry to the sidebar. It runs a set of HogQL queries against the connection and renders them as a dashboard:

PanelWhat it shows
KPI tilesEvents, unique users, pageviews, and sessions, each against the previous period of the same length
Monitored sitesHosts sending events, with per-site event/user/pageview counts
ActivityDaily events and unique users
Top eventsThe most frequent event names
Top pagesThe most-viewed URLs ($pageview events)
Top browsersThe most common $browser values
Top referrersWhere traffic came from
Top countriesGeographic breakdown
DevicesDevice-type breakdown

Ranges, filters, and drill-downs

The range selector in the header switches every panel between 7, 14, 30, and 90 days at once, and the tiles re-compare against the matching previous period as you go.

Clicking a slice of any breakdown panel drills down: the value becomes a filter chip, and every other panel re-queries within it. Drills are additive, so you can stack a site, an event, and a browser to narrow the whole dashboard to one slice of traffic. Chips are removable individually, or with Clear all.

Two more controls sit in the header: an exclude localhost switch that drops traffic from localhost, 127.0.0.1, 0.0.0.0, and [::1] hosts, and a manual refresh that re-runs every query.

The dashboard is read-only, matching the connector's write-blocking behavior for PostHog: Dora never mutates PostHog data, only queries it.

Features

Deep dives into individual Dora features.

Drizzle ↔ SQL converter

Convert Drizzle schemas and queries to SQL and back. Deterministic, offline, and dialect-aware, with no AI involved.

On this page

Connecting a projectBrowsing the schemaThe built-in dashboardRanges, filters, and drill-downs