Fountain put its social graph, search and payments in one database so a two-person team can focus on listeners
Fountain is a podcast app where listeners earn and send Bitcoin over the Lightning network as they listen. Its social graph, search and payments used to live in three systems and now live in SurrealDB.
Challenge
Fountain is built by a team of two. The app has a social layer of follows, comments and activity, a search layer over shows and episodes, and a payments layer that moves Lightning payments between listeners and podcasters.
Those three layers ran on three systems: Neo4j for the social graph, Meilisearch for search and Firebase for the rest. Each added its own maintenance, and time spent keeping three databases healthy was time not spent on the listening experience.
The data was scattered as well. Social activity, search and payments lived apart, so a feed that drew on all three or an analytics question about payments needed work across systems and more than one query language.
Solution
Fountain consolidated the social graph, search and payments into SurrealDB. Follows and comments are graph relationships, shows and episodes are searchable documents, and payments are records in the same engine.
SurrealQL powers the follow feeds and the payment analytics with reusable logic, one language for the questions that used to span three systems. Hundreds of thousands of profiles and a growing volume of activity run on it.
The consolidation is also a foundation. Transcript search across episodes and real-time payment insight are next, and both build on the engine already in place.
Results
A growing community on one engine
More than 100,000 profiles, comments and payments are managed reliably at scale.
A simpler stack
Neo4j and Meilisearch were replaced with a single backend.
More time on the product
Less time on operations means more time on the features listeners use.
Built for what is next
Richer analytics and real-time experiences build on the same database.









