The State of Snowflake Native Applications

The State of Snowflake Native Applications

Written by

Dan Luszcz, Senior Manager

Published

September 18, 2023

Data & App Engineering
Snowflake

Snowflake Native Apps were released to the public this summer and, according to Snowflake, they are leading the way in how applications are built and deployed:  

"

“The Native Application Framework offers significant benefits across the entire lifecycle of applications for developers, from building to distribution to deployment.”

At OneSix, we get handson with emerging technologies so we can separate hype from reality for our clients. To this end, we consider the Snowflake Data Cloud to be the bedrock upon which a successful modern data organization is built, so we’ve developed applications using Snowflake Native Apps as part of our industryleading Snowflake OS framework

How Snowflake Native Apps Work

Snowflake Native Apps are built using Streamlit, a framework Snowflake acquired in 2022 with the intent of using it for services like Snowflake Native Apps. Native Apps are built through a combination of SQL and Python code. SQL is used to configure the app infrastructure, grant it permissions, and query Snowflake data sources. The Python code works like traditional Streamlit apps, with some additional built-in functions and limitations (we’ll discuss these later).

After some initial SQL configuration in Snowflake, apps are deployed simply by uploading SQL and Python files to a Snowflake stage, where the app is immediately updated with the latest code. Production deployment is done by publishing to the Snowflake marketplace and being subscribed to by consumers, much like data sharing works.

Snowflake Native Application Deployment Model:

Streamlit: Balancing Convenience with Customization

Snowflake Native Apps purport to support developing full applications, but even before getting to the limitations when deployed as part of Snowflake Native Apps, you must deal with the limitations of Streamlit. In the same theme as Snowflake Native Apps, Streamlit is all about reducing the amount of code needed to develop applications and simplify the deployment process to make app development more accessible. Like many such frameworks, this convenience comes at a price. 

With only a few lines of code, you can have a “complete” user interface with attractive formatting, interactive charts, and more. The problems begin when you want to start customizing what comes out of the box: changing layouts, colors, sizes, and behaviors are all limited at best. Functionality like being able to react to a cell click in a table, fundamental in any modern web application, can only be accomplished by leveraging third party components. Speaking of third-party components… 

Streamlit in Snowflake Native Apps

Snowflake Native Apps currently do not support the full (or most current) version of Streamlit. The list of unsupported features can be found hereThe outdated Streamlit version means you cannot take advantage of critical features in the most current edition such as dataframe column customization. The lack of support for third-party components is particularly problematic as Streamlit essentially depends on libraries like streamlit-aggrid to provide basic functionality.  

What this means is until this feature set is expanded, either through an expansion in the capabilities of Streamlit or adding support for third-party components, the type of application you can build your Snowflake Native Apps is largely constrained to simple, single page, viewonly dashboards with very limited customization options.

This limited application looks even worse when compared to Snowflake competitors like Databricks which let you quickly build visualizations right through the user interfaceWhen balanced against what you can actually build with Snowflake Native Apps, the convenience of being able to quickly deploy apps right in your Snowflake environment starts to look less convenient. 

The Future of Snowflake (Native) Apps

The good news is that Snowflake is just getting started with data native applications.  They are clearly invested in Streamlit and their Native Apps framework for the long term and we fully expect the capabilities to expand significantly over the next few years. In fact, Snowflake will soon support deploying traditional Streamlit apps on the Snowflake infrastructure when they release Streamlit in Snowflake 

As an experienced Snowflake Partner, OneSix is here to help your organization build the strategy, technology and teams you need to unlock the power of your data. Look for future posts from us on how you can best leverage Snowflake and Streamlit technologies on your journey toward becoming a modern data organization.