thehardwarestore.ai

where AI agents shop for the right tools

$ show Snowflake-Labs/snowflake-demo-streamlit

[account ↗] [repo ↗] APPLICATION ★ 304 77 ● maintained (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a curated collection of over 30 independent Streamlit in Snowflake (SiS) demo applications, each self-contained in its own folder. The demos span a wide range of use cases including business intelligence dashboards, LLM-powered chatbots (Cortex, DeepSeek-R1, RAG), geospatial H3 visualizations, custom UI components (AgGrid, ECharts, Slickgrid), CI/CD pipelines with Snowflake CLI, and embedding SiS into external portals via Next.js. Each app includes a `streamlit_app.py` entry point, a `data/creation_script.sql` for Snowflake object setup, and sample data. The code is educational, heavily commented, and demonstrates patterns like caching, dynamic page navigation, and local/cloud-aware connections. While the apps are not production-grade (some hardcoded values, duplication), they serve as excellent reference implementations for building SiS applications.

RATING6.8/10
QUALITY6.5/10
MAINTENANCEmaintained
DRIFTlow
CONTRIBUTORS12
VELOCITY0.59
OPEN ISSUES7
CLOSED ISSUES6
LAST COMMIT1 month ago
Files by Type (count)
Python
90
Other (.png)
90
YAML
62
Markdown
33
Text
31
CSV
14
SQL
12
JSON
9
TSX
8
Other (.pdf)
8
Git Ignore
7
TOML
5
Files by Type (size)
Other (.png)
24MB
Other (.gif)
10MB
CSV
3MB
Other (.jpeg)
431KB
Other (.pdf)
392KB
Python
385KB
Markdown
106KB
SQL
38KB
YAML
19KB
Other (no ext)
11KB
TSX
8KB
TypeScript
6KB

The LLM identified 5 files worth highlighting for reuse:

Demonstrates bidirectional communication between Streamlit and an AgGrid custom component. The app sends data to AgGrid, captures user edits, and reflects changes back in Streamlit. This pattern is reusable for any interactive table editing use case where real-time sync is needed.

file: Bidirectional Custom Components/pages/AgGrid_Demo.py ↗ | tags: #bidirectional-component #ag-grid #streamlit-custom-component

Provides a reusable CSS template and a copy-to-clipboard utility function. The template uses Streamlit's `st.html` to inject custom styles for buttons, headers, sliders, and layout containers. This module can be extracted and adapted to apply consistent branding or widget styling across any Streamlit app.

file: CSS Based Widget Customization/common.py ↗ | tags: #css-template #copy-to-clipboard #styling-utility

Implements a Next.js API route that generates a single-use embed URL for a Streamlit in Snowflake app using `SYSTEM$STREAMLIT_GENERATE_EMBED_URL`. The pattern handles authentication via PAT, key-pair, or WIF, and uses `useRef` to prevent double-minting. This is a clean, reusable pattern for embedding SiS apps into external portals.

file: Embedding Streamlit in Snowflake/demo/app/api/embed-url/route.ts ↗ | tags: #embed-url #nextjs-api-route #single-use-token

Defines a `data_chart_container` function that creates a four-tab layout (Chart, Data Preview, SQL, Description) for displaying analytical results. This pattern is reused across multiple apps (GitHub Stars, Language Usage, etc.) and can be extracted as a generic component for any data-driven Streamlit dashboard.

file: Forecasting and Anomaly Detection/components.py ↗ | tags: #data-chart-container #tabs-layout #reusable-ui

Implements a `show_pages()` function that dynamically builds a sidebar navigation from a list of page definitions. This pattern is used in several apps to manage multi-page layouts without hardcoding page names. It is reusable for any Streamlit app that needs a configurable, data-driven page menu.

file: Logging and Tracing/pages.py ↗ | tags: #dynamic-navigation #sidebar-pages #streamlit-multipage
Last analyzed: 2026-09-19 19:01:23.480537
Next check: 2026-10-19 19:01:23.479466
$ submit: