Design principles

Our design principles are here to provide a clear framework to all those working on OpenCRVS of how to make design decisions that will affect how the product works. OpenCRVS is a digital product that serves low resource settings and these design principles reflect our constant effort to ensure that it fulfils our mission.

Start with users' needs#

Listen to, engage with and observe users. Spend time to understand their needs, assume nothing, and work with your users to create designs.

Prioritise offline#

Every product feature must work offline and in areas of low connectivity. Where connectivity is required to complete an action, tell the user what's happening and always consider the loading state.

Give guidance throughout#

The user shouldn't have any questions about what to do - it should be intuitive. Make the product simple and offer clear guidance every step of the way.

Test, learn and iterate#

The best way to develop new features is to start small and release early. Get it into the hands of your users, listen - learn, and iterate.

Enable rights#

We want to empower and protect those who use and are served by OpenCRVS. Is what you are designing likely to exclude or discriminate anyone? How can this be avoided?

Be consistent#

Every part of the product should look and feel part of the whole - make use of the component library.

Be hyper accessible#

Our users are from across the world with varying levels of digital literacy. Whatever we design must be as inclusive, legible and accessible as possible.

Words matter#

Every word should be understood by users, with no room for interpretation. When drafting text, avoid use of administrative language and test it with local users.

Design with data#

Use data generated from the system to inform design improvements.

Consider other contexts#

OpenCRVS is a global product. Consider the variability of what you are designing - will it work in other countries and contexts, and how will it be easily configured?