What is RailsWheels.com?
RailsWheels.com allows Ruby on Rails developers to:
Rails Wheels can be thought of as a hybrid of Freshmeat and the iTunes Store, helping make web-component ISVs viable, and giving website developers access to better software and better support.
How does the site work for owners and developers of websites?
How does the site work for software authors?
Authors register their software packages with Rails Wheels, and can opt to list them in the package search engine.
Each package is controlled by one or more administrating users who are able to edit package attributes, including licence conditions and contributor weights. It is assumed that all contributors to a package grant that package's administrators a copyright licence to their contributions, in the manner of the Apache ICLA. Note that this grant should be made to an adminstrating group that is defined by the list of package administrators as registered with Rails Wheels at any given moment, rather than the set of group members at the time of the grant.
As well as choosing a free software licence, package authors can opt to impose commercial licence conditions on certain sites which deploy one of their packages. Authors can also register a list of Rails Wheels users and other Rails Wheels packages that have contributed to each of their packages, and Rails Wheels disburses any licencing revenue among these contributors.
Even if you do not wish to charge any users, please list your package on Rails Wheels so that developers can find it, and so that other packages can gift you with a share of their income. For example, you may wish to let a Rails core development fund share in your package's revenue by listing Rails itself as a contributor.
How does the licencing system work?
In order to give potential licencees a simple and consistent licencing procedure, the Rails Wheels licencing system needs to be followed.
Under this system authors can assign one or more commercial licence conditions to a package, each of which sets the prices charged for sites that are in a particular set of website owner classes (non-profit, government, personal-promotional, or for-profit) and are of a particular size (number of employees). Prices are specified for quarterly and/or perpetual licences.
Quarterly licence holders are given access to ticket-based support through the Rails Wheels site, and package administrators must nominate one or more Rails Wheels users who will reply to these support requests. Package administrators can specify the support term available to perpetual licence holders.
Licence conditions can either be compulsory or optional, the latter acting as both a suggested donation, and a price for access to support ticketing.
The price of a perpetual licence is discounted by any quarterly licence payments, so once a package is "paid off", quarterly licencees are given the option to add a perpetual licence at no charge, eliminating further licence payments at the cost of an eventual loss of support, unless further quarterly licences are purchased.
When authors release a major new version of a package they have the option to register it as a separate package that is assigned a special upgrade charge for holders of perpetual licences for previous versions. Quarterly licencees can migrate without charge.
A package becomes licenced under a nominated free software licence when no commercial licence condition applies to a site. Conversely, specific sites can be granted free licences, either indefinitely or until a specified date, eliminating the need for that site to purchase a licence for that package if one was required.
If an author wishes to impose some commercial licence conditions on an existing free package, they can either register two packages that are split along a version threshold, or they can nominate a legacy licencing date that assigns a free licence to all deployments prior to this date.
If a commercial licence condition is attached to a package, you can still include that package in another software package that you wish to distribute, even if your software is itself commercially licenced. There is however a requirement to clearly inform those receiving your software that commercial licence conditions are attached to this component package, and that they should visit Rails Wheels to check whether they have an obligation to licence this component when it is in live use. If the package is simply a prerequisite component of your software, and you have registered your software with Rails Wheels, you can fulfil this requirement by unbundling the package and listing it as a prerequisite on your package listing.
If instead you wish to eliminate, modify, or merge the licencing requirements of a component package, you will have to negotiate with that package's administrators to determine a mutually-acceptable set of licence conditions that will apply to your package, and an agreed level at which their package contributes to yours. You may be asked to list your package on Rails Wheels, to specify certain licence conditions, and to list the other package as a contributing package at the agreed level.
These procedures facilitate the creation and distribution of derivative works, while allowing the original authors to be compensated.
All these licencing conditions will normally be formally stated in a licence that accompanies a package. Here is a sample.
How are licences enforced?
Licences are "enforced" through licence files that users download for each of their sites. Licence files specify the date on which the licence expires for each of that site's package deployments.
If you have registered a package that runs in the Rails environment, the easiest way for you to check that a
deployment of the package is licenced is to require file rails_wheels.rb,
and to place some variation of the following at appropriate points in your code:
RailsWheels.check_licence('UNDERSCORE_FORM_OF_PACKAGE_NAME') || return
If your package does not run in the Rails environment, you can have your package read directly
from the rw_licences.site.rb licence file.
No attempt has been made to make it difficult for licence checks to be bypassed. The licence file and licence check systems merely provide a reminder for honest users to check their licence requirements when either going into production or when one of their licences is about to expire.
Does RailsWheels.com provide hosting of package archives or SCM repositories?
Not at present. Please host your packages on your or some other site.
If you intend to list a direct download, installation, or SCM extraction link for your package, you should first make sure that the sites hosting these files or repositories are OK with this.
How are package developers paid for their work?
Whenever a licence is purchased, the revenue share earned by each contributor to that package is added to their Rails Wheels account balance. Each month, if a user's balance is $50.00 USD or higher, Rails Wheels transfers that balance to the account the user has nominated on their account profile.
Currently, there is a choice of three types of payment account: US Bank account, Paypal [Rails Wheels Referral Link], and Moneybookers [Rails Wheels Referral Link].
There is no Paypal fee for withdrawing a PayPal balance to a US bank account, but a fee may be charged for accounts in other countries. Moneybookers charges $2.70 USD to withdraw funds to a bank account in the account holder's country.
Payments are made in US Dollars, so those wishing payment in other currencies must rely on the currency conversions performed by Paypal and Moneybookers. Paypal charges a 2.5% spread from its bank exchange rates, with a caculator available here (Paypal login required first!). Moneybookers charges a spread of 1.75% from their exchange rate source, resulting in these rates.
If a user's business is registered for Australian Goods and Services Tax, they must enter and maintain on their account profile an Australian Business Number. Each month, whenever the user's balance is $50.00 USD or higher, such users will be emailed an Australian Dollar amount equal to 110% of their USD earnings. This amount will be paid in USD in the normal way after Rails Wheels receives a Tax Invoice from the user for this AUD amount.
Balances are paid in full if an account is closed.
What fraction of licence income is paid to package developers?
For its listing, licencing, ticketing, disbursement, and reporting facilities, Rails Wheels retains a fee of 8.5% of the licence price. Offseting this is the 2% discount given to licencees who pay in cash. There is no per-licence minimum, which ensures no loss of income for packages having low quarterly licence fees.
Here are the fees of some other services:
What keeps software users honest?
While some software users will deliberately breach their licence agreements, many will not due to:
What is a licence stamp?
The developers of a website have the option of displaying an image on one or more of their site's pages
that indicates whether all Rails Wheels packages deployed on the site are licenced. This enables
the site developers and owners to indicate both their integrity and their support for the open-source
development community
.
If all required licences have been purchased for a site, the following stamp will be displayed:

