i'm johan. i do things with computers. i'm from berlin

Introducing: Downloud

downloadYesterday I coded a small project called Downloud, it’s basically a simpler Fatdrop. The code is on Github here and a demo is here.

The Background

Two friends of mine are running the label Odd Socks Records. They release house music on vinyl and digital. Each release is 2-4 tracks. They send the releases for high quality download to their DJ and music industry friends, so they can play the tracks themselves. Famous people playing and mentioning your tracks is the great promotion for a label. But apart from that the label also wants to know what people think about the tracks. Thus the download can only be done after people left a comment. These comments in turn are used to promote the record and artists again (like seen here).

So there are some tools available for this already, most famously Fatdrop, but my friends wanted to have their own styled version.

The Development

I sat down with both of them, they showed me examples, no big requirement analysis or design phase. Just a small list of features, a design sketch and their logo. The whole creation process took about 6 hours. Another hour for putting this on Github afterwards (mostly writing Readme).

The stack is simple: Sinatra, SendGrid (via Pony gem), deployed on Heroku

One of the core decisions to limit scope was to have no own storage. The audio is streamed from SoundCloud, the actual download is hosted elsewhere (e.g. Dropbox’ public sharing), the feedback is sent via email and the configuration is in a yml file that is deployed with the code.

The Future

The obvious thing to do is turning this into a customizable platform where ‘everyone’ can sign-up. From my experience with turning TakesQuestions into a platform as well as watching Lee developing EmailUnlock, there is quite some work to be done, like account handling, settings and customization storage or security. Maybe I’ll do that one day.

SendGrid has a pretty rigid limit of 200 mails/day. To bypass this, gmail could be used, mostly because email is only sent to some exclusive recipients anyhow, so stats and sender score aren’t relevant.

Also the feedback should be stored in a database to protect against lost emails and to run statistics.

If you think stuff should be different, please fork away