<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kyle Ledbetter</title>
    <description>The latest articles on DEV Community by Kyle Ledbetter (@kyleledbetter).</description>
    <link>https://dev.to/kyleledbetter</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3569845%2F8fcbb55d-0c1d-4f26-b228-9d57005fe95a.png</url>
      <title>DEV Community: Kyle Ledbetter</title>
      <link>https://dev.to/kyleledbetter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kyleledbetter"/>
    <language>en</language>
    <item>
      <title>Persisted Agent Chats: The Architecture Behind Better Supabase Dashboard Generation in Dreambase</title>
      <dc:creator>Kyle Ledbetter</dc:creator>
      <pubDate>Wed, 08 Jul 2026 13:15:47 +0000</pubDate>
      <link>https://dev.to/kyleledbetter/persisted-agent-chats-the-architecture-behind-better-supabase-dashboard-generation-in-dreambase-502h</link>
      <guid>https://dev.to/kyleledbetter/persisted-agent-chats-the-architecture-behind-better-supabase-dashboard-generation-in-dreambase-502h</guid>
      <description>&lt;h1&gt;
  
  
  Persisted Agent Chats
&lt;/h1&gt;

&lt;p&gt;We just shipped persisted workspace chats for Dreambase agents. On paper it &lt;br&gt;
sounds like basic chat history. Under the hood it is a meaningfully different &lt;br&gt;
architecture, and it directly improves dashboard generation quality. Here is &lt;br&gt;
what changed and why it matters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcgg3g95mu680mxxh3o31.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcgg3g95mu680mxxh3o31.png" alt="Dreambase Agent Chats" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every agent conversation in Dreambase used to be ephemeral. Close the tab, lose &lt;br&gt;
the context. Each session started cold: no memory of prior questions, no memory &lt;br&gt;
of how you described your schema or business logic, no memory of conclusions &lt;br&gt;
already reached.&lt;/p&gt;

&lt;p&gt;For a product where the core value is an agent reasoning over your Supabase &lt;br&gt;
Postgres data plus connected APIs and MCP sources, that is a real limitation. &lt;br&gt;
Context compounds. Stateless sessions cannot compound.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Changed
&lt;/h2&gt;

&lt;p&gt;Workspace chats are now persisted to the database, but the persistence layer is &lt;br&gt;
not a simple message log. It carries the same context management, retrieval, &lt;br&gt;
compression, agent framework, and tool access that already powers our dashboard &lt;br&gt;
chat experience, which received its own upgrade alongside this release.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjq5w87xma8q1dzb2o54k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjq5w87xma8q1dzb2o54k.png" alt="Dreambase Agent Chats" width="800" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Practically, this means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prior conversation history is retrievable and used as active context on 
future turns, not just displayed as a transcript.&lt;/li&gt;
&lt;li&gt;Long conversation histories are compressed rather than truncated, so context 
windows stay efficient without losing the substance of what was discussed.&lt;/li&gt;
&lt;li&gt;The agent framework and tool access available in a persisted chat matches 
what is available in our dashboard planning chat, so there is no capability 
gap between a quick question and a full planning session.&lt;/li&gt;
&lt;li&gt;The system is designed to self-improve: retrieval and compression get better 
as the underlying models and techniques improve, without requiring you to 
change how you use chat.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why This Improves Dashboard Generation Specifically
&lt;/h2&gt;

&lt;p&gt;Plan Mode, our guided dashboard planning flow, is built entirely on chat. Before &lt;br&gt;
this release, every Plan Mode conversation started from a blank context. Now it &lt;br&gt;
inherits everything the agent has learned from prior conversations in that &lt;br&gt;
workspace: your metric definitions, your data quirks, the questions you have &lt;br&gt;
already asked and answered.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7knld2johtltpl568zht.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7knld2johtltpl568zht.png" alt="Dreambase Agent Chats" width="800" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The effect cascades. Better context means sharper clarifying questions during &lt;br&gt;
planning. Sharper planning means the generated dashboard matches intent on the &lt;br&gt;
first pass more often. Fewer generation-refinement loops means less time between &lt;br&gt;
asking for a dashboard and having one you trust.&lt;/p&gt;

