NeoDB is a Review System for Culture
An incredibly robust review system for media.
NeoDB is similar to Bookwyrm, in the sense that it can be used to track reading progress on books, and lets users write reviews. Where it differs is that it allows people to track so much more: Movies, Albums, Games, TV Shows, and Podcasts are all included as possible entries. In theory, NeoDB could be used to review just about anything, which is part of what makes it so interesting.
The project is particularly interesting due to its origin story. It started off as a Chinese community dedicated to reviewing cultural works – books, music, films, games, you name it. Over the course of 15 years, this group produced a lively archive of personal insights, debates, and stories. Over time, this community has had to deal with account bans, deleted reviews, and removal of culutral works on their platforms of choice. Embracing the Fediverse has provided the community with a viable alternative.
Project Philosophy
We’re doing to get into the nuts and bolts of what features and capabilities NeoDB offers, because that’s what we do. Rather than simply describe features, however, I want to briefly touch on the core philosophy behind the platform’s design, and its significance.
The core of NeoDB’s concept is around data ownership, portability, and censorship resistance. Moreover, the platform offers an incredible piece of insight about data: “You don’t have to start over from scratch. You can totally just add your old data to your graph.” This idea is key to understanding what NeoDB actually is: a tool for piecing your online data together under one open, free, federated account.
How do you build a comprehensive review system in a federated, decentralized social space? A traditional approach would have users perform manual data entry for whatever they’re reviewing, prior to actually writing a review. That kind of process can be arduous, and introduce a ton of friction. To work around this NeoDB does something brilliant: just pull that data from places where it already exists, and make it easy to find. So far, NeoDB supports the following sources:
- IMDB
- Letterboxd
- GoodReads
- Bandcamp
- Spotify
- Apple Music
- Steam
- BoardGameGeek
- Podcasts via RSS
And that’s just to start with. Because the real secret sauce here, the thing that makes NeoDB so compelling as a platform, is that you can just hook into existing systems to create search results. If someone writes a review for that result, hey, that review and the thing being reviewed can both be federated. You get a comprehensive catalogue of things most people know about, and an easy way to review or add them to your “To Read / To Watch / To Listen” list.
You could literally write a NeoDB integration for anything – Yelp reviews, Nexus Mods, business reviews from Google, Apps from an App Store, whatever – and then plug it into the Fediverse. This kind of approach could provide building blocks for a whole new generation of alternatives to popular review platforms, while also allowing users to move over all their old data at the same time. Platforms like Mastodon could hypothetically leverage NeoDB as a data source to enrich discovery and search.
System Architecture
NeoDB’s architecture is also noteworthy, because the backend is based on a highly modified version of TakahÄ“, a federated social platform. Not only does this allow users to interact with other parts of the Fediverse, it also enables instances to share reviews with one another through a relay system, aiding discovery by sharing things people are talking about.
Curiously, this platform allows you to integrate your account with your existing Fediverse and Bluesky accounts. The sign-in process is easy and straightforward, and gives the added benefit of automatically finding your mutuals already present on NeoDB. It also syncronizes your profile and avatar to match your other services.
It also appears that NeoDB supports cross-posting to your connected accounts…though, at the time of this writing, I wasn’t able to get it to work. Laurens Hof has an example of what reviews look like when posted to Bluesky, however.
Building My Social Graph
I decided to go all-in with NeoDB, to see what my resulting profile would look like. Surprisingly, there are far fewer integrations for data import than there are for search providers: right now, the platform only lets you import from Douban, Goodreads, Letterboxd, and RSS feeds for podcasts.
I decided to pull in my Goodreads data, Leterboxd movies, and podcast feeds to see what would happen. The import kicked off without any problems, and my profile was soon populated with hundreds of entries. Hopefully, we’ll see an increase in the amount of available services to import from sometime soon…I would be ecstatic to pull in data from my Steam account someday.
Podcast import is particularly interesting, as the process basically takes an OPML file from your dedicated podcast player, and automatically creates a dedicated page if one doesn’t already exist. I managed to import Decoder, Dot Social, and Decentered without any major issues. It’s a really cool trick, and might be a great way for Fediverse-adjacent podcasts to promote themselves.
There’s one minor setback to performing all these data imports: stuff that you pull in will automatically create items in your timeline. If someone’s following you, they might get inundated with lots and lots of updates as your entire library gets pulled in. This wouldn’t be so bad if the created status matched the timestamp of when you watched, read, or listened to something, but it all gets marked as happening on the same day the data got imported. I guess my point is, do all your importing before anyone follows you?
Adding to the Catalogue
Not everything shows up in the search results. I wasn’t able to find Delicious in Dungeon, Babylon 5, or Halt and Catch Fire in my search for various television series to add to my profile, although there were some entries for individual seasons of shows. Some of this was because the entries were in Chinese, while others were broken out by seasons. Regardless, I needed to update the metadata, and in some cases, enter shows manually.
The manual creation process isn’t too hard to do, but I found myself confused by some of the fields at times. It’s not always obvious whether I need to fill out Duration
for a show, or Episode Length
. This is a situation where the platform would greatly benefit from some UX polish and a little bit of helper text.
Writing Reviews
The review system for NeoDB is pretty much everything you’ve come to expect from other platforms. In addition to a star rating system, there’s a progress tracker, a place to write a comprehensive review, privacy scopes, and the ability to cross-post to your social timeline.
Reviews automatically federate out from your NeoDB actor, which can be followed on different Fediverse platforms. Overall, they look pretty decent from the Mastodon side of things. I would love to see some compatibility work happen so that Bookwyrm could also parse NeoDB book reviews, but maybe that will happen in the near future.
In Conclusion
NeoDB is an absolutely fascinating project that flew under the radar. It does some extremely interesting things with data sources to bootstrap discovery and make it easy to review things. The project really leans in to the concept of building your social graph using data you already have from other networks. It’s intriguing to consider what things could be built on top of NeoDB, and how it might end up being a key piece of the Social Web.
We wish the NeoDB the best of luck in continuing to develop their platform, and can’t wait to see what happens in the near future.
@news
Interesting after recently seeing
@mangroveReviews #NeoDB pops up today as another distributed #review architecture
@MapComplete @openstreetmap @pietervdvn – #MapComplete #Mangoreviews
Wow, sounds very interesting.
I need to check it out tonight.
Thanks.
@news I believe that splitted season is relatively common and preferable in several TV series database, especially the one based on China or related to Asian media (e.g. Bangumi, MyDramaList, Annict, Anilist).
Each seasonal might have entirely different producer/studio that lead differing quality = different main score. Some also have different title, not just seasonal number mark.
Also, shout out to @librate, a project with similar functionality.