Inspiration
Think about the last time someone did something nice for you: held a door, shovelled your walk, paid for your coffee. It probably stuck with you, and later you did something kind for someone else. Kindness gets passed along, person to person. Research from Harvard and UC San Diego (Fowler & Christakis, 2010) found that one generous act can spread up to three people down the line.
But none of us ever get to see that. You never find out where your good deed went, or how far it travelled. We built Kindred Link to make kindness in your community visible, and easy to pass on.
What it does
Kindred Link turns acts of kindness into chains on a map of your neighbourhood.
- Start a tree: do something kind, describe it, add a photo if you like, and pin it to where it happened.
- Pass it on: open acts show up on the map for people nearby. Claim one within 2 km, then you have 12 hours to do your own kind act and post it. Each act can be continued by two people, so a single act branches into a tree.
- Watch it grow: "My tree" draws your tree outward from your own act, so you can see how far one small choice travelled. A weekly recap shows your longest ripple, your biggest tree, and photos from the people who carried it on.
- Local businesses: partner businesses appear as bubbles on the map that grow as more kindness happens around them, and you can check in with a QR code at the counter.
Privacy is built in: public pins are snapped to a 250 m grid and jittered, so nobody can see exactly where someone was. Photos are screened automatically before anyone else can see them. Sign-in with Google is optional; without it, your acts belong to your phone.
Why it matters
- Social connection: every pin is a real act by someone in your neighbourhood, people you'd normally just walk past. A tree connects strangers through something good.
- Health: you can only pick up an act near you, so passing it on is a good reason for a short walk outside.
- Well-being: doing kind things makes the giver happier too, not just the person receiving it. The weekly recap is the "look what you did" moment that makes people want to do it again.
- Community: local businesses join in, so the small shops in your neighbourhood become part of the ripple.
How we built it
- App: React Native with Expo and TypeScript, one codebase for iPhone and Android. Maps use react-native-maps with Apple Maps on iOS and a custom-styled Google map on Android.
- Server: Spring Boot (Java 21) with PostgreSQL, deployed on Render with Docker. It enforces the game rules: two slots per act, the 2 km claim radius, the 12-hour window, and trees closing after 7 days.
- Photos: uploads are cleaned and screened with Google Cloud Vision SafeSearch; anything uncertain is held back instead of shown.
- Sign-in: optional Google sign-in through Clerk.
- Android builds: installable APKs through EAS Build.
Challenges we ran into
- Keeping the map honest and readable at the same time: exact locations are private, but the map still has to feel alive. We blur pins on the server and space out open acts on the client so they don't pile on top of each other.
- Getting a two-day-old codebase from laptops onto a real server: Docker, a hosted Postgres database, and pointing every phone at it.
- Animating maps smoothly on iOS, where lines that change every frame don't redraw reliably. The "My tree" animation draws each link in short pieces instead.
Accomplishments that we're proud of
A team of strangers shipped a working app with a live shared server, real photos, privacy protections, and a map that draws your kindness as it spreads, in under two days.
What we learned
How to split a project cleanly between an app, a server, and a map layer so five people could work in parallel, and how much small design choices (blurring, spacing, timing) change how trustworthy an app feels.
What's next for Kindred Link
A real pilot here in Calgary, a report button and spam limits, notifications when someone continues your act, and more languages so newcomers can join in too.
Kindness already connects us. We just made it visible. Pass it on.
Use of AI
Team members used AI coding assistants (including Claude Code) to help write, debug and review parts of the app and the deployment setup. Every change was reviewed and tested by the team, and we can walk through all of the code.
Built With
- apple-maps
- clerk
- docker
- expo.io
- google-cloud-vision
- google-maps
- java
- postgresql
- react-native
- react-native-maps
- render
- spring-boot
- typescript