This is a submission for [Weekend Challenge: Generosity Edition]
What I Built
I built KINDCHAIN — a platform based on a simple idea:
One good deed shouldn't end with you.
KINDCHAIN is a generosity chain where people can ask for help, offer help, and pass kindness forward.
There is no money involved. Instead, people can give:
- Knowledge — teach someone a skill, explain a concept, mentor them, or share what they know.
- Time — help someone with a task, guidance, or a favour.
- Resources — share useful books, PDFs, videos, GitHub repositories, links, or other resources.
The interesting part is what happens after someone receives help.
Instead of repaying the person who helped them, they can help someone else. This creates a chain of generosity:
Person A → helps Person B → Person B helps Person C → Person C helps Person D
The goal isn't to track money or donations. It's to make the impact of kindness visible.
KINDCHAIN can show how far a single act of kindness travelled — for example:
Your kindness travelled 3 generations.
Everyone can participate from both sides. You can ask for something you need, or you can help someone else.
The core flow is:
Need → Match → Help → Confirm → Chain → Pass it forward
I wanted to build something that makes generosity feel less like a transaction and more like a movement that keeps going.
Demo
Live Demo: https://kindchain-one.vercel.app/
The landing page introduces the three main ways people can contribute: sharing knowledge, lending their time, and giving useful resources.
To try it:
- Enter your name and email to join.
- Explore what people need / Create your request from one account and help from the another to understand how the flow goes.
- Choose something you can help with.
- Complete the act of kindness.
- The recipient confirms that they received the help.
- The act becomes part of the generosity chain.
- Share KINDCHAIN with someone else and keep the idea moving.
Code
GitHub: [https://github.com/sai1505/kindchain]
The project is built as a Next.js application with TypeScript, Tailwind CSS, and Supabase.
How I Built It
I built KINDCHAIN with:
- Next.js — application framework and routing
- TypeScript — type-safe application logic
- Tailwind CSS — UI and responsive styling
- Supabase — PostgreSQL database and file storage
- Vercel — deployment
The database is centered around three main concepts:
Users
People participating in the KINDCHAIN community.
Needs
A request for something a person needs — knowledge, time, or resources.
Acts
The actual generosity connection between the person helping and the person receiving help.
An act starts as pending and can be confirmed by the recipient. Once confirmed, it becomes part of the verified generosity chain.
One of the design decisions I cared about was keeping the experience simple. I didn't want to build another donation platform, crowdfunding site, or volunteer directory.
Instead, the platform focuses on a very small loop:
Someone needs something → someone helps → the recipient confirms it → the kindness continues.
For resources, the idea is intentionally flexible. A person can share things like YouTube videos, PDFs, GitHub repositories, articles, or other useful links rather than restricting generosity to monetary donations.
The project is also designed so that the real-world act of helping can happen outside the platform. KINDCHAIN records the connection and confirmation rather than trying to turn kindness itself into a transaction.
Prize Categories
KINDCHAIN is not submitting to the Snowflake, Solana, or ElevenLabs prize categories.
Why KINDCHAIN?
A lot of platforms measure generosity in terms of money, donations, or transactions.
I wanted to explore a different question:
What if we measured generosity by how far it travels?
If someone spends 30 minutes teaching you Python, you don't need to repay them.
Maybe you help someone prepare for an interview.
That person helps someone find a useful resource.
That person teaches someone else a skill.
The original act keeps moving.
That's KINDCHAIN.
One good deed shouldn't end with you.
Top comments (0)