Inspiration
Honestly, this project started from a place of frustration. I was looking at crowdfunding platforms and just felt like something was... off. You see these amazing creators with brilliant ideas, but then the platforms themselves take a big cut, sometimes as much as 5% or 10% in fees. It felt like a tollbooth on a road to a dream.
And then there's the waiting. Creators would have to wait 30 or even 60 days to get their own money. It just seemed unfair and slow. I also felt bad for the donors, who give their money based on trust and have no real say or transparency after they've donated.
I just kept thinking, "Couldn't this be better? What if I could use technology to get rid of the middleman?" I'd been learning about blockchain and Polkadot, and it clicked. I could build a platform that was transparent, where the rules were code, and where I didn't have to charge those high fees. That's really where the idea for DotNation came from—just a desire to build something fair.
What it does
So, I built DotNation. It's my attempt to fix the problems I saw. At its heart, it's a crowdfunding platform built on the Polkadot blockchain, but it has a few special features I'm really excited about.
First off, I'm proud to say it has 0% platform fees. I just wanted to build the tool and let creators keep the money they raise.
Here's a simple breakdown of what it does:
It's Safe and Automatic: I use something called a "smart contract" (which is just code that runs on the blockchain) to act as a safe. When you donate, your money goes into this safe, not to me or the creator. If the campaign is successful, the safe automatically sends the money to the creator. If it fails, it automatically refunds everyone their money. No waiting, no manual process.
Gives the Community a Voice (Quadratic Funding): This is one of the parts I love most. I worried that a single wealthy donor could just fund a whole project, overshadowing what the community actually wants. So, I built in a system called "Quadratic Funding."
It's a fancy name for a simple, democratic idea. It uses a math formula to make small donations from many people count for more than one big donation from one person. The formula looks like this: $$ \text{Match} \propto \left( \sum_{i=1}^{n} \sqrt{\text{donation}_i} \right)^2 $$ All it really means is that a project with 100 small supporters will get a much bigger boost from a matching pool than a project with just one rich backer. It helps ensure the most popular projects get the most support.
Keeps Creators Accountable (DAO Voting): To solve the trust problem ("Will they actually build it?"), I added a milestone system. Creators have to break their project into steps (like "Step 1: Design," "Step 2: Build," etc.). Donors' money is held in the safe, and it's only released one step at a time, after the donors vote to approve that the work was done. It gives donors real power and holds creators accountable.
Helps with the Hard Parts (AI Helper): I know that not everyone is a great writer. So, I connected Google's Gemini AI to the platform. It can help creators write a catchy title or a clear description for their campaign. It also tries to spot potential red flags in new campaigns to help protect donors.
How I built it
This was definitely a journey! I built DotNation in three main parts that all talk to each other.
The "Trust Layer" (The Smart Contract): This is the core. I wrote it in a programming language called Rust using Polkadot's ink! framework. I chose Rust because it's known for being really safe, which is a must when you're handling people's money. This is the part that handles the fund-safe, the refunds, and the DAO voting logic.
The "Brain" (The Backend): This is a server I built using Node.js. It doesn't touch any money. Its main job is to talk to the AI (Gemini) to help write campaign text. It also has some safety features, like a CAPTCHA to stop bots and rate limiting so it doesn't get overwhelmed. I used Redis to help it run quickly.
The "Face" (The Frontend): This is the website you actually see and use. I built it with React and Vite to make it feel fast and modern. I used Tailwind CSS and Chakra UI to handle the design and make sure it looks good on both phones and desktops. This part talks to your Polkadot wallet (using Polkadot.js) so you can donate, and it also listens to the smart contract for updates (like "Campaign successful!").
I used GitHub Actions to automatically test my code every time I made a change, which saved me from a lot of headaches.
Challenges I ran into
Oh, I ran into a lot of challenges.
The biggest one, by far, was the smart contract. When you put code on the blockchain, it's pretty much permanent. I was terrified of shipping a bug. I kept asking, "What if I find a mistake? Or what if I want to add a new feature, like my DAO voting, later on? Do I have to start all over?"
This led me down a rabbit hole of learning about something called the "Proxy Pattern." It was really tricky to figure out, but it's a way to separate my "logic" (the rules) from my "storage" (the campaign data). It means I can update the rules or fix a bug without breaking all the existing campaigns. Getting this to work was probably the hardest part of the whole project, but it was so important.
Another challenge was just efficiency. If a partner wanted to create 50 campaigns, I didn't want them to have to send 50 separate transactions. I had to figure out how to "batch" them, letting them create many campaigns in one go. This took a lot of tweaking to get right and make sure it was still gas-efficient.
And, of course, I'm always thinking about security. How do I stop bots from spamming the AI? That's why I had to build the multi-captcha system and rate limits, which was a new challenge for me.
Accomplishments that I'm proud of
Honestly, I'm just proud I got it to work! This was an ambitious idea, and seeing it all come together is an amazing feeling.
- I'm really proud of the 0% fee model. I stuck to my original inspiration and built something for the community, not to profit from it.
- Figuring out the Quadratic Funding and the DAO Milestone Voting and getting them to work on-chain felt like a huge win. These are complex ideas, and translating them into safe, working code was a massive accomplishment for me.
- I'm proud of the 108+ test files I wrote for my smart contract. It sounds boring, but it means I was serious about making it as reliable as I possibly could.
- The fact that I figured out the Upgradable Contract (Proxy) Pattern is a big one for me. It gives me confidence that the project can grow and evolve.
- And finally, I'm proud that I made the whole thing deployable for free on services like Vercel and Render. It means anyone can take my open-source code and run their own version of DotNation, which is a really cool thought.
What I learned
I learned... a lot. More than I could have imagined.
I learned how to write secure smart contracts in Rust and ink!, which is a completely different (and much scarier!) world than web development. I learned about advanced blockchain architecture like the proxy pattern.
I learned how to integrate a powerful AI like Gemini and build a secure backend to manage it. I got much better at building modern, fast, and user-friendly React apps.
But mostly, I learned about persistence. There were so many times when I was stuck on a bug or a complex piece of logic and wanted to give up. Learning to push through that, ask the right questions, and find a solution was the biggest lesson of all.
What's next for DotNation
I have so many ideas! I feel like I've built a really strong foundation, and now I want to build on top of it.
My next big idea is to add NFTs as donation rewards. So, if you donate to a campaign, the creator could send you a cool, unique NFT as a "thank you." I've already started working on this part.
After that, I really want to make it cross-chain. Right now, it's on Polkadot, but I want to use Polkadot's XCM technology so that people can donate from other blockchains too. The goal is to make it as open and accessible as possible.
Long-term, I'd love to build a mobile app, add a way for people to donate with regular credit cards (a "fiat on-ramp"), and just keep making it a better, more helpful tool for creators and communities everywhere. I'm excited to see where it goes.
Log in or sign up for Devpost to join the conversation.