Otherwise this stamp is displayed:

When a stamp is clicked, the browser is taken to a Rails Wheels page that explains the meaning of the image.
This page also displays the site's registered Rails Wheels type (non-profit, government, personal-promotional, or for-profit), a range that contains the site owner's employee count (as registered with Rails Wheels, if disclosed), and the number of licenced Rails Wheels packages that have been deployed on the site.
Given that the browser address bar is checked to see that the page is located on RailsWheels.com, this therefore provides sufficient information for the integrity of a displayed stamp to be assessed.
Note that due to network caching an incorrect stamp may be displayed for up to a day after the licenced state changes. The information displayed when a stamp is clicked will however always be correct.
What is the motivation for RailsWheels.com?
While in the Rails community it has been considered acceptable, even praiseworthy, to charge for guidebooks, training, and development tools, just about every Rails add-on software component, as well as other software that forms a functioning Rails site, is made available for unrestricted use at no charge, even though such software also saves a great deal of development time.
There are several reasons for this:
There is however a demand for a broad selection of high-quality, well-documented, and well-supported components that save developers much more than they cost. Conversely, there are many Rails developers who desire to be able to earn part of their living as independent developers of software components, rather than being forced to only develop websites. But how can this be done without losing the benefits of open-source software?
The big advantage of open-source software is the peace of mind it brings. The knowledge that if anything goes wrong, the user can fix it themselves. Source code is the ultimate documentation.
Free redistribution also makes it easy to create and release derivative works, allowing developers to customize, integrate, and re-release rather than reinventing the wheel.
OSS is also often beer-wise free, and just as beer lubricates and disinhibits, the absence of any formal transaction makes free software the quick, easy, and risk-free option. Gratis licencing of software components, systems, and tools yields a great benefit for many, in the same way that cooperative strategies produce the best outcomes in the iterated prisoner's dilemma. However within these systems some exploit and some are exploited, creating a tendency for disillusionment and limited growth.
Gratis system software components and tools are particularly attractive because they need to be evaluated, integrated, and either tested or used, long before they can contribute to income.
Because of their large number of contributors, large and complex open-source software on which other software builds, such as web frameworks, web servers, and web browsers, usually only function well when there is no commercial aspect. Contributors are likely to be reluctant to freely donate their work to a purely commercial entity.
But smaller projects usually give their software away as well. Lone developers are conscious of the self-promotional benefits, however such advertising often leads to jobs developing proprietary applications, proprietary extensions, or, if forking is difficult or if the company is generous, patches that are driven by one company's needs. Rather than forcing developers to lock themselves away in these environments, the independent software vendor option should be made viable by putting it on more professional footing than mere job seeker, panhandler, or ad publisher.
When they are sold, prices of OSS components often fall into a narrow range. Even though they are still time-savers, smaller, cheaper components are rarely sold because the income does not justify the effort of arranging to receive payment. Also, users don't want to make dozens of individual purchases, and may not respect isolated packages having low prices.
Conversely, software is often priced well below the value it creates for each of its customers because of a fear that a high fixed up-front charge would scare many customers away. Smaller payments at regular intervals that vary according to the nature of the site and its owners, and that only accrue while a site remains live, better matches the diverse and fast-moving world of the Web.
RailsWheels.com aims to make it possible for the ISV to thrive in an environment that preserves many of the benefits of free software by —
When OSS developers are paid for their overall development activity, rather than only when they creating proprietary extensions, better software and better support is made available to more users. Put another way, developers should be rewarded for generalizing their work, as well as for customizing it.