By Nathan Willis
October 31, 2012
Free software projects in search of a fundraising model now have
yet another alternative to consider: Selfstarter, a
Ruby-on-Rails application built to emulate Kickstarter-style donation
drives in a self-hosted environment. It provides a simple
crowd-funding framework, but one that can be adapted to a number of
fundraising scenarios. Although it is not the only free
software option, it does have its advantages.
Fundraising for free software development has been a popular topic
of late. In August, we covered Adam Dingle and Jim Nelson's survey of the available approaches at
GUADEC, which centered on a comparison between the popular pre-funding
donation model used at Kickstarter and the pay-what-you-like
post-funding model used by the Humble Bundle. In September, we
looked at Bradley Kuhn's report at
LinuxCon North America about the Software Freedom Conservancy's (SFC)
successful drives to raise funds tied to specific developer
contracts.
MediaGoblin and constituent-relations-management
Since then, at least one well-known project has launched a large-scale
campaign of its own: Chris Webber, lead developer of the
MediaGoblin web publishing
platform, is trying to raise funds to
support himself for one year's worth of full-time development. As
Webber explained
on his blog, the campaign is run through the Free Software Foundation
(FSF), but it required some engineering effort to support several
features missing from the FSF's base fundraising platform.
Specifically, Webber wanted a donor rewards system, the ability to
send email updates to donors, and an automatically-updating "progress
bar" that tracked the total as pledges came in. All three features
are found on the Kickstarter platform. In addition, Webber wanted a
custom theme to match the MediaGoblin site, which of course is not
supported on Kickstarter.
The software powering the donation drive is CiviCRM, which the FSF adopted
in 2010, after having promoted its development as a "high priority
project" for several years. CiviCRM is used by several other
organizations in the free software community, including the GNOME
Foundation, Wikimedia Foundation, and Mozilla. In an email, Webber
noted that some of the CiviCRM modifications used to deploy the
MediaGoblin drive were trivial — such as the progress bar, which
uses a simple AJAX query to the CiviCRM back-end.
Whether the remaining changes constitute an interesting enough module
to make into a formal extension or patch set remains an open question.
"I think we did a good job of making something that was
feature-compatible with Kickstarter, but part of that was also working
on things as in terms of looks," he said. "I'd be
interested in someone building on that work to make something that
people could much more easily click-and-go make a fundraising
campaign. Would CiviCRM be a good fit for that? It seems like it's
working well for us, but then again, I'm not the one running
it."
CiviCRM is a not a lightweight package; it is intended to serve as a
"relationship management" system over the long term — which in
human terms means multiple years. It also needs to be integrated with
another content management system like Joomla! or Drupal; installing
and maintaining it introduces considerable overhead if all one is
interested in is a one-shot fundraising drive.
Self-starting start-ups
In contrast, the Selfstarter application is designed for rapid
deployment. The company behind its development is Lockitron, a start-up created to
build and sell a smartphone-based keyless door lock system. When the
company's project proposal was rejected for inclusion on Kickstarter,
the team wrote a work-alike and hosted the fundraising drive
independently. The drive was evidently a success; the site reports
that well over 1400% of its target amount was raised, and the entire first
round of pre-orders is sold out.
Selfstarter is built for Ruby 1.9.2, and is designed to be deployed on
production servers using Heroku
(although Heroku is optional, but recommended). The code is available
from a GitHub repository; after cloning the repository the basic setup
can be installed with bundle install --without production and
the necessary databases (by default, SQLite) created with
rake db:migrate, both of which should be old hat to
Rails developers.
Fresh out of the box, Selfstarter does require quite a bit of
customization. The config/settings.yml file includes all of
the campaign settings, from the project name and fundraising goal to
the strings displayed for the various messages (for example, whether
donors are called "donors" or "backers," and the note explaining what
to expect when the campaign ends).
Selfstarter supports only Amazon payments, though the README
file explains that this and several other limitations were choices
made for simplicity when Lockitron wrote the application for its own
campaign. Similarly, it supports embedding Vimeo videos, using Google
Analytics, and has configuration variables for Facebook and Twitter
"share buttons."
Adding support for additional payment systems, video embedding, and
sharing services are all among the first requests filed on the issue
tracker. They will probably not prove difficult, but the fact that
the current values are hardcoded in simply illustrates that
Selfstarter is a young project that still requires manual
configuration. The same is true of the theming and CSS styling; all
of the media assets and stylesheets are simple to locate, but
radically altering the layout of the pages will require a bit more
work.
The area in which Selfstarter really needs further development is in
its support for different styles of campaign. The Lockitron campaign
is built around a single product, offered at a single price. That may
work well for the majority of product-driven drives, but it does not
offer donors the choice of levels that many Kickstarter campaigns use
to "up-sell" potential backers. Tracking donor movements between
levels and statistics on average donations is unimplemented.
Selfstarter is also built around the assumption that the campaign is
an all-or-nothing funding proposition (that is, if the target amount
is not met, no one will be charged). This is the Kickstarter model,
but others may prefer to take a different approach.
Selfstarter also does not implement user accounts, strong
authentication, or provisions for emailing donors. The value of
features like emailing donors is debatable, although it is a popular
way to keep buzz alive in Kickstarter drives. The developers do say
that they welcome patches for these and other features, however.
Getting your kicks
With its current feature set, Selfstarter has the makings of a decent
funding platform for independent projects. But independent projects
are hard for potential donors to discover — a drive run by a
well-known entity like the FSF is likely to garner discussion, but for
new projects, waiting for visitors flush with cash to stumble across
the campaign site is a worrisome proposition.
One intriguing possibility on this front was raised in a thread on
the Selfstarter issue tracker. User elf-pavlik asked whether
Selfstarter could be merged with the similar open source crowdfunding
project Catarse. Diogo
Biazus from the Catarse team replied that Selfstarter's identity as a
self-hosted fundraising platform made it significantly different from
Catarse's model, which involves maintaining a curated stable of
multiple projects. But the two could still find a way to
interoperate, he said:
So, why not create a channel in Catarse, where we could receive
projects from the Selfstarter? In this fashion, Selfstarter could
evolve to be the Catarse's entry point to new projects (as an Engine)
without losing it's original identity of simple-project platform.
That concept is interesting because it would help any
free-software-focused crowdfunding efforts balance the benefits and
risks of going-it-alone. As Dingle observed in his GUADEC talk, a
pool of multiple fundraising projects hosted at one site is easier for
users to find, but it makes smaller and less well-known projects
harder to find on the site itself, because the "cool" projects grab
most of the attention. The possibility of a hybrid model, where
individual projects could run their own campaigns but still be
accessible from a central service, might help.
Of course, regardless of whether the campaign is self-hosted, run by
the FSF, or promoted on a specialty Web service, the trickiest part of
the fundraising drive is not the software component — it is
marketing the campaign to donors and convincing them to open their
wallets. Selfstarter and similar efforts cannot do that part, though
they can take developers' minds off of the implementation problem,
which is at least a start.
(
Log in to post comments)