&lt;p&gt;This is the kind of improvement that will not show up as a single flashy &lt;br&gt;
changelog line. It shows up as a measurable drop in edit rounds per dashboard &lt;br&gt;
and a measurable increase in first-pass accuracy across our internal evals.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why We Built It This Way First
&lt;/h2&gt;

&lt;p&gt;There is a reason this needed to be solid internally before we did anything else &lt;br&gt;
with it.&lt;/p&gt;

&lt;p&gt;We are building a Dreambase MCP server and public REST API that will expose our &lt;br&gt;
agents, dashboards, and datasets externally. The goal is for you to set up, &lt;br&gt;
configure, and call Dreambase directly from the AI apps, workflows, schedules, &lt;br&gt;
routines, and automation loops you already run, the same way Dreambase's own &lt;br&gt;
agents currently call PostHog, Linear, or Stripe through MCP.&lt;/p&gt;

&lt;p&gt;That only works if the underlying chat and agent architecture is durable, &lt;br&gt;
context-rich, and reliable under real usage. Persisted workspace chat is that &lt;br&gt;
architecture, proven internally first. It is the direct predecessor to the MCP &lt;br&gt;
server and API work coming next, not a separate feature.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The MCP server and public API are next up. If you want early access or want to &lt;br&gt;
integrate Dreambase agents and datasets into your own tooling ahead of general &lt;br&gt;
availability, reach out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://app.dreambase.ai?utm_source=dev.to&amp;amp;utm_medium=post&amp;amp;utm_campaign=persistent_chats"&gt;Try Dreambase →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;Read the full story: &lt;br&gt;
&lt;a href="https://dreambase.com/blog/improved-persisted-agent-chats?utm_source=dev.to&amp;amp;utm_medium=post&amp;amp;utm_campaign=persistent_chats"&gt;https://dreambase.com/blog/improved-persisted-agent-chats&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; ai, agents, supabase, analytics, mcp, llm&lt;/p&gt;

</description>
      <category>supabase</category>
      <category>ai</category>
      <category>agents</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Native OAuth MCP Integrations in Dreambase: ClickHouse, PostHog, Linear, GitHub with Supabase</title>
      <dc:creator>Kyle Ledbetter</dc:creator>
      <pubDate>Tue, 12 May 2026 17:07:53 +0000</pubDate>
      <link>https://dev.to/kyleledbetter/native-oauth-mcp-integrations-in-dreambase-clickhouse-posthog-linear-github-with-supabase-48n</link>
      <guid>https://dev.to/kyleledbetter/native-oauth-mcp-integrations-in-dreambase-clickhouse-posthog-linear-github-with-supabase-48n</guid>
      <description>&lt;p&gt;Dreambase now supports the full MCP authorization spec  across every integration in our Plugin Marketplace. Here is what that means technically and what you can build with it.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy22u02h3nw57gwn8c7ps.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy22u02h3nw57gwn8c7ps.png" alt="Dreambase Integrations" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Auth Stack
&lt;/h2&gt;

&lt;p&gt;Dreambase implements the full MCP authorization standard across every marketplace integration. Connections use OAuth 2.1 with PKCE, meaning the authorization handshake is handled automatically between Dreambase and the remote MCP server without you ever managing credentials manually. Dynamic client registration lets new integrations configure themselves programmatically, so connecting a new source is a single browser-based OAuth flow. &lt;/p&gt;

