Ask HN: I want to create IMDB for open source projects

241 points by _bggh ↗ HN
I am interested in developing a web application that bears resemblance to IMDb but for open-source projects. The primary goal of this application will be to serve as a directory for discovering open-source projects.

While GitHub is an exceptional platform, it does not provide all the functionality I need. Therefore, I plan to add a search function that enables users to filter projects.

1. What do you think about this idea? 2. However, I am uncertain about how to plan the product. Can you assist me with this?

150 comments

[ 2.0 ms ] story [ 228 ms ] thread
You might want to see if you can improve this? https://directory.fsf.org/
More than two decades ago, before git existed, there was something called Freshmeat (I think?) that published about new open source releases. Whatever happened to that... the closest thing I can find now is:

https://www.freeopensourcesoftware.org/index.php?title=Fresh...

Freshmeat was a daily (or multiple times a day) visit for me. Or sub to the RSS feed.

Back then it was Lambda the Ultimate and Freshmeat on daily rotation.

Freshmeat was exceptionally good, with a much better UI than Sourceforge which was also strong back in the day. It was however closed source, so as soon as the assets were purchased by entities not interested in keeping it operational, it died as it happens with closed source products. The current owner is the same that owns SourceForge, which presumably don't want to compete with themselves by reviving it. http://freshcode.club/ is considered its successor.
Remarkable to me that ctrl-f, "Sourceforge" had 3 hits on this page. Would have expected a dozen.
Assuming success / adoption, I would be careful with how you approach this.

IMDB is centered on reviews and ratings of a static media asset.

Open source projects are often growing/changing. They might have a really intriguing seed of an idea with an interesting roadmap, but the prototype is poorly executed / buggy. Does that deserve a low ranking / poor review?

Ideally, the rankings should be associated with a time period. Something ranked high... but all those high rankings are from 2 years ago, and there's been none since... that's a different signal that current high rankings and current code changes.
I think how Steam handles game rankings is a good example of this. They separate out "All Reviews" from "Recent Reviews". Helps identify current reception of a game which may have had a buggy release.
There's a case to be made for done-but-not-dead projects that are feature complete and still the go to solution.
Ideally those projects would still get reviews so timeframed reviews still makes sense.
You probably need to adjust the time scale of what "recent" means based on the number of reviews.

If a project has a total of 10 reviews, it's probably best to not just take the average of the 2 newest reviews. On the other hand, if a project gets dozens of reviews a month, taking of the last two months or so would totally make sense.

(comment deleted)
U mean github?
This was my first thought. With projects like the "awesome lists of..." stuff too, I feel those do a pretty good job of distilling the more popular or in demand projects to browse through. Then you've got places popping up around those, like https://selfh.st/apps/ (which I just discovered via HN a week or two ago)
OpenHub (formerly Ohloh) tries, or tried, to do this. Seems like it’s not getting a lot of love lately but perhaps you can learn from it.

https://openhub.net/

One useful feature is the ability to coalesce different identities. For example, I've released libraries on my personal accounts as well as through work. For a while I used to link there from my personal site since it nearly summarized that I’d made N thousand commits to OSS. But I stopped. I’m not really sure what the point is for me.

https://openhub.net/accounts/neilk

If it’s bragging rights, we have Github stars. Effectively (and sadly) open source is a resume building tool nowadays, so maybe that?

What use cases do you see?

> What use cases do you see?

"People who liked this also liked ..."

"Most active developers on this also developed ..."

"More projects using similar tech stack are ..."

The value of IMDB is not getting a score on a movie, or a synopsis, it's in discovering other movies[1] that you might like.

[1] The easiest way to discover is to ask for a list of Christopher Nolan movies :-)

Yup. OpenHub is nice. I love the simplicity of its design. What do you think about LibHunt https://www.libhunt.com? It's similar to OpenHub to some extent; however, it is more focussed on alternatives and comparisons of libraries. For example, a nice trick is to open any github repo and replace "github" with "libhunt" to find alternatives of that project. E.g. https://www.libhunt.com/site/find_alternatives
> Effectively (and sadly) open source is a resume building tool nowadays

Is that sad? Isn’t that a purely positive signal?

This is an app store, not IMDB.

I don't like the idea of some "authority" picking the winners and losers in the open-source space.

What makes IMDB work and this not, is that Movies are static things. You aren't going to one day find the 1957 romantic comedy Desk Set[1], suddenly turn into a slasher film. Where as open source software changes, sometimes drastically.

