At Snowflake Summit 2022, we introduced a new way of building apps with the Snowflake Native App Framework. Today, we are excited to bring the power of the Snowflake Native App Framework to developers around the world with the public preview on AWS.
Developers can now start building and testing Snowflake Native Apps in their accounts on AWS. Distribution and monetization capabilities will be available in public preview on AWS later this year. The Snowflake Native App Framework remains available in private preview on Google Cloud Platform and Azure.
Snowflake Native App builders include organizations such as Bond Brand Loyalty, Capital One Software, The Depository Trust & Clearing Corporation (DTCC), Goldman Sachs, Bloomberg, LiveRamp, Informatica, Matillion, Samooha, NTT Data, My Data Outlet, Mapbox, Cybersyn, Sundeck, Affinity Solutions, Maxa.ai, and Elementum.
More than 25 new Snowflake Native Apps are already available on Snowflake Marketplace, in addition to our own Snowflake Native Connectors for ServiceNow (public preview), Google Analytics (private preview), MySQL (private preview), and Postgres (private preview).
These apps exemplify the flexibility of the Snowflake Native App Framework in their breadth and variety: cost management, identity resolution, data clean rooms, enrichment, data privacy and tokenization, geospatial analytics, natural language processing, and more.
Bringing your app to your customer’s data
Today, enterprises use hundreds of apps to help them accomplish their business critical tasks. However, these apps often end up creating new data silos resulting in fragmented data, no source of truth, and little control over the data. Even worse, many teams can’t access the apps they need because the apps require moving data or sharing it outside of their secured data platform.
Snowflake Native Apps are an entirely new way to put data to work. Consumers can discover and purchase Snowflake Native Apps on Snowflake Marketplace then install and run them within their own Snowflake account. By bringing the apps close to the data, we are opening up a whole new world of possibilities to enrich, activate, enhance, visualize, and transform data— without data ever leaving the consumer’s account.
Because Snowflake Native Apps run in the end customer’s account and there is no need to move or provide access to data, security and procurement hurdles are reduced, which also accelerates sales for providers and time-to-value for customers. Providers’ intellectual property is protected from customers. Customers can only access the interface visible to them without ever accessing proprietary datasets or logic from providers.
A closer look at the Snowflake Native App Framework
Let’s dive into what it looks like to build, distribute, monetize, and manage Snowflake Native Apps.
Build your app
Developing a Snowflake Native App starts in your environment. For example, you can use the Snowflake VSCode extension and Snowpark to write your app in Python.
You can leverage first-class Snowflake functionalities like Snowpark and Streamlit in Snowflake (in public preview soon), and integrate data sets within your app to form the logic and interface for your app. And with support for Snowpark Container Services (currently in private preview) you can use the technologies and platforms of your choice to build even more sophisticated products like LLMs as Snowflake Native Apps.
You can implement pop-up notifications to ask your customers for account-level permissions, access to objects, and approval for privileged actions. The customer has complete control over what the app can access within their account.
Once you’ve written your app, you can easily package the code files with a Snowflake Native App Package, which is a self-contained unit of code and data that you can share with your consumers while maintaining full control over your intellectual property.
After your code is packaged, you can test and debug your Snowlake Native App by installing the Snowflake Native App Package that instantiates the app. Being able to test your app functionality within the same Snowflake account saves time and eliminates the need for separate testing environments, enabling continuous improvement and tight development loops.
After testing your apps you can commit code changes by creating versions of the Snowflake Native App Package. You can use your existing CI/CD pipelines to automatically commit code changes by creating versions.
Distribute and monetize
Once you’ve built your Snowflake Native App, it’s time to make it available for use—and for purchase.
To help ensure the safety of Snowflake Native Apps, Snowflake automatically reviews every version of publicly shared apps for security threats and abuse. These reviews, coupled with Snowflake Native Apps’ direct installation in the end-consumer’s account without the need to move or copy data, accelerates the sales cycle by reducing customer security and compliance review times.
Publish and monetize on Snowflake Marketplace
The Snowflake Native App Framework provides significant flexibility for distributing your app. Looking to share your Snowflake Native App with your teammate or another department? You can share and deploy it within your organization. Want to reach an external audience? You can choose to create a public listing so that everyone on Snowflake Marketplace can discover, purchase, and install your app. Or use a private listing to target selected customers and accounts.
As the app provider, you can define the pricing model and Snowflake handles billing and invoicing customers on your behalf.
Snowflake offers a range of monetization options from subscription-based models to usage-based models priced per month or per query. Custom Event Billing capabilities enable you to build your own pricing strategy. You can charge customers based on their usage and specify billing events based on your preferences, such as consumed rows, ingested rows, unique ingested users, locations monthly, and more.
There are benefits for customers as well: with on-platform billing customers can pay via credit card, ACH, or even use their Snowflake Capacity commitment. And because these customer-facing apps are Powered by Snowflake, users know they’ll reap the benefits of Snowflake’s well-known scalability, speed, and reliability.
Manage your app
The Snowflake Native App Framework takes advantage of the Snowflake platform’s telemetry capabilities, including logs, events, and alerts, that allow app providers to monitor app performance and resolve errors. Customers can share their logs and events with the app provider to aid in troubleshooting and debugging.
With versioning built into the Snowflake Native App Framework, you can incrementally make major feature updates or bug fixes alike. The framework offers release directives that allow you to target a release to specific customers so that you can stage rollout your apps and even create beta programs. And because new versions are automatically pushed to customers, they will always have the latest changes without additional downtime or disruptions.
Get started: Next steps for building a Snowflake Native App
Snowflake Native Apps are just getting started. Check out this blog post to learn more about how Snowpark Container Services will enable you to bring your own technologies and platforms of choice to your Snowflake Native Apps.
We’re excited to see what applications and use cases the Snowflake Native Application Framework will inspire. To start building, head to www.snowflake.com/native-apps/ and get quickstart guides, code samples, and documentation to build your first app! Check out our Snowflake Native Apps Community to find other builders and tap into their wealth of knowledge. You can also start using Snowflake Native Apps on AWS on Snowflake Marketplace; check out all the available options here.