&lt;p&gt;All remote MCP connections in Dreambase use Streamable HTTP transport, which replaced SSE as the standard for remote MCP servers. Each connection is scoped to exactly the permissions you grant, auditable, and revocable, no API keys stored anywhere in your stack.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Each Integration Exposes
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71g2q737obeoqh6tvee6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71g2q737obeoqh6tvee6.png" alt="Dreambase Integrations" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ClickHouse&lt;/strong&gt; runs a remote MCP server with three core tools: &lt;code&gt;run_select_query&lt;/code&gt; for &lt;br&gt;
executing SQL against your ClickHouse cluster, &lt;code&gt;list_databases&lt;/code&gt; to enumerate databases, and &lt;br&gt;
&lt;code&gt;list_tables&lt;/code&gt; to enumerate tables within a database. Dreambase agents use these to run &lt;br&gt;
analytical queries across billions of rows and join results directly with Supabase data at &lt;br&gt;
query time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PostHog&lt;/strong&gt; exposes a rich MCP toolset including &lt;code&gt;hogql-schema&lt;/code&gt; to introspect available &lt;br&gt;
tables and columns, &lt;code&gt;query-generate-hogql-from-question&lt;/code&gt; to generate HogQL from natural &lt;br&gt;
language, &lt;code&gt;query-run&lt;/code&gt; to execute trend, funnel, paths, or HogQL queries, and &lt;code&gt;insight-query&lt;/code&gt; &lt;br&gt;
to run saved insights. Dreambase agents use these alongside Supabase joins to answer product &lt;br&gt;
questions that span behavioral events and structured database records.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linear&lt;/strong&gt; hosts its MCP server at &lt;code&gt;https://mcp.linear.app/mcp&lt;/code&gt; using Streamable HTTP with &lt;br&gt;
OAuth 2.1 and dynamic client registration. Clients that do not yet support remote MCP can use &lt;br&gt;
the &lt;code&gt;mcp-remote&lt;/code&gt; module for backwards compatibility. Exposed tools cover finding, creating, and &lt;br&gt;
updating issues, projects, and comments — pulling Linear project state directly into Dreambase &lt;br&gt;
dashboards alongside product and revenue metrics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt; exposes repository activity, commit history, PR data, and contributor analytics &lt;br&gt;
that Dreambase agents surface alongside Linear velocity metrics and Sentry error rates.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Dreambase Uses This
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh84u01n3sn97vdl6qfrd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh84u01n3sn97vdl6qfrd.png" alt="Dreambase Integrations in Chat" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you connect a source in the Dreambase Plugin Marketplace, the OAuth flow handles &lt;br&gt;
authorization and the connection is stored centrally. From that point, you define a Skill that &lt;br&gt;
bundles the connected sources with your business logic, KPI definitions, and visualization &lt;br&gt;
rules. The Dreambase agent then has typed, authorized access to every source in the Skill and &lt;br&gt;
can join across them at query time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75jfp9m2s3u01pp9wc9j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75jfp9m2s3u01pp9wc9j.png" alt="Dreambase Integrations inline metrics and charts" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A practical example: a Revenue and Product Health Skill might pull &lt;code&gt;run_select_query&lt;/code&gt; results &lt;br&gt;
from ClickHouse for event volume, &lt;code&gt;query-run&lt;/code&gt; from PostHog for funnel completion rates, and &lt;br&gt;
join both against Supabase subscription records — all resolved into a single cached dataset &lt;br&gt;
in Supabase Storage via DuckDB transforms at the edge.&lt;/p&gt;




&lt;h2&gt;
  
  
  Existing Marketplace Integrations
&lt;/h2&gt;

&lt;p&gt;The same OAuth flow covers Stripe, Polar, HubSpot, Sentry, Vercel, and Resend. Any REST API &lt;br&gt;
with an OpenAPI spec can be connected by pasting the OpenAPI URL directly. Skills via CLI, &lt;br&gt;
API, and MCP are coming soon so external agents can consume Dreambase intelligence directly. &lt;br&gt;
Reach out if you want early access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://dreambase.com/blog/native-oauth-integrations-for-mcp-apis" rel="noopener noreferrer"&gt;Read more from our blog&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>supabase</category>
      <category>mcp</category>
      <category>api</category>
      <category>ai</category>
    </item>
    <item>
      <title>Supabase Dashboards That Don't Suck: Production-Ready Analytics Without the Setup Hell</title>
      <dc:creator>Kyle Ledbetter</dc:creator>
      <pubDate>Wed, 25 Feb 2026 16:11:44 +0000</pubDate>
      <link>https://dev.to/kyleledbetter/supabase-dashboards-that-dont-suck-production-ready-analytics-without-the-setup-hell-330f</link>
      <guid>https://dev.to/kyleledbetter/supabase-dashboards-that-dont-suck-production-ready-analytics-without-the-setup-hell-330f</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR: We just shipped the most powerful Supabase dashboards ever built. Live data, intelligent caching, AI-assisted refinement, and a semantic layer that means the AI actually understands your schema. Free to try.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're a Supabase developer, you've probably hit this wall.&lt;/p&gt;

