Once again, if I have to sign in to look at anything about your service, I will not look at it. Might be cool but I don't care. MyAnimeList doesn't require a login to look around.
Yes, I'm not a user to care about, but it's just annoying.
This is something we do intend to address since we hear it a lot. In the meantime if you click on the screenshots in the README it will take you to the corresponding pages.
We started working on Hummingbird slightly over a year ago and have grown quite a bit since then. We have a total of 50,000 registered users and ~30% MAU.
We decided to open-source it because we don’t always have the time we would like to work on it after putting in hours at work/school, and we had a lot of our users interested in helping out. We also found that working out in the open is a lot more fun!
We have a fairly modern stack, the backend uses Rails, Postgres and Redis. Front-end is a client-side application written using Ember. (Mostly — there are legacy pages still rendered using Rails and some performance-sensitive parts that use React.)
The current incumbent in this niche is a website called MyAnimeList (myanimelist.net) which has upwards of 2 million registered users. Considering it looks like it hasn’t been updated since 2005 we strongly feel this niche deserves better.
Not updating a website people use regularly is not a bad thing - people are used to the UI, and changing shit only ruins the experience when people need to re-learn how to use the damn thing.
Also, it's not like MAL is "not updated", since it constantly has new content added - much of it user contributed, but those contributions get locked up behind a server, and we don't have access to it except through the website itself.
I don't suppose you would be offering the ability to query data, which will inevitably be user-contributed?
Hummingbird already offers an API through Mashape, which is infinitely more thorough than any competitor's.
Additionally, MAL has lots of minor bugs, and how can you trust a site that hasn't been maintained in 5 years to store your password correctly? 2009 was a scary place.
This is pure speculation, but I wouldn't be surprised if MAL is storing passwords as MD5+salt. They do just email it to you in plaintext when you register.
And recovery is a 6 digit pin, which is totally plenty of entropy.
I can confirm that at least as of 2012 or so they were storing passwords as a salted md5 hash. I did point out to a staff member that this was not a good idea and was brushed off, so I assume this hasn't changed since then.
You register and login over HTTP. I would bet they just store it in plaintext. But does it really matter with the first piece of information, how they store your password?
You say you have 50,000 registered users. Can I ask how many visitors you receive a day? What type of server structure you have? I'm currently building a webapp and would like to know what hardware you have running it.
We get between 300 and 500 rpm depending on the time of the day, all of which is served from a 8GB DO droplet running 4 Unicorn processes. Our forum (we use Discourse) also gets similar traffic, it is hosted on a 4GB droplet.
We see around 200K uniques per month. This month will be a bit higher due to HN traffic. We're running this on a Digital Ocean droplet and AWS for our media. It's a surprisingly simple set-up, really.
Ember has been amazing. It makes managing a growing application a lot easier. There was a steep learning curve for me personally, especially because at the time I was starting out the documentation wasn't very good. (It is amazing now, though!)
I also like React a lot but it only deals with the view layer, it doesn't give you any structure for the bigger picture of things. I guess this is something that Flux addresses but I haven't looked into it.
I did briefly look into integrating React to be used as Ember's view layer but decided to drop it since HTMLbars looked like it was around the corner (hah). It is still pretty easy to use React with Ember now, though it feels hacky because you end up having to call forceUpdate a lot. I wrote a post about how it works here: http://discuss.emberjs.com/t/can-reactjs-be-used-as-a-view-w...
Successful. We started Hummingbird because we were very dissatisfied with the state of things in this industry. If MAL improved as a direct result of our hard work, then we're positively effecting an experience for hundreds of thousands of users.
In the meantime we're going to keep innovating and working towards the platform we want to have. Now that we're open source, if we stumble or come up short, somebody else can carry on the torch.
Why target anime in particular instead of (for example) all TV and movies? Is it more about having a beachhead, or is it that there are important characteristics that make anime unique compared to other media?
As a category, anime has some unique characteristics you don't (generally) find in other TV or film categories:
1) Strong user/viewer affinity for the category. Generally speaking, you don't find that your typical Grey's Anatomy viewer is a "medical drama fan," who seeks out other medical dramas at every opportunity. Likewise, a rabid Family Guy viewer is probably not an "animated comedy fan," barring a very tiny and borderline-insignificant segment who is. They might be fair-weather fans, but their consumption of those categories is ad-hoc and show-dependent. Anime fans may come to the category seeking a particular show -- Cowboy Bebop, Attack on Titan, or what have you -- but many of them stick around for anime as a category. Someone who likes Law & Order isn't going to seek out other legal procedurals, but someone who likes a mecha show is going to look for more mecha shows.
2) Anime is underrepresented on TV/movie services like Netflix, or in other "mainstream" TV/movie sites and aggregators. (That said, there are anime-specialist players in these markets, such as Crunchyroll and Anime Network.)
3) High fan engagement online, more so than with many other categories of film or TV. Thus, a more addressable user base.
Of course, these factors can also work against you. As another commenter has pointed out, the characteristics that make anime unlike other genres also makes bridging the gap between anime and other genres very challenging. Anime companies are usually in the business of addressing the TAM in the anime category; they seldom find success using anime as a beachhead to attack TV or movies in general. Not saying it can't happen, or that it's never happened. But it's difficult.
Anime isn't very cross-compatible in terms of both the things its fans care about and community overlap with fans of regular movies/TV. Though I don't really have a good means to support my assertion other than that most Anime torrent or information sites are separate from normal TV/Movie sites, and the reverse holds true as well - IE normal TV/Movie sites rarely have good information on anime. So there's definitely a schism.
I think the fact that normal TV/Movie sites lack information on Anime led to the schism more than anything. The same things the Anime community has developed could be equally applicable to normal TV, especially in the age of DVRs and streaming: Anime fans were watching things asynchronously long before anyone else
Great site! Been looking for something like this for a while.
It would be great to be able to search by view all by Studio or Director / Writer. In fact you tag things like Studio (eg. Ghibli) but clicking the tags doesn't do anything :)
I'm trying to go on a bit of a Maasaki Yuasa tilt following his Adventure Time episode, so it would be nice to see all of the stuff he has done in one list.
Also it might be nice to see an overview of ratings when you mouse over recommendations.
Great site though and I will continue poking around on it!
What does this have over AniDB? I'm seeing MyAnimeList mentioned in the comments, but not AniDB?
Do you guys have an API checking file hashes/fingerprints against episodes to add to your list etc? That's one of the biggest draws for AniDB (for me).
I've not used AniDB much, but I once half-finished an API wrapper for Node.js so I guess I'm about as qualified as we're gonna get.
In my experience, AniDB is effectively unmaintained code. They have developers, the developers just don't know the codebase well and they don't mess with old stuff. I've heard this is because it's a behemoth Perl script, but I don't know for sure.
But to cover your main point of "an API checking file hashes/fingerprints against episodes to add to your list", I just wanna say that this is kind of a silly system: you can easily extract that data from a filename.
For example, the desktop app Taiga has an open-source parser which extracts lots of data effectively (https://github.com/erengy/anitomy) and I myself wrote a simple regex-based one for my own client. Both are capable of extracting at least the episode number, subber, and series title.
So why would Hummingbird want to store hundreds of thousands of MD5 checksums when there's better options?
Just want to quickly add the Taiga will support Hummingbird fairly soon. Within the next week or so.
We also have incredible desktop apps like HAPU that detect what you're watching (including from sources like Hulu and Crunchyroll) and updates your library. No fingerprinting or hashes necessary.
Mainly because the checksum is a very good source of truth. Not every file you get is named correctly, or the same as originally intended.
Regardless of the checking method, will there be an API to add episodes to a personal list, regardless of check sum or filname checking?
Next feature: notification of new episodes, particular by collecting group?
These are pretty much the 2 killer features I personally use AniDB for. The back end code for me is less important, because everything I need it to do, is being done. :)
I've been writing an entirely automated anime sorting and processing system that runs off of a "on torrent completed handler" and sorts it into a folder. It uses the hash lookup feature to get information about the file. That's about half of my AniDB usage.
The other half is discovering who has subbed what group. By maintaining a list of all the files a particular subber has released it's easy to lookup and easily determine who to get a release from without having to look everywhere.
Unfortunately, as awful as the API and interface is. It's the only one of its kind.
The site looks good, I'm an AniDB.net user at the moment, but I could dig a UI that's a little more pleasing.
I'm a bit confused about your anime titles though, why is Fullmetal Alchemist in english, while Kara no Kyoukai is in romanised Japanese? Do you have a system that allows you to give preference to the title languages like AniDB does?
I also like how AniDB makes fansubs discoverable by showing who has subbed what and has ratings for the translations. Are you planning on integrating information about the fansub community? In my opinion it's a core feature of AniDB.
We have three title settings: English, Romaji and canonical. Canonical shows whichever title is more popularly used. Default setting is canonical.
We do not have plans to integrate information about fansub groups because of the types of relationships we're looking to have with larger presences in the industry. We will be adding links to legal websites like CR, Amazon, Funimation, etc though. Sorry!
Yes, I'm not a user to care about, but it's just annoying.