Introducing Dronk: ask your database anything
Why we're building a tool that turns plain-English questions into trustworthy SQL, and runs it safely against your own connection.
Ryan Chandler
3 min read
Most questions about a business are really questions about its data. Which regions drove the most revenue last month? How many trial users converted? What changed after the pricing update? The answers are sitting in a database, but getting to them usually means writing SQL, waiting on an analyst, or wrestling with a dashboard that doesn't quite fit the question.
Dronk closes that gap. You ask a question in plain English, Dronk writes the SQL, runs it safely against your own connection, and hands back the answer along with the query that produced it.
How it works
Behind the question box there's an AI agent with a small set of tools pointed at your database. Before it answers, it can list your tables, describe a table's columns, and look up how tables relate to each other. That's how it grounds a query in your actual schema instead of guessing.
It's worth being clear about what the agent can and can't see. The AI agent is never given access to your database directly. The only information we share with it is the structure of the database itself — tables, columns, indexes, foreign keys, and the like. Even then, the agent isn't querying your database for that structure; Dronk stores a snapshot of your database's state and shares that snapshot with the agent. Every query is executed from the Dronk web application, and the results of a query are never handed back to the agent.
Connect a MySQL or Postgres database, ask something like "which regions drove the most revenue in the last 30 days?", and Dronk writes the query for you:
SELECT region, SUM(amount) AS revenue
FROM orders
WHERE created_at >= now() - interval '30 days'
GROUP BY region
ORDER BY revenue DESC;
No hand-written SQL, no copy-pasting between tools. Just the answer, and the query sitting right next to it so you can check the work.
Safe by default
Letting an agent run queries against a real database only works if it can't do any harm. So we don't rely on the model behaving well. Every generated query is parsed and rejected unless it's a single read-only statement, and it runs inside a session that's forced read-only with a time limit attached. We'll dig into the details in a future post, but the short version is: Dronk reads, it never writes.
From answer to dashboard
A result doesn't have to stay a table. Dronk can turn it into a single stat, a bar, line, or area chart, or a scatter plot, and you can pin any of those to a dashboard. Dashboards refresh on a schedule, so the numbers stay current, and you can share one with a teammate (or lock it behind a password) when you want them to see it too.
What's next
We're opening up a private beta over the coming weeks. If you want early access, join the waitlist and we'll email you the moment there's a slot.
In the meantime we'll be writing here about the engineering behind Dronk: how we read your schema, how we keep generated SQL safe, and the surprisingly deep problem of understanding a question before answering it.