Announcing the Streamlit Connections Hackathon
Configuring data connections can be one of the most frustrating and time-consuming parts of building robust Streamlit apps. You have to locate and install external packages, determine the best way to securely manage your credentials, and figure out how to retrieve the data you need in the desired format.
Fortunately, with our recent release of st.experimental_connection
, you can easily connect your Streamlit apps to data and APIs in just four lines of code. Check out our blog post, demo app, and docs to learn more about this powerful feature.
Our development team has included several built-in connections to this feature. These include SQLConnection, which connects to a SQL database using a SQLAlchemy Engine, and SnowparkConnection, which connects to Snowpark. Additionally, our team has built connections for Google Sheets and cloud or local files via fsspec.
However, the possibilities for st.experimental_connection
are not limited to these sources. This feature can be used to connect to any data source or API. To create new connections, you can build a connection class that extends the built-in ExperimentalBaseConnection and returns the underlying connection object.
The Streamlit Connections Hackathon challenges you to build a connection for any data source or API and develop a demo app to showcase its functionality. Building a connection for a data source or API that you frequently use with Streamlit will save time and lines of code, making your Streamlit apps even more efficient. Additionally, if you submit a functional connection and demo app, you’ll receive a Streamlit hoodie as a reward.
Judging & Prize
- The contest will begin today (July 21st, 2023) and the submission deadline is August 4th, 2023!
- Every entrant who submits a functional Connection and demo app will receive a Streamlit hoodie!
- A functional Connection is one that:
- Connects to a data source or API (other than SQLAlchemy, Snowpark, Google Sheets, and fsspec-compatible data sources like AWS S3, GCP, …).
- Follow our connection-building best practices and include:
- A
_connect()
method to set up and return the underlying connection object - A way to retrieve the underlying connection object (such as a
cursor()
method) - Convenience methods — at a minimum, a
query()
method wrapped in@st.cache_data
- A
- A functional demo app is one that:
- Showcases the functionality of your Connection (i.e. retrieves data or information from your data source or API of choice)
- Is hosted publicly on Community Cloud
- Doesn’t hit an error when we try it out
- A functional Connection is one that:
- Five winners will be announced on Friday, August 11th. Their Connections will be featured in our docs and highlighted on our social media.
Submission
- To enter, complete this form, and don’t forget to include the following:
- The link to your Connection’s GitHub repository
- The link to your demo app hosted on Community Cloud
- Your Twitter handle so we can tag you if you win
- Your mailing address so we can send you a Streamlit hoodie
- You are allowed to form teams of 3 max (excluding yourself) - enter names of your teammates in the submission form
- For teams, submit the same link for the demo app
Resources for building your connector
- Guide to building your own Connection
- Connection-building demo app
- Connection-building best practices
st.experimental_connection
in our docsst.experimental_connection
explainer videost.experimental_connection
blog post- Example Connection:
- Join the #connections-hackathon channel on our Discord server and share any questions that you have as you build your Connection. The Streamlit team, including the Product Manager behind
st.experimental_connection
(), will be hanging out in the channel to answer questions. - As always, you can also share your questions on our forum
A few ideas to get you started
- Looking for data sources or APIs to connect to? Here are a few ideas to get you started:
- Vector databases such as:
- Pinecone
- Weaviate
- Chroma
- Qdrant
- MongoDB
- Supabase
- Firestore
- CouchDB
- HBase
- Twitter API
- Facebook Graph API
- OpenWeatherMap API
- Vector databases such as:
Good luck and happy Streamlit-ing!