# FAQ

## How is this different from Metabase?

Metabase is a server with its own database of dashboards, users, and permissions,
and you build everything in its GUI. sqldash has no server to deploy or operate and
no accounts to manage. A dashboard is a file in your repo, the pull request is the
review, git is the history, and your warehouse credentials are the permission model.

## How is this different from Evidence?

Evidence pages are markdown with SQL, and Node builds them into a static site whose
data is extracted at build time, so viewers see whatever the last build fetched.
sqldash has no build step. A dashboard is one YAML file, every query
runs live against your warehouse with the viewer's own credentials, and the same
metrics are served to agents over MCP.

## How is this different from Rill?

Rill is also BI as code with YAML metrics views, but it is built around its own OLAP
engines and its git workflow lives in Rill Cloud. sqldash queries the warehouse you
already have, and git is built into the tool. You can serve a git URL, register several
repos as one workspace, edit in the browser, and commit the diff. No cloud is required,
and the semantic layer is served to agents over MCP from your laptop.

## How is this different from dbt Charts?

dbt Charts, from dbt Labs, also keeps dashboards as YAML in git and runs SQL against
your own warehouse. The biggest difference is where a number is defined. A dbt Charts
board carries its own SQL, so every board that shows revenue writes it again. A sqldash
tile can name a metric defined once in `metrics.yaml`, and that same definition answers
the CLI and agents over MCP. The browser edits the YAML for you, AI Studio hands requests
to your own coding agent, and sqldash serves any repo without a dbt project. dbt Charts
has more chart types, static PDF and SVG output, a VS Code extension, and a closer fit
with dbt projects.

## How is this different from Streamlit?

Streamlit is a framework for writing apps in Python. sqldash is declarative. A dashboard
is data rather than code, so there is nothing to program, and an agent can write one as
easily as a person.

## Can I bring the semantic layer I already have?

Yes. Import LookML or Snowflake semantic views into `metrics.yaml`, export back to
either, or generate a Cortex Agent and its scoped semantic view from an agent in your
repo. See [LookML & Cortex](/docs/lookml-cortex/).

## Do I have to run a server?

No server to deploy. `sqldash serve` runs on your laptop and queries your databases
with your own credentials. For people who have no warehouse access,
`sqldash snapshot` renders static pages they can open anywhere.

## Where do credentials go?

Use `${env:VAR}` references to read credentials from your environment, or a per-user
profile file. This keeps credential values out of the dashboard YAML you commit, and
everyone connects to the warehouse as themselves. See [Setup](/docs/setup/).

## Does it work with my warehouse?

Snowflake, BigQuery, Databricks, Redshift, Athena, Postgres, MySQL, SQL Server,
Trino, ClickHouse, SQLite, and DuckDB have flat config. Anything else SQLAlchemy can
reach works with a raw connection URL. See [Sources](/docs/sources/).

## Does my data leave my machine?

Queries run from your machine against your warehouse, and results are shown in your
browser. sqldash has no service or account behind it and collects no analytics,
telemetry, or crash reports. It never checks for updates or contacts a server of its
own, and it connects only to the warehouses and git remotes you configure. The pages
`sqldash serve` shows load everything from the local server, and their content security
policy blocks every other origin.

sqldash does not include or call an AI model. If you use [AI Studio](/docs/studio/),
the coding agent you choose receives the request context you review before sending,
without query results. When you connect a coding agent over [MCP](/docs/mcp/), the
results it asks for go back to that agent, and its model provider sees them the way it
sees anything else in the conversation.

The [privacy policy](https://github.com/dylan-murray/sqldash/blob/main/PRIVACY.md)
lists everything sqldash reads, what it connects to, and every file it keeps on your
machine.

## How do I report a security problem?

Please report it privately rather than in a public issue. On the repository's
**Security** tab, click
[Report a vulnerability](https://github.com/dylan-murray/sqldash/security/advisories/new),
and the fix and advisory get worked out in that private thread. The
[security policy](https://github.com/dylan-murray/sqldash/blob/main/SECURITY.md) says
what to include, what counts, and which versions get fixes.

## Can several people share dashboards?

Share them the way you share code. Commit the YAML and review changes in pull
requests. Everyone serves the repo locally with their own credentials, or serves the
git URL directly. See [Workspaces](/docs/workspaces/).