[1]- You should watch Desk Set, it has Katharine Hepburn and Spencer Tracy. The main plot is about a computer taking over the job of information workers.

How certain are you that projects are actively seeking to attract potential contributors?

Managing open source contributors is non-trivial work. It's actually one of the harder forms of engineering management, because you're dealing with volunteers - you can't even really directly tell contributors what to do, you have to deploy a whole bunch of (difficult) soft skills and influence and leadership to point people in the right direction.

How confident are you that there's sufficient demand from projects to attract more contributors in this way?

Yeah I have zero interest in actively soliciting attention to my projects. I shared them in case that helps anyone. We have web search.
This.

Just because something should exist, doesn't mean it can be created today. The effort to build and attract open source projects is a monumental task. Unless you're offering something BIG - there's alot of inertia to overcome.

I'd focus on building on top of the GitHub API to create those features you want. Not only will you focus your time on the unique stuff, GitHub can help with distribution and discovery.

I'd imagine there's almost always a door open for talented and competent people looking to make meaningful contributions and have substantive impact.
I love it when people contribute to my projects by opening an issue, discussing their idea, then contributing a clean PR with bundled documentation and tests.

Actively soliciting contributions isn't necessarily the way to get that.

Look at what happens with Hacktoberfest: there are hundreds of thousands of newer developers out there who want to earn their stripes by contributing to an open source project. The amount of work this creates for the projects themselves is enormous.

Sure but the pipeline of increasing responsibility needs to be open to new recruits for the long-term viability of a project.

We all used to be dumb teenagers as well.

> then contributing a clean PR with bundled documentation and tests.

I've never seen this. No tests, un-clean PR. Describing them how to fix it would take more time than re-doing the PR myself. Of course maybe if I thought they were going to contribute a bunch more PRs it would be worth spending time training them but I've never had that kind of contributor.

This is a wrong assumption.

Opening the code doesn't necessarily mean that external contributions are expected.

Reports of issues might be welcome, code contributions less.

I've seen too many popular projects polluted by low quality contributions. When they get merged without care, the project's quality degrades. When they accumulate, the load on the maintainers shoulders becomes heavy.

While you’re not wrong this is a confusing interpretation of the parent.

  almost always → necessarily
  talented, competent, meaningful → low quality
> The primary goal of this application will be to serve as a directory for discovering open-source projects

Maybe an increase in potential contributors is a natural outcome of increased discoverability, but I’m not convinced that a new site that is primarily facilitating project discovery will drastically change contributions.

If you’re the type of person to submit code to a project, you’re probably already scouring the web to find the projects that are most relevant to you, and a site like this just makes that process more efficient.

Most users of OSS are not contributors, and this project seems to be aimed at one of the barriers to adopting OSS: knowing where to look for options when you realize you need Tool X for Project Y.

That makes sense. As an open source maintainer a directory that helps people discover my projects in order to use them is a whole lot more interesting than one that helps me find contributors.
If it's that you like the spirit of open source I would take a project in this list and contribute back to that project?

There is potentially a lot of blind spots you have (e.g. What types of mechanisms are you going to have for license filtering?). Your questions along with request for assistance read much more as a request for mentorship as opposed to introducing more code into the world that people aren't reading.

This sounds very similar to Ovio, which matches open-source projects with contributors that have relevant skills. There isn't a rating system but there are tools to browse and find good projects & issues to contribute to for aspiring OSS devs

https://ovio.org/

What happened to Ovio. I haven’t heard from them in years. Is it still active?
The main question you should ask yourself: Will this attract the right kind of contributions?

Whenever I contribute to open-source, it’s typically because I found the project on my own, and, by extension, I already have an idea of how it should operate, and so I’m able to recognize issues or missing features. If an open-source project I’m using already works great, I make no changes. This is how people’s mindset should operate.

Instead, a project like this seems ripe for people to come in and make any sort of change. OSS maintainers already deal with garbage PRs because of self-taught developers hearing that they should “contribute to open source to learn,” and then it’s just a README change or other unnecessary tweaks from absolute beginners. If an OOS maintainer put their repo on your platform, I feel like they would deal with a lot more of that.

It also seems ripe for abuse from nefarious OSS maintainers, who will use that to just promote their own projects, rather than actively seeking contributions. If they have a limited scope as to the changes they’ll accept, and are using your platform just as a means to get more eyeballs on their Donation link, that’s bad for everyone.

