A significant fraction of mobile users in the rural developing world use low-end mobile devices and have restricted data connectivity services due to a variety of economic factors. These devices have restricted capabilities with voice and SMS remaining the primary communication channels. The penetration of mobile information services in rural areas has largely been limited especially since all applications are operator controlled and very few applications have been adopted on a large scale. This paper presents the design and implementation of UjU,1 a mobile platform that enables users to develop new SMS-based mobile applications on top of a common platform. Given that the SMS channel is extremely constrained to 140 byte messages, UjU is designed to support database-centric applications that express and operate upon information in structured formats. In UjU, specifying a new application is equivalent to configuring an XML schema. Apart from exporting a standard set of operations, UjU allows the developer to specify new application-specific operations as XML forms. To make efficient use of the SMS channel, UjU supports a semantic compression engine that leverages the structured nature of the information transmitted. UjU includes a simple reliability layer to cope with message losses and uses a user-centric consistency model to handle data inconsistencies. We have configured and tested UjU for several SMS-based applications and describe our experiences in tailoring UjU to develop five real-world applications in the areas of mobile microfinance and mobile healthcare; four of them have been deployed in Ghana and Mexico.