Inspiration
Media bias has always polarized the public. Daily Ingest is an authentic news source directly from the everyday crowd. The data gathered on the Ingest are results of real reactions to real events.
The platform allows you to observe how trends grow and change overtime, how long they last and how fast they die. This real time tracking aspect is the heart and inspiration behind Daily Ingest.
What it does
Daily Indigest is a real time social media fueled new source. It gathers recently posted tweets under trending topics in real time and plots the origin of the source onto a world map.
How we built it
The app was built using react + tailwind for the front-end and a rust-based spacetimeDB back end.
The backend handles the information stream that the application receives. It also contains a locally deployed FLAN model that uses text and metadata to inference on the location of the post. Through a geocoding API and cache system, these text locations get translated into longtitudinal and latitudinal coordinates. The processed info stream, current trends, tweets, and more, are then exposed on the internal API for the front-end to display.
The front-end serves a single page with several useful widgets to help the user understand the information displayed through our map. The map serves as the main element of the page, presenting each tweet's geolocation as a coordinate pair on the real-world x and y-axis using the deck.gl library.
Some additional features include an integration of Google's Gemini for contextualizing tweets/trends to the user. Furthermore, the search bar located at the top of the page allows the user's to travel to a specific location quickly so they can view that area's opinions on trending topics. Random unseeded noise is added to all location data to preserve security. Small models like FLAN are preferred whenever possible to reduce compute time/cost as an environmentally friendly option.
Challenges we ran into
The Rust setup for bundling SpacetimeDB was very difficult to set up. This took around twelve hours of referencing SDK/CLI documentations and switching between languages/frameworks, as well as multiple realizations regarding data sanitization and data type mismatch when calling reducers, especially as Spacetime's version of Rust is slightly different from base Rust.
Additionally, setting up the map and rendering data points onto it was difficult as there are many considerations that had to take place. Initially, the map was a globe which then turned into a basic 2D map of the world. The dataset had to be handled on the backend in order for deck.gl to read it in correctly.
Accomplishments that we're proud of
We are proud of the map working as the visuals are very intriguing to us. The logic behind location inference was tough to figure out but we managed to deliver it in the end product.
What we learned
We learned how to work fast and not dwell on things that don't work for too long. We also got better at tracing bugs.
What's next for Daily Indigest
Making our own query pipeline and increasing the streamed information to be mapped. More compute and cloud migration for faster data gathering. Support from multiple social media platforms.
Built With
- api
- deck.gl
- express.js
- flask
- llm
- node.js
- python
- react
- restful
- rust
- spacetimedb
- tailwind
- typescript
- vite

Log in or sign up for Devpost to join the conversation.