Replacing freecode: a proposal

“Don’t it always seem to go, you don’t know what you’ve got till it’s gone…” Three days ago freecode.com abruptly shut down, claiming “low traffic”, but there has been enough public mourning since to make me pretty sure it fills a need that’s still there. There was nowhere else you could go that was quite so good for getting a cross-sectional view of what the open-source world is doing, independently of any given forge site or distro.

Web frameworks have gotten much more powerful since the original Freshmeat was built 17 years ago; today, I think building a replacement wouldn’t be a huge project. It is not, however, something I am willing to try to do alone. Whether or not this goes forward will depend on how many people are willing to step up and join me. I figure we need a team of about three core co-developers, at least one of whom needs to have some prior expertise at whatever framework we end up using.

In the remainder of this post I’m going to sketch a set of project goals, including both some trimming away of freshmeat/freecode features I thought were unnecessary and some new ideas to address problems in its design.

First, let’s be clear about the problem we’re solving. We want a central place where people can post project release announcements so other people can monitor and search release activity, which also serves as a searchable index of project metadata. The project’s main view is to be a timeline of recent release announcements.

Here are some project goals and constraints I think are important:

1. Avoid moderation overhead.

Freshmeat/freecode required that every project creations and release be pre-moderated by humans. This was a serious bottleneck, and may have been the site’s undoing by imposing staffing costs on the operators. We need to avoid this.

I propose that we can do so simply by having a “report as spam or garbled” link on each displayed announcement. There will still be some human overhead to process these, but experience with social media such as G+ that have this feature suggests that it scales reasonably well.

2. Open-source software only.

Freshmeat/freecode blurred its mission and complicated its job by accepting release announcements for proprietary projects. Let’s not do that.

3. A tool for remote-scripting operations

I hate sites that force me to do clicky-dances on a web interface when the information to be submitted would naturally fit on a job card to be processed by a client. Forge sites that don’t let me remote-script a release action are major culprits – they force me to do irritating hand-work every time I ship.

Freshmeat/freecode had a web-accessible JSON API, and I maintained a freshmeat-submit tool that spoke it. The new site needs to do likewise.

4. Bring back Trove

Free tags are great, and the new site should have them, but I don’t think they’re enough by themselves. I think we lost something very useful when freecode dropped the Trove taxonomy. (Admittedly I may be biased, since I was Trove’s original designer.) The new site should bring back Trove, and have tag folksonomy too, and should use tags as a feeder to the gradual extension of Trove.

5. Simplify, simplify, simplify

In my opinion, Freshmeat/freecode tried to do too much. The “heartbeat” feature, for example, always struck me as pretty useless; nowadays, especially, if I want to view stats on development activity I’ll go to Ohloh. I never saw any good reason to carry links to screenshots; selling the project’s niftiness is what the project’s website is for. There are other features that could have been pared away without loss.

The most important way to hold down complexity is to be careful to specify a clean, simple functional design. Let’s avoid the bells, whistles, and gongs this time.

6. Some thoughts about implementation and other issues.

I’m pretty sure I could get hosting space for the public site at Sunsite.

My #1 candidate for a framework to use is Django. Because Python, and the documentation suggests Django would be well matched to requirements. My mind is open to alternatives.

I’m thinking of this as ‘freshermeat’. We’ll need a better name.

If this sounds like a project you want to sign up for, so indicate in the comments on my blog or G+.