Just some things to keep in mind before you proceed.

How would you measure complexity and level of saturation? If you take a git repo and spit out a meaningful number for those, that could be a pretty useful technology in its own right, regardless of its integration into a standalone platform.

Who are the target users? Newbies looking for open source projects with low-hanging fruit that they can pad their resumes with? Projects that need better documentation than what GPT can write for them? Or the Lasse Collins of the world who are desperately looking for a Jia Tan to help them? There are different kinds of open source projects, each with very different attitudes toward casual contributors. Which kinds do you want to focus on, at least in the beginning? Answering this question will help you plan what kinds of interactions you want to enable on your platform.

Feature (not a Product)

This seems more suitable as a feature of GitHub, not a standalone product.

(Interesting idea nonetheless, please don’t take my comments as being negative)

Why do you need approval or product planning (whatever that is)? It seems like a solid idea. Go build it and see how it turns out. That's the only way to know whether people will find it useful or not.
Given recent supply chain attacks I think this can be a good idea. But it seems like a lot of work to centralize information in one place. A lot of unpaid work. Because no one is going to pay you for this information.

I predict it would soon use three major APIs and leave everyone's private gitea or gitweb install in obscurity.

Make a good website; try to get graphic and Ux designers on board so it won’t be fugly; then contact people, one at a time, using personalized emails. They’ll agree to be on there. Eventually you’ll hit enough of a critical mass that people will start signing themselves up somehow, or asking to be on there. How do you verify? How do you keep spam out? You can figure that out next year or the year after.

Then figure out why a person might want to visit your site. Curiosity? Interest in a person? To learn if a foss project is any good? To see who has traction to decide what to contribute to? Something else?

Bonus points: a podcast with interviews with various community leaders; or try to encourage a volunteer to do such a thing. And try to get on other pro open source podcasts. I bet companies like purism would love any free publicity they can get

Then, I’d you catch on, years from now, look out for Microsoft trying to crush you via some competing index tied to GitHub. Try to avoid the temptation to be acquired by Microsoft. Try to set up your company in a way that convinces foss people that this can never happen, Eg, put some fsf people on the board or something?

Lastly, to make the gnu people happy, make your website usable without proprietary JavaScript and consider open sourcing your client and server code. After all, the valuable thing you hold isn’t the site or tech: it’s the network and traction you build

I'm not sure how much value making something "not fugly" really matters. Design should be based on functionality, not anti-fugliness. In my experience, design considerations should come after building a successful growth "feedback loop." (Or whatever you want to call it.) At that point, you may decide making your website look "polished" isn't even necessary.

IMDB was certainly quite ugly for a long time. See:

https://web.archive.org/web/20100712165326/http://www.imdb.c...

Other examples of extremely successful, low design sites:

https://archiveofourown.org/

https://news.ycombinator.com/

>I'm not sure how much value making something "not fugly" really matters.

Eh its still good advice. Far too often decent UX/UI criticism is waved aside as "who cares about making it pretty" and aesthetics and useability very often go hand-in-hand.

> How do you verify? How do you keep spam out?

An idea for this: you could require them to commit a file to their repo with a specific name and the content would contain a one time use token to add that repo to a users profile.

> Make a good website; try to get graphic and Ux designers on board so it won’t be fugly;

Get the designers on board, by all means, but not to make it pretty: make it easy to use, understand, navigate.

If something needs to be pretty before the target audience uses it, it's almost always a vitamin, not a painkiller.

Freshmeat v2? :-)
https://alternativeto.net/ fills that role for me, it has crowd-sourced reviews, searchable facets, and of course recommendations.

Not limited to open source products, but maybe that's a good thing so you can find alternatives.

I think it's a great idea if it's done right. I miss freshmeat.net :-)

A database of open source software would help when looking for suitable products, personally I tend to scout for open source options before looking into closed options.

If it contained easily searchable/filterable information on license, "activity" (i.e how alive the project is), hosting/deployment options, development language, operating system, it would be great.

Also if it has info on how it accepts contributions, it'd be nice.

Probably you could scrape I formation from GitHub, gitlab and similar sites and you could also let projects supply information for you in a "oss-info.yaml/json" in the root dir of the project.

Freshcode.club isn't as vast as freshmeat felt, but at least it looks the same =]
I can only give you a datapoint but unfortunately no advice

