If you're developing software to be used by multiple users you're going to have to build in a user management subsystem which means you're going to need a registration process with verification as well as group management and account locking and account cancellation and, and, and ... and building and testing all of that infrastructure will take you away from what you'd probably prefer to be putting your effort into, that is, the actual core functionality of the software you're trying to build.

There is, however, a solution: Stormpath, an open user management REST-based application programming interface (API) that works with any language. Particularly where cloud application development is the goal Stormpath makes a lot of sense because writing a user user management subsystem is akin to reinventing the wheel and it's not what your focus should be on. Stormpath makes it not only simple to avoid a whole heap of code it also means that you can skp a an additional testing load.

Users are created through the Stormpath Web console or through the API and you can mirror your internal LDAP or Active Directory user databases in the Stormpath service. Authentication is a single API call and you can brand all of the email messages used for verification and password resets.

While the REST API is accessible from any language Stormpath specifically provides wrappers and example applications in Java, Ruby, Rails, and PHP. Stormpath also supports integration with Apache Shiro and Rails Devise,

You can start with a free account for open source, non-profit, and education projects which allows for unlimited users and 50,000 API calls per month or go with a Production account for $195 per month which increases the API call limit to 5,000,000 per month. Enterprise plans start at $1,995 per month and LDAP mirroring for Production and Enterprise editions is an extra charge starting at $95 for up to 10 users. An On-Premise Edition is also available for $39,995 per year.

Stormpath is a great idea and its API is well-designed and well-documented. It's also a great example of a type of service that will become much more common over the next few years where functions such as user management, database support, workflow, scheduling, routing, and other "standard" subsystems will be provided by specialist vendors in the cloud to support a core custom application.

Let me know what you think of this "out-coding" idea and if you've looked at or used Stormpath.