Startup track

provingground

Prompt Driven is venture funded by 500 Global and Blitzscaling Ventures

Inspiration

During conversations with Abhinav Saini (Product Management Lead @Snowflake) and enterprise customers, we kept hearing the same pain point: Tableau and Power BI costs are crushing budgets. Companies with 500+ seats spend $500k+/year on BI tools alone, while their data already lives in Snowflake. They wanted to migrate to Streamlit's usage-based model but faced a daunting manual rewrite—sometimes taking months of engineering time.

We saw an opportunity to turn months of migration work into minutes using prompt-driven development, giving enterprises a fast path to cost savings while helping Snowflake grow its Streamlit adoption.

What It Does

Our tool takes a Tableau dashboard file as input and outputs a production-ready Streamlit Python app—automatically.

The key innovation: we treat prompts as a programming language. Instead of patching code line-by-line (like Cursor or Copilot), we:

  1. Extract the intent and structure from the Tableau XML
  2. Generate semantic "prompt files" that describe the dashboard
  3. Retarget those prompts to Streamlit's architecture
  4. Regenerate clean Python code

After migration, users can maintain their app by editing prompts in plain English instead of wrestling with Python—driving long-term adoption of prompt-driven workflows.

How We Built It

Tech Stack:

  • Tableau XML parsing to extract dashboard structure, data sources, and visualizations
  • Prompt Driven Development (e.g. pdd update) LLM-powered semantic understanding to convert Tableau specs → prompt representations
  • Prompt Driven Development CLI (our open-source tool) to compile prompts → Snowflake Streamlit Python
  • Snowflake connectors to preserve existing data pipelines
  • Used Snowflake Cortex/Snowflake Compute

Architecture:

  1. Extraction layer: Parse Tableau .twb/.twbx files, map data sources and visual encodings
  2. Semantic translation: Use AI to understand dashboard intent (not just structure)
  3. Code generation: Compile prompt files into idiomatic Streamlit with proper data bindings
  4. Validation: Automated checks for visual parity and data integrity

Challenges We Faced

1. Tableau's Opaque Format
Tableau dashboards are encoded in complex, nested XML. Extracting not just the structure but the semantic intent (e.g., "this is a filtered time-series chart grouped by region") required significant reverse-engineering.

2. Data Source Mapping
Tableau connections (to Snowflake, flat files, etc.) don't map 1:1 to Streamlit's data loading patterns. We had to intelligently detect connection types and generate appropriate Python data fetch code.

3. Visual Parity
Matching Tableau's polish—legends, tooltips, filtering interactions—in Streamlit required deep customization.

4. Prompt Abstraction Design
Balancing human-readable prompts with enough specificity to generate correct code was tricky. Too vague = bad output; too detailed = defeats the purpose of abstraction.

What We Learned

  • AI shines at semantic translation, not just code completion—understanding what a dashboard does matters more than how it's currently implemented
  • Production-grade migrations require domain expertise in both source and target platforms—can't just rely on LLMs alone
  • The real value isn't the one-time migration—it's lowering the barrier to maintain and evolve apps post-migration through prompt-driven workflows
  • Enterprise ROI unlocks partnerships: Proving $350k/yr savings with real customers changes the conversation from "interesting demo" to "let's partner"

What's Next

  • Prove production-grade capability with 2 real enterprise migrations
  • Expand support for Power BI → Streamlit
  • Build self-serve web converter for Snowflake's site
  • Establish partnership pipeline: customer savings → recurring SaaS revenue from prompt-driven maintenance

Built With

  • cortex
  • promptdrivendevelopment
  • snowflake
  • streamlit
Share this project:

Updates