What’s wrong? 🌳
Public spaces are more than just collections of buildings— they’re centers for community engagement and human interaction. However, they remain inaccessible to most people. When one of our members, Andy, moved to Phoenix, he found it difficult to meet people. Despite being in a densely populated apartment complex, there was no sense of community. Why? With a lack of common spaces for people to interact with one another, there were no parks, venues, or gardens for people to meet. Although the demand for better public spaces is high, our local governments have shown a lack of engagement and effectiveness, while individual initiatives have been too narrow to make a significant difference. This lack of public spaces fuels everything from loneliness to social disengagement. With COVID-19 and the work-from-home craze pushing us all apart, we now, more than ever, need spaces to bring us together.
What we’re doing about it 🔧
To address this, we created Kentro, a mobile platform empowering individuals to directly invest in building public spaces for their communities.
On Kentro, users create accounts to join their local community and launch campaigns to increase public spaces and community engagement. While individuals are limited in their agency, groups accomplish much more— that’s why, on Kentro, other members in the local community fund these projects. Through these donations, users are empowered to improve their local communities for everyone, including themselves.
Once a campaign organizer begins carrying out the project, they can publish messages to the community, allowing for increasing transparency and for backers to track the impact of their support. By adding badges for community support, we’re also gamifying the process of building community engagement. Grinding for badges and shareable metrics incentivizes users to continue supporting their local communities!
We believe that the people that are most incentivized to improve communities are the people that live in them. That’s why Kentro emphasizes bringing communities together to empower them with the agency to uplift their spaces collectively.
Tech Talk 👨💻
When building Kentro, we maintained low technical debt for future scaling by using a fully serverless, cloud-based architecture. The mobile client itself is built with React Native and Expo, tooling that allows for a single codebase to serve both Android and iOS users. For the backend, we heavily leveraged the Google Cloud suite of products. For example, we used Firebase to authenticate users, cloud storage as a data lake for image storage, and Firestore as a non-relational document-style database. For scalability and security purposes, interactions with all of these products were handled through a custom RESTful API that we built with Express.js. This API was fully serverless, and although this choice sacrificed latency due to cold boots, it allowed us to build quickly without worrying about future scaling or hosting. The last major component of our tech stack was Stripe, our payment processing platform. We leveraged Stripe’s checkout flows to collect and process payments from users who wanted to back a campaign. Using Stripe Connect, we can then pay out these payments to campaign organizers.
Lessons Learned ✍️
We were wise to start early and devote a significant portion of our time to brainstorming application ideas and drafting a product requirements document (PRD) with architectural requirements. This paid off later as we implemented most of our backend infrastructure having a solid vision of our data models and their relations with one another and the front-end client.
Yet this left us with relatively less time to code. We had to make strategic architectural decisions quickly when faced with unforeseen complications, such as the use of separate endpoints for creating Stripe checkout pages and confirming checkouts in our database. We ran into cases where our serverless cloud-based architecture couldn’t detect checkout sessions being complete, so we engineered a serverless solution that would redirect users to a separate confirmation endpoint upon payment success.
Such a fast-paced setting was ripe with room for learning. In the process of developing our application from prototyping to full-scale implementation, our team solidified our understanding of the full-stack React Native, Firebase, and Express.js application environment as well as various industry-standard coding practices. More importantly to us, by participating in Hacktech, we leveraged the potential of technology for social good, as we genuinely believe that our application addresses a growing, understated concern with modern-day society – community disengagement. On that note…
What’s Next? 🚀
Currently, many public works projects disproportionately benefit wealthier communities. To reduce inequity, we plan to reallocate resources from high-income to low-income communities by redirecting a small percentage of transactions into low-income community initiatives.
Another key barrier is a lack of transparency. When a community member understands what exactly their funds go for, they are more willing to contribute to the initiatives. To account for this and improve transparency, we will implement explicit budget categorization, project timeline, and chat with the campaign organizer function.
Along the way, we’ll launch the app for a few local communities in the US when basic transparency features are ready, then scale up to cities, implement our equity features, and then scale worldwide.
A detailed roadmap can be found as a PDF attachment to this submission.
Final Words 👋
Ultimately, we mean for Kentro to be not just an application positively impacting a few well-off communities, but a global resource serving local communities worldwide. After all, we believe that even in a digitally connected era, proximity is the future. As we hope to demonstrate with Kentro, the key to revitalizing strong, healthy local communities and human interaction is with technology itself.
Built With
- apis
- express.js
- firebase
- geocoding
- react-native
- restful
- stripe


Log in or sign up for Devpost to join the conversation.