In Ghana's Volta Region, support moves through community — waving down a local police officer or shared by word of mouth. Help in some regions is limited to who you can physically reach, and opportunities to improve outcomes in emergencies are abundant leveraging technology.

A welder two towns over who'd fix your roof never hears you need it. A clinic with Eʋegbe-speaking staff stays invisible to the family searching in Akan. Mutual aid is the oldest social network there is. We wanted to digitize it without erasing it — honoring 11 languages, voice-first access for low-literacy users. This app only matters if it's local and trusted.

Ðekawɔwɔ ("the making of one") connects people who need help with people who can give it. You post an Ask — by voice, photo, or text — and neighbours respond with a Give. A Wish names what your town lacks, so organizations learn where to send resources.

Drop a Pin shares your location alone, for a hike or an emergency. Everything works across Eʋegbe, Twi, Hausa, and eight more languages, so an Ask written in one surfaces to a responder reading another. It's a community that gets more useful the more people join.

We built on the Zero Stack: a Next.js app on Vercel, scaffolded fast with v0, running as a real server — edge middleware localizes first paint across 11 locales, and route handlers act as a Backend-for-Frontend that keeps Cognito tokens server-side.

The frontend consumes a design system rooted in Ghana's art and culture (kente, bolga baskets, trotro signage) translated into CSS tokens. Behind it, three AWS databases chosen by access pattern:

Aurora DSQL is the primary social graph — snapshot isolation and optimistic concurrency mean two helpers can never double-match the same Ask. DynamoDB (pay-per-request, Streams enabled) is the write-hot feed.

Aurora PostgreSQL + PostGIS (Serverless v2, scale-to-zero) owns the 8 km radius and Drop-a-Pin geometry.

A DynamoDB Stream fires a geo-mirror Lambda that syncs events into PostGIS — closing the loop. All eight stacks are AWS CDK.

Aurora DSQL doesn't support foreign keys — we'd designed the schema around them. We kept a canonical FK-free schema and moved referential integrity into the Lambda layer. There's also no AWS region in Africa for DSQL yet, so we anchored in the Europe region set and documented the path forward honestly. Rendering Ewe ʋ/ɖ/ƒ and Hausa ɓ/ɗ/ƙ glyphs broke on CDN fonts, so we self-host a 37 KB Noto Sans subset from the CloudFront edge in Nigeria via Dublin.

Three databases composing cleanly through shared UUIDs and a live Streams-driven geo-mirror — not one store forced to do everything. A design system where 15 Ghanaian cultural inspirations each trace to a named, shipped CSS token..

Access-pattern-first database selection produces cleaner, more scalable architecture than forcing one store to fit every shape from our backend-to-frontend

Built With

  • amazon-api-gateway
  • amazon-aurora-dsql
  • amazon-aurora-postgresql
  • amazon-bedrock
  • amazon-cognito
  • amazon-dynamodb
  • amazon-location-service
  • amazon-nova
  • amazon-transcribe
  • amazon-translate
  • amazon-web-services
  • aws-cdk
  • aws-lambda
  • css-custom-properties
  • next.js
  • postgis
  • react
  • typescript
  • vercel
Share this project:

Updates

posted an update

3 articles one for each database available in the Vercel Marketplace / Vercel Storage Configuration. written as primers to be helpful for AWS Solutions Architect certifications, we'd love to know what you think

Amazon Aurora PostgreSQL (Geospatial Data) https://builder.aws.com/content/3G0Khl41WBRe2i2SjcINBrl5fQG/amazon-aurora-postgresql-database-geographic-information-primer

Amazon Aurora DSQL (Social Graph Data) https://builder.aws.com/content/3G3vUu15KTvNU936pljv3g1kkWP/amazon-aurora-dsql-primer-distributing-a-social-graph

Amazon DynamoDB (Event Layer) https://builder.aws.com/content/3G9sHoHrORAD8O3Owgw6OGpRkGB/amazon-dynamodb-primer-event-layer-database

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