What is RapidSMS?

RapidSMS is a toolset for rapidly building SMS (text message) services for data collection, streamlining complex workflows, and group coordination using basic mobile phones — and can present information on the internet as soon as it is received.

So far RapidSMS has been customized and deployed with diverse functionality: remote health diagnostics, nutrition surveillance, supply chain tracking, registering children in public health campaigns, and community discussion.

RapidSMS was designed to be customized for the challenges of governments, multilateral, international- and non-government organizations, and development practitioners: working effectively in spite of geographical remoteness of constituents, limited infrastructure (roads, electricity), and slow data collection (due to paper-based records, slow courier systems, etc).

RapidSMS was initially created by UNICEF's Innovation Unit in 2007 to support UNICEF's data collection and youth engagement activities. Developers from Caktus Group, Meraka Institute, Entropy Free LLC, Dimagi, Columbia University's Earth Institute, and ThoughWorks have been major contributors to RapidSMS since the project's inception. UNICEF's Innovation Unit and UNICEF's country offices continue to support development of RapidSMS and related software.

Awards and Recognition

Coded in Country

RapidSMS framework was created by programmers working directly on actual project implementations with end users — not by an isolated software firm working from specifications.

The resulting software is practical, flexible, and simple enough to meet real world needs.

RapidSMS is not constrained to any particular kind of mobile device: any mobile phone that can send and receive text messages can interact with RapidSMS.

End users never need a specific device or to install any software on their phone. RapidSMS is focused on commonly available, existing infrastructure to allow for replicability and scalability.

Built to scale

RapidSMS is built for robustness and high availability. RapidSMS is designed for horizontal and vertical scalability.

‘Horizontal scalability’ is the ability to be easily replicated or expanded into other domains. The modular nature of RapidSMS functionality is designed to allow a single deployment to be used for a variety of purposes. For example, a system that initially collects nutrition indicators can easily add capabilities to collect food inventory data to give a more comprehensive view of a complex environment.

‘Vertical-scalability’ is the ability to effectively handle increasing workload. If a product cannot meet the demands of a growing population of users, it will be limited in its value and reliability. RapidSMS was designed to efficiently process vast amounts incoming and outgoing messages to large numbers of users. Projects successfully demonstrated at a local level can easily and confidently be deployed at a national or regional levels.

Flexible for your needs

There is no single tool or mobile application that can be universally applied to fit all project and stakeholder needs. RapidSMS is designed for easy integration with existing workfows and other software systems. RapidSMS can easily export data to excel for further analysis, query existing databases, and communicate with other software systems.

The RapidSMS community strongly advocates for an atmosphere of collaboration with other effective platforms, and a concerted effort to ensure interoperability.

When is RapidSMS appropriate?

When you need a large-scale (enterprise), robust solution

  • Collected data can be accessible to many people in many locations via the internet.
  • Thousands of users can interact with your system simultaneously.

When you need customizable solution

  • Certain actions can be triggered in specific circumstances.
  • RapidSMS can integrate with existing software tools and services.

When your end users only have very basic phones (text/voice)

  • End users do not need “smartphones” or Java-enabled phones or computers to interact with RapidSMS.
  • End users can use their own handsets — no need to procure any mobile phones.

When you need a scalable solution

  • A single RapidSMS system can handle one village or one country.
  • RapidSMS can use GSM modems for small volumes and can integrate with mobile network operators or 3rd party solutions for large volumes.

When is RapidSMS not appropriate?

Implementing organization lacks technical and software development expertise

  • Experience with command line tools and server administration is necessary for installation and configuration.
  • Experience with object oriented programming is necessary for customization.

Implementing organization cannot procure necessary equipment

  • In most cases, physical access to a low-end server is needed (can be an old desktop PC). Internet connectivity for the server is necessary for email functionality and the website portion of RapidSMS (internet connection should not be behind a restrictive firewall so programmers can update remotely and so automatic backups of data can occur).
  • A GSM modem (with a non-prepaid SIM card) or an arrangement with a mobile network operator or 3rd party vendor is necessary to send and receive text messages.

End users have data-enabled mobile phones and constant internet connectivity

  • Internet-based or Android (rather than SMS-based) solutions may be more appropriate in these situations.

Implementing organization does not have enough time for proper negotiations or planning

  • RapidSMS is designed for long-term large-scale projects with specialized needs, which often necessitate negotiations with mobile network operators and lots of planning.

Free and open source

RapidSMS code is freely available under the New BSD license: anyone may modify and redistribute the code.

Software developers from Senegal, Mali, Nigeria, Kenya, Uganda, Canada, UK, and USA have contributed to the growing codebase.

Nearly 200 software developers and implementers discuss RapidSMS on the RapidSMS mailing-list. The list’s online archives are a great way to become familiar with RapidSMS.

More information for software developers can be found on the project wiki and documentation site.