Prosperity Digital Marketplace and United Way of Western Connecticut contacted us to create a proof-of-concept platform/MVP that matches people who live paycheck to paycheck with people and organizations that can help. Many people live just above the poverty line and often don't qualify for federal aid or social services because they earn only $1 too much. Others don't take advantage of services because they don't want to take help away from those who need it more.
The digital marketplace we built, called Prosperi-Key, collects offers and services like childcare, discounts on subscriptions, store coupons, career resources, and more, and helps people in need find and use these offers.
When choosing a CMS, we focused on the client’s business requirements and their team’s technological capabilities and customization needs. We needed a solution to facilitate creating an investor-ready, proof-of-concept product that allowed the stakeholders at Prosperity Digital Marketplace to generate content in preparation for go-to-market.
We also wanted a CMS that would let us create different custom roles for admin users. Since Prosperi-Key is a marketplace, several users need to access the platform and complete various actions, like adding or validating content.
The content structure on the platform is very hierarchical, with many regional subsets that provide offers for people in specific locations. We needed to precisely control who accesses, modifies, or publishes different kinds of data.
Strapi was a clear choice for this use case. Since we're a Strapi partner and regularly use the tool for other projects, we knew it would speed up development and help us build a platform with top-notch performance.
We used Next.js on the front end, Strapi with MongoDB for the back end, and Heroku for hosting.
We decided to go with Next.js on the front end because it's a modern framework with high security and flexibility.
As far as the database is concerned, we started with a PostgreSQL database but later switched to MongoDB since it allowed us to run geospatial queries natively.
Finally, Heroku is our go-to hosting/cloud application platform. We prefer it for its ease of use and scalability.
Strapi’s relationship fields let us link various content types with admin users. Furthermore, we could associate different content types based on shared values within a custom field.
Using these two types of associations, we could render content conditionally for our admin users.
Hubs (other United Way organizations) and nonprofits that work with United Ways have Strapi Admin accounts with limited access to content types and content types properties.
Each hub/nonprofit can have multiple admin users associated with their entity, which lets them manage content collaboratively. Partners (businesses) have front-end accounts. Sponsors and donors don’t have accounts—they’re managed by hubs.
Data for marketplace users (and partners) is stored in content types.
Having custom roles is one of the business requirements of the project. Since Prosperi-Key is an NGO, we’re able to use the Bronze Enterprise Edition for free.
We’re using a total of four custom roles for the Strapi Dashboard. Each role is customized with its own level of access to the various content types we created, allowing them to add/edit offerings, manage members and partners, and more, depending on their role. In addition, we have two different front-end user types (members and partners) that we manage via the Users content type in Strapi.
Strapi helped us create a fully functional, proof-of-concept version of the platform in a very brief period (just under two months).
Using Strapi and Heroku, we’re confident we’ll be able to scale the platform to at least 100,000 users in the first year based on our performance tests.
Strapi has been extremely easy to use to build content, not just for me as a System Admin on the platform, but also for our stakeholders that have access to it. As a System Admin, I find it very easy and comprehensive to configure roles and permissions, and manage content, users, views, and filters!