A software company paying approximately $150,000 annually for Looker licenses discovered an unexpected alternative when one data platform engineer built a side project in a single afternoon to host HTML files. Eight months later, according to a post by David Lequin, the homegrown solution had acquired as many weekly users as Looker and Looker usage had declined by a third.

The impetus for the project emerged as AI tools, particularly Claude with Opus 4.5, began generating high-quality HTML dashboards with interactive charts. Employees across finance, operations, and marketing—many without terminal experience—started using AI to generate analyses, receiving single-file dashboards that sometimes exceeded Looker’s visual quality. “The problem was that it would live in someone’s Downloads folder,” Lequin wrote. “To share it, they would attach it in Slack and hope.”
Maddy from the data team proposed a simple solution: a web server with an internal domain. By end of day, she had deployed a service storing files in S3 with SSO authentication. The company already ran everything on Kubernetes, making deployment straightforward through Terraform and Helm. A Python script packaged as a Claude plugin let users generate HTML, automatically push it behind SSO, and share links company-wide.
In March, the team added a live query API using viewers’ Snowflake OAuth tokens. This proved transformative because Snowflake’s existing role-based permissions automatically enforced data access controls—the team didn’t need to build permissions from scratch. By April, Snowflake OAuth became the only login method.
Users embraced the tool partly because “the dashboards actually looked good,” Lequin noted, contrasting against Looker’s rigid tile-based interface. Free-form HTML and AI-generated designs offered personality and flexibility that traditional BI tools restricted. Weekly viewers grew from 23 in March to 136 by June. The executive team began sharing links, and users created use cases the platform engineers hadn’t anticipated, including scheduled regeneration and custom interactions.
Initially, security was poor—dashboard JavaScript ran on the same origin as user sessions with no permission controls. The team knew and shipped anyway, reasoning it was internal, behind VPN, and irreplaceable for their needs.
As adoption deepened, the team formalized the project into a proper BI tool. Key improvements included a remote MCP connector replacing scattered upload scripts, sandboxing each dashboard in an iframe with strict Content Security Policy, and a metadata service that analyzes dashboards for security risks. A draft-to-publish workflow added human review. Content tokens expire hourly and work for single dashboard-viewer pairs. Queries run with viewers’ own Snowflake tokens, so sharing dashboards never grants data access.
The company maintained its core philosophy: anyone can still upload raw HTML in one prompt without templates or review gates. “Every constraint you put between people and their dashboard sends them back to the Downloads folder,” Lequin wrote. Governance happens upstream in dbt models and Snowflake roles, leaving dashboards free, fast, and customizable.
Key facts
- One data engineer built the initial HTML hosting service in an afternoon in February
- By month 8, weekly users matched Looker usage, which declined by a third
- The company pays roughly $150,000 annually for Looker across 300 seats
- Users generate dashboards using Claude AI, pushing HTML through a Python script and Claude plugin
- Snowflake OAuth provides automatic role-based access control—the team didn’t build custom permissions
- Free-form HTML designs attracted users by offering better aesthetics than Looker’s rigid tile interface
- Weekly viewers grew from 23 in March to 136 by June
- Sandboxed iframes with Content Security Policy isolate potentially hostile JavaScript
- Content tokens expire after one hour and work only for specific dashboard-viewer-host combinations