1. I never discovered any movie on IMDB. I go to IMDB to find trivia, cast or some other fact about a movie that I somehow already knew of.

2. My interest in an open source project will not be influenced by its popularity or any other metrics but purely by what it means to me. I submitted my first PR to an open source project not because it is popular but because it lacked something I needed.

P.S. Thanks to all the nice people who generously contribute to OSS and offer their work for free. Hats off and respect.

I discovered gazillions of movies on Imdb, actually it's my primary resource. Through either the "more like this" carousel on a movie, or by filtered search (eg. best rated 50s comedy with at least 15k reviews).
The best resource for me on IMDb is definitely just the lists of "Top 250 Movies of all Time"[1] or the "Top 50 $GENRE Movies of All Time" [2].

@OP: Maybe just finding a way to curate the most popular open source libraries into lists per language, framework, etc would be helpful? For example, for me I'm not particularly interested in all open source projects, but I'm really interested in Django stuff. Hence why I love looking at the awesome-django curated list [3]. Maybe an application to just rank all packages for a given ecosystem? Just spitballing.

[1]: https://www.imdb.com/chart/top/ [2]: https://www.imdb.com/search/title/?title_type=feature&genres... [3]: https://github.com/wsvincent/awesome-django

I use it to discover new movies, though mostly by drilling down into cast and crew, see what other projects they've worked on.

Was thinking this "ossdb" could work similarly.

I have to read the reviews; I do that for restaurants as well; the ratings don’t mean so much to me personally; people often up and down vote on a whim and emotion (just in a bad mood) so reading why they (particularly) didn’t like something tells me if I would like it.
I always take movie reviews with a grain of salt depending on the genre. Horror & Comedy ALWAYS get the harshest critics. Horror especially, but honestly unless the IMDB is above a 7 or Rotten Tomatos gives it like 85-100 I leave it up to my own personal judgement. I love watching just about anything if the story is interesting (and I find just about anything & everything interesting so that doesn't leave much off the table)... I've gotten off topic though lol.

TLDR you can't always trust reviews (or peoples tastes). If the Trailer & synopsis hooks ya why not give it a shot when you can always just stop watching if it doesn't pan out.

---

Now as far as an IMDB for open source, I'd say maybe even go so far as doing a Letterboxd type deal? When it comes to opensource projects it always helps to hear what the users are saying about it.

Like the other reply, I also find movies in IMDB and it is also my "primary" source, though I use it differently: I generally want to watch movies in clusters of who's involved, so I will watch a movie I ended up thinking was amazing and then want to see more movies by the same director or starring the same actors, etc.
To counter your points (all valid):

- I did discover interesting movies on IMDB. It was more by chance though, while looking up info on known movies.

- Popularity of a piece of OSS may be important when choosing to use it for an org. Something alive and widely used has better chances of survival in the future, and/or speed of reaction to security incidents.

That said, I agree that IMDB is not what I'd like the directory of OSS to resemble. I'd rather go after imitating tvtropes.

Hmm, what would tv tropes for OSS projects looks like?
Not on IMDB but discovered a lot on Letterboxd, it's my primary source for new films
Interesting. I use IMDB as a filter, for score and synopsis. I rarely find new movies there (find recommendations elsewhere), but I basically filter anything out that sits below a 7, or include anything 6+ if it's in a genre I happen to like. I suppose I could use rotten tomatoes for that too.
My behaviour is similar.

But that doesn't mean it couldn't change if something different were available that gave some (unspecified) advantage.

I discovery movies only on torrent sites.

Imdb is quite good if you're just looking for the best 100 movies ever made.

What torrent sites are best for discovery?
(comment deleted)
> I never discovered any movie on IMDB. I go to IMDB to find trivia, cast or some other fact about a movie that I somehow already knew of.

Then you're clearly using IMDB wrong.

IMDB is owned by Amazon, therefore, their recommendation algorithms are quite good.

And like Amazon, if you create an account and feed it data about your preferences and wishlists, these recommendations get better over time.

I've discovered countless new movies and TV shows I wouldn't have discovered otherwise thanks to IMDB.

> IMDB is owned by Amazon, therefore, their recommendation algorithms are quite good.

Amazon user since day 1 or thereabouts. Their recommendation algorithm has never ever been useful to me. Anecdata, I know.

“I see you just watched Goodfellas. Here are six more links to the movie called Goodfellas.”