&lt;p&gt;You ship a product. Users start showing up. And then someone asks: "What does our retention look like?" or "Which features are people actually using?" or "Why did signups drop last Tuesday?"&lt;/p&gt;

&lt;p&gt;Your options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write SQL queries manually every time someone asks (unsustainable)&lt;/li&gt;
&lt;li&gt;Set up Mixpanel or Amplitude (requires tracking code, event schemas, weeks of setup, and now your data lives somewhere else)&lt;/li&gt;
&lt;li&gt;Build a custom internal dashboard (months of engineering work you don't have)&lt;/li&gt;
&lt;li&gt;Just... not have good analytics (most common option, worst outcome)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;None of this is ideal for you. We built something better.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Shipped
&lt;/h2&gt;

&lt;p&gt;Dreambase just launched production-ready dashboards built specifically for Supabase. Here's what that actually means:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawfcpzwe27kozivt5037.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawfcpzwe27kozivt5037.png" alt="Dreambase Supabase Dashboards" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live, interactive dashboards&lt;/strong&gt; with proper filtering that applies across the entire dashboard, not just individual charts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drag-and-drop edit mode&lt;/strong&gt; for rearranging, resizing, and adding components without touching the AI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9vmvid5f294lw1cs1npa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9vmvid5f294lw1cs1npa.png" alt="Edit Mode for Dashboards" width="800" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI assistant for refinement&lt;/strong&gt; that understands your full data model and helps you adjust queries, add visualizations, and iterate. Use slash commands (&lt;code&gt;/&lt;/code&gt;) for quick actions and at commands (&lt;code&gt;@&lt;/code&gt;) to reference Topics, dashboard items, or specific tables.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3pi7hb4clt75zbnnes2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3pi7hb4clt75zbnnes2.png" alt="Dreambase AI Analyst Assistant" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intelligent caching&lt;/strong&gt; that saves query results as datasets directly in your Supabase Storage. Your dashboard loads from cache. Your production database doesn't get hit on every page load. You control the refresh schedule.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Background generation&lt;/strong&gt; so you can close the tab and come back when the dashboard is ready.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query and dataset analysis&lt;/strong&gt; that audits the queries powering your dashboards using our Supabase Health Assessment technology. You'll see query performance signals and optimization recommendations directly in the dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Part That Makes It Actually Accurate: Topics
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyyo2a0y7u0nrej1ivex.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyyo2a0y7u0nrej1ivex.gif" alt="Supabase Data Dictionary" width="720" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most AI analytics tools struggle with accuracy because they don't understand your specific data model. They hallucinate table names, misinterpret column relationships, and produce queries that look right but return wrong results.&lt;/p&gt;

&lt;p&gt;We solved this with the &lt;strong&gt;Data Dictionary and Topics&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Topics are your AI-native semantic layer. You define them once and the AI uses them every time.&lt;/p&gt;

&lt;p&gt;A Topic maps your business concepts to your actual Supabase tables and columns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Subscriptions" maps to your &lt;code&gt;subscriptions&lt;/code&gt; table with your specific definitions of MRR, churn, and active subscribers&lt;/li&gt;
&lt;li&gt;"User Engagement" maps to your events or sessions table with your DAU and feature adoption metrics&lt;/li&gt;
&lt;li&gt;"Revenue" maps to your transactions table with your custom revenue calculations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you create a dashboard, you select one or more Topics and write a short prompt. The AI has deep context about your schema and generates accurate queries from the start.&lt;/p&gt;

&lt;p&gt;Define once. Reuse across every dashboard and report you ever create.&lt;/p&gt;

&lt;p&gt;We help you create your first Topics during onboarding so you're not starting from a blank slate.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works End to End
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv95u2zjzsiy2jsdql0g1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv95u2zjzsiy2jsdql0g1.png" alt="Dreambase Easy Onboarding" width="800" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Connect your Supabase project&lt;/strong&gt; — read-only access, 30 seconds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Define Topics in the Data Dictionary&lt;/strong&gt; — map your business concepts to your schema&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select Topics and write a prompt&lt;/strong&gt; — "Show me subscription growth by plan with MRR and churn rate over the last 90 days"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard generates in the background&lt;/strong&gt; — close the tab, come back when it's done&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refine with drag-and-drop or AI assistant&lt;/strong&gt; — iterate until it's exactly right&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set a refresh schedule&lt;/strong&gt; — hourly, daily, weekly. Your call. Cache saves to Supabase Storage.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Dashboard Components
&lt;/h2&gt;

&lt;p&gt;Dashboards support a flexible set of components, all of which can pull from one or multiple data sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Metric cards with trend indicators&lt;/li&gt;
&lt;li&gt;Line, bar, area, and pie charts&lt;/li&gt;
&lt;li&gt;Flexible lists with sorting&lt;/li&gt;
&lt;li&gt;Full data tables with pagination, search, and export&lt;/li&gt;
&lt;li&gt;Internal links to other dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Caching System (Worth Understanding)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsons32uatcot0wz3ygl7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsons32uatcot0wz3ygl7.png" alt="Supabase Data Profiler" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is where Dreambase makes a different architectural choice than most analytics tools.&lt;/p&gt;

&lt;p&gt;When your dashboard refreshes, query results are saved as datasets directly in your Supabase Storage. Subsequent loads read from the dataset cache, not from your production database.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sub-second dashboard load times regardless of query complexity&lt;/li&gt;
&lt;li&gt;No read load on your production Postgres instance from analytics traffic&lt;/li&gt;
&lt;li&gt;Full audit trail of dataset snapshots&lt;/li&gt;
&lt;li&gt;You control refresh frequency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Manual refresh is always available if you need current data right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Else Shipped in This Release
&lt;/h2&gt;

&lt;p&gt;We rebuilt the entire product around dashboards. Beyond the dashboards themselves:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Dictionary and Topics&lt;/strong&gt; replace the old Projects system. Better DX, cleaner mental model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New navigation rail&lt;/strong&gt; and completely redesigned UI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New AI-powered homepage&lt;/strong&gt; with instant Quick Insights. Ask a metric question the moment you log in, get charts without creating a full dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Refreshed Supabase Health Assessments&lt;/strong&gt; with a benchmarking view. Track your database health score over time as you implement recommendations. Security, performance, indexing, and architecture all scored and tracked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pinnable dashboards&lt;/strong&gt; with grid and list views, search, and filters for managing your dashboard library.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Free trial&lt;/strong&gt; — no credit card required. Connect your Supabase project and build your first dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer&lt;/strong&gt; — a personal developer account to immediately get value, test, and do a PoC for your team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro&lt;/strong&gt; — Designed for Teams. Collaborative dashboards, scheduled refresh, advanced AI models, more projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Team/Enterprise&lt;/strong&gt; — custom pricing for larger teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Coming Next
&lt;/h2&gt;

&lt;p&gt;Reports are about to evolve. Right now they're AI-generated summaries with supporting charts. We're transforming them into executive summaries of actionable insights that get delivered to Slack and your inbox on a schedule.&lt;/p&gt;

&lt;p&gt;The analytics come to you. No dashboard login required.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;&lt;a href="https://app.dreambase.ai/auth/register" rel="noopener noreferrer"&gt;Try Dreambase →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Questions? Drop them below or find us at &lt;a href="https://x.com/DreambaseAI" rel="noopener noreferrer"&gt;@DreambaseAI&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by &lt;a href="https://x.com/kyleledbetter" rel="noopener noreferrer"&gt;@kyleledbetter&lt;/a&gt; and the Dreambase team. We're a small team of operators and designers building AI-native analytics for the Supabase ecosystem.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>supabase</category>
      <category>analytics</category>
      <category>database</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Allow your team to share product analytics reports from Supabase without giving them database access</title>
      <dc:creator>Kyle Ledbetter</dc:creator>
      <pubDate>Fri, 21 Nov 2025 00:09:47 +0000</pubDate>
      <link>https://dev.to/kyleledbetter/allow-your-team-to-share-product-analytics-reports-from-supabase-without-giving-them-database-access-5ab</link>
      <guid>https://dev.to/kyleledbetter/allow-your-team-to-share-product-analytics-reports-from-supabase-without-giving-them-database-access-5ab</guid>
      <description>&lt;h1&gt;
  
  
  Public Report Sharing for Supabase: Stop Being Your Team's Analytics Middleman
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;TL;DR: We just shipped one-click public sharing for Supabase analytics reports. Your stakeholders can now self-serve their metrics instead of asking you to run queries.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstfqpyatymasbgm4qgab.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstfqpyatymasbgm4qgab.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Every Developer Knows
&lt;/h2&gt;

&lt;p&gt;It's 3 PM on a Thursday. You're deep in a complex feature implementation. Then Slack lights up:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PM:&lt;/strong&gt; "Hey, can you pull the user retention numbers for last month?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Founder:&lt;/strong&gt; "What's our MRR growth looking like?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Investor:&lt;/strong&gt; "Can you send me the latest engagement metrics?"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiafnanqxhjq3u5sw0erl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiafnanqxhjq3u5sw0erl.png" alt=" " width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You have two choices:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Context-switch, write SQL queries, format the results, send them over (there goes your afternoon)&lt;/li&gt;
&lt;li&gt;Give them database access (security nightmare)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Both options are terrible. And you'll be doing it again next week.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Built
&lt;/h2&gt;

&lt;p&gt;Dreambase connects directly to your Supabase database and generates analytics reports using AI. We just added public report sharing—one click to make any report publicly accessible.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqlls8a037fkj7yayfrj9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqlls8a037fkj7yayfrj9.png" alt=" " width="800" height="778"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Your PM/founder generates a report in Dreambase (no SQL required)&lt;/li&gt;
&lt;li&gt;They click the share button in the report toolbar&lt;/li&gt;
&lt;li&gt;Toggle "Report Visibility" from Private to Public&lt;/li&gt;
&lt;li&gt;Copy the URL and share it&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You're not involved. They get their metrics. You keep coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Actually Works
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv001qdu0v4iyhhpjxgqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv001qdu0v4iyhhpjxgqd.png" alt=" " width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Internal Teams&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By default, reports are private. Workspace Owners, Admins, and Project Managers already have access based on their roles. They just copy the internal link and share it in Slack.&lt;/p&gt;

&lt;p&gt;No configuration. No tickets. No interrupting developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For External Stakeholders&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When they need to share outside the workspace (investors, advisors, customers), they:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click share button&lt;/li&gt;
&lt;li&gt;Toggle to Public&lt;/li&gt;
&lt;li&gt;Copy the new public URL&lt;/li&gt;
&lt;li&gt;Save changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The report is now accessible to anyone with the link. No login required. A globe icon appears next to public reports so everyone knows what's shared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interactive Data, Not Static Images&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the key part: reports query your Supabase database directly. When the data updates, the report updates. Share the link once, stakeholders interact with the data.&lt;/p&gt;

&lt;p&gt;No more "can you regenerate that report with updated numbers?" They can generate a new report in seconds themselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters for Supabase
&lt;/h2&gt;

&lt;p&gt;When your analytics connect directly to your Supabase database (your actual source of truth) there's no reason to treat insights like they're locked in a vault.&lt;/p&gt;

&lt;p&gt;Traditional analytics tools were built around the assumption that data lives in a separate system, accessed by a separate team, exported to separate files. That made sense when analytics required complex ETL pipelines and dedicated data warehouses.&lt;/p&gt;

&lt;p&gt;But Dreambase connects directly to Supabase. Your product data is already there. Your analytics should flow as easily as your data flows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you can share a Google Doc or a Figma file with a link, you should be able to share a product analytics report the same way.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's what we built.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters for Dev Teams
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You stop being the analytics middleman.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your stakeholders can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate their own reports (AI writes the SQL)&lt;/li&gt;
&lt;li&gt;Share reports with each other&lt;/li&gt;
&lt;li&gt;Bookmark public links for recurring metrics&lt;/li&gt;
&lt;li&gt;See live data without asking for updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;You maintain security.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Public reports are read-only views. No database credentials exposed. No write access. Toggle back to private anytime.&lt;/p&gt;

&lt;p&gt;Internal reports respect workspace permissions. You control who has access at the workspace and project level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your Supabase data stays in Supabase.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No JavaScript tracking libraries to install. No data piping to external platforms. No event schemas to maintain. Dreambase connects directly via PostgREST.&lt;/p&gt;

&lt;p&gt;Your source of truth remains your source of truth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Use Cases
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc51uzonq06r7cglecelk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc51uzonq06r7cglecelk.png" alt=" " width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Investor Updates&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your founder generates a monthly metrics report and shares the public link. Investors bookmark it. They check progress whenever they want. Nobody asks you to pull numbers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Team Dashboards&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your PM creates reports for feature adoption, user engagement, conversion funnels. They share them with the team. Everyone sees the same data. No more "what's the latest on X?" in Slack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer Transparency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building in public? Share usage stats or uptime metrics. Your customers see the same data you see. No custom status page to build and maintain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-Functional Collaboration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Share reports with contractors, advisors, or part-time team members who don't need full workspace access. They get insights without database credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reports are cached at the edge&lt;/li&gt;
&lt;li&gt;Sub-second load times globally&lt;/li&gt;
&lt;li&gt;Optimized for mobile viewing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Open Graph Previews&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamically generated preview images for each report&lt;/li&gt;
&lt;li&gt;Shows key metrics when shared in Slack/Discord/Twitter&lt;/li&gt;
&lt;li&gt;No more "click this random URL and trust me"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Security Model&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public reports are read-only&lt;/li&gt;
&lt;li&gt;No database credentials in URLs&lt;/li&gt;
&lt;li&gt;Toggle visibility anytime&lt;/li&gt;
&lt;li&gt;Workspace-level permission controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Integration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Direct PostgREST connection to Supabase&lt;/li&gt;
&lt;li&gt;Respects your RLS policies&lt;/li&gt;
&lt;li&gt;Works with your existing Supabase setup&lt;/li&gt;
&lt;li&gt;No schema changes required&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  See It Live
&lt;/h2&gt;

&lt;p&gt;Here's a public report we're using ourselves:&lt;br&gt;
&lt;a href="https://app.dreambase.ai/shared/reports/162d7031-625d-4c0b-8e72-8c23ff71456c" rel="noopener noreferrer"&gt;Pickleball Court Analytics&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Loads instantly&lt;/li&gt;
&lt;li&gt;Shows live data&lt;/li&gt;
&lt;li&gt;Clean public page&lt;/li&gt;
&lt;li&gt;Preview when you share the link&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Public report sharing is available now for all Dreambase users, including the free tier.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sign up at &lt;a href="https://app.dreambase.ai/auth/register" rel="noopener noreferrer"&gt;dreambase.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Connect your Supabase project (30 seconds, read-only access)&lt;/li&gt;
&lt;li&gt;Generate a report (AI writes the queries)&lt;/li&gt;
&lt;li&gt;Click share → toggle public → copy link&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your stakeholders can now self-serve their analytics. You can get back to building features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why We Built This
&lt;/h2&gt;

&lt;p&gt;We're developers too. We've been the analytics middleman. We've context-switched out of deep work to run SQL queries for stakeholders who just want to see if a number went up or down.&lt;/p&gt;

&lt;p&gt;It's a waste of developer time. And it's a waste of stakeholder time waiting for you.&lt;/p&gt;

&lt;p&gt;When your analytics connect directly to Supabase—your actual source of truth—there's no reason insights should require developer intervention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If your PM can share a Google Doc, they should be able to share an analytics report.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's what we built.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Questions?&lt;/strong&gt; Drop them below or reach out &lt;a href="https://x.com/DreambaseAI" rel="noopener noreferrer"&gt;@DreambaseAI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://app.dreambase.ai/auth/register" rel="noopener noreferrer"&gt;dreambase.ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>supabase</category>
      <category>ai</category>
      <category>genai</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Create Product Analytics Reports Directly from Supabase in Seconds</title>
      <dc:creator>Kyle Ledbetter</dc:creator>
      <pubDate>Thu, 16 Oct 2025 22:18:21 +0000</pubDate>
      <link>https://dev.to/kyleledbetter/create-product-analytics-reports-directly-from-supabase-in-seconds-5219</link>
      <guid>https://dev.to/kyleledbetter/create-product-analytics-reports-directly-from-supabase-in-seconds-5219</guid>
      <description>&lt;p&gt;When you search for "Supabase analytics" or "Supabase dashboards," you'll find three types of results: Supabase's own documentation about logs and monitoring, Reddit threads asking how to do analytics on Supabase, or ads for products that loosely connect click tracking to your database.&lt;/p&gt;

&lt;p&gt;None of these truly solve the analytics problem. And the issue isn't Supabase, it's how we've been thinking about analytics entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Traditional Analytics Approach Is Fundamentally Broken
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faoyy2wkvib1zcr6wqs3z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faoyy2wkvib1zcr6wqs3z.png" alt="Traditional Analytics" width="800" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For years, we've accepted a painful reality: if you want product analytics, you need to install third-party JavaScript libraries, pipe your data to external platforms like Posthog, Mixpanel or Amplitude, pay escalating costs as you scale, and then... hope the data actually matches what's in your database.&lt;/p&gt;

&lt;p&gt;It's backwards. Your source of truth is your Supabase database. Why are we treating it like a second-class citizen? Your real product data lives in your database, but your analytics live somewhere else entirely.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supabase Analytics &amp;amp; Reports: Good Infrastructure, Missing the Last Mile
&lt;/h3&gt;

&lt;p&gt;Supabase recently launched Analytics Buckets with Apache Iceberg support: a solid move toward separating analytical workloads from transactional ones. They've built a robust "Reports" feature with telemetry for monitoring database performance, logs, auth metrics, and storage stats. For self-hosters, there's even a Prometheus endpoint for Grafana dashboards.&lt;/p&gt;

&lt;p&gt;This is excellent infrastructure for database management if you know SQL.&lt;/p&gt;

&lt;p&gt;But here's what's missing for real product analytics:&lt;br&gt;
You still need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write complex SQL queries to extract insights&lt;/li&gt;
&lt;li&gt;Build your own dashboards from scratch&lt;/li&gt;
&lt;li&gt;Understand data modeling and partitioning strategies&lt;/li&gt;
&lt;li&gt;Wait for engineers to pull reports when stakeholders need answers&lt;/li&gt;
&lt;li&gt;Manually connect the dots between user behavior and product decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if you're a startup founder, product manager, or anyone without a dedicated data team? You're stuck begging engineers for basic metrics or settling for incomplete pictures of your users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enter Dreambase: Database-First Analytics &amp;amp; Dashboards for Supabase
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvlhmf79kgtda19sb41r3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvlhmf79kgtda19sb41r3.png" alt="Dreambase Supabase Report" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's a pic of the Dreambase Report generate in action:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falz9em2gray5qm6bg3i6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falz9em2gray5qm6bg3i6.png" alt="Dreambase Report Generation" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We built Dreambase because we were tired of the same old trade-offs. We asked a simple question: What if your Supabase database could just show you what's happening?&lt;/p&gt;

&lt;p&gt;More on Dreambase here: &lt;a href="https://dreambase.ai/blog/supabase-analytics" rel="noopener noreferrer"&gt;https://dreambase.ai/blog/supabase-analytics&lt;/a&gt;&lt;/p&gt;

</description>
      <category>supabase</category>
      <category>analytics</category>
      <category>ai</category>
      <category>postgres</category>
    </item>
  </channel>
</rss>
