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?