Inspiration
Just a few months ago, when Microsoft experienced a global outage due to a new Windows update, we saw firsthand how it brought the world to a halt — impacting airports, grocery stores, and hospitals alike. This incident got us thinking about our heavy dependence on global tech giants like Microsoft, Google, Meta, and Amazon, and how risky this dependency is. If Amazon decided tomorrow to hike AWS prices by 50%, what could we realistically do (other than risk bankruptcy)?
This led us to consider alternatives to a centralized internet, which is when we came across IPFS. After exploring IPFS for a few months, we discovered both its potential and some areas for improvement. For example, while IPFS enables decentralized data storage, it doesn’t offer much control over data access. Any data we push to the network is distributed, and anyone with the CID can access it. If a CID were leaked, it could become a security risk. This motivated us to delve into the field of decentralized web technologies, with IPFS at its core.
Attached are a couple of random quotes from one of my favorite shows, Silicon Valley, which aligns well with our vision:
"I don't know about you people, but I don't want to live in a world where someone else is making the world a better place better than we are." — Richard Hendricks
"The future is decentralized; it's not about the pipes, it's about the endpoints." — Gilfoyle
What it does
Our platform's two core features are robust data protection and empowering users with control over their own data.
For data protection, we’ve implemented best-in-class encryption algorithms to secure all outgoing data. This means that even if a CID (content identifier) gets leaked, our data remains safe. For user control, we allow users to request files from one another, so they can manage who has access to their data (a slight touch of centralization in a decentralized framework). Additionally, we maintain a public pool where users can share files intended for public good, with no permissions required to view them.
All of this comes together in a single platform—fascinating, isn’t it?
How we build it
After thorough research and hands-on experience in the IPFS space, we realized that resources for newcomers are limited, especially for tools with real functionality. Then, we discovered Pinata, which offers straightforward APIs for pinning services—a real game-changer. With Pinata handling the heavy lifting of pinning, we could focus more on our core encryption features without getting bogged down by infrastructure concerns.
We divided our work into two main modules: frontend and backend. A key decision was to route all API calls to Pinata and our centralized database (Supabase) exclusively through the backend to prevent key exposure. Supabase also enabled user authentication, streamlining our login setup, which gave us the momentum to dive into other features.
The journey wasn’t without challenges. We spent days researching encryption algorithms in the Crypto-JS library, discussing SQL vs. NoSQL for data storage, selecting our color scheme, debating our tech stack, and more. After months of collaboration, sweat, and perseverance, we finally created a polished prototype. Building this required expertise across multiple technologies: backend (Node, TypeScript, Pinata, Supabase) and frontend (Vite, React, TypeScript, ShadCN)—a true full-stack effort.
Challenges we ran into
Any journey without challenges would be boring, and calling this one “smooth sailing” would be far from the truth. We definitely hit a few bumps along the way—balancing college classes, exams, and vivas while tackling technical obstacles was a challenge in itself.
On the technical side, implementing encryption in a decentralized setting presented some unique hurdles. We spent considerable time testing encryption algorithms in Crypto-JS, ensuring both security and performance met our needs.
Another challenge was optimizing API interactions with Pinata while keeping everything efficient and secure. Working with Supabase also brought its own learning curve; setting up centralized user authentication while striving for a decentralized experience was a tricky balance. Deciding between SQL and NoSQL databases involved lengthy discussions.
Front-end decisions, like choosing the right color scheme and integrating Vite, React, and ShadCN, were equally challenging, especially as we strived for a responsive, user-friendly design. Throughout it all, we juggled managing multiple tech stacks, mastering both back-end (Node, TypeScript, Pinata, Supabase) and front-end tools—each requiring a deep dive to get things just right.
In the end, every challenge pushed us to learn and grow, and it’s rewarding to look back at what we’ve built
Accomplishments that we're proud of
One of our biggest accomplishments is creating a functional prototype of Suraksha Setu that combines decentralized data storage with practical encryption and user control—a challenging combination. Successfully implementing encryption that aligns with IPFS's decentralized nature was no small feat. We’re proud of finding ways to allow secure file sharing and access control while ensuring data safety, even if CIDs are unintentionally exposed. Additionally, integrating Supabase for authentication gave us a seamless login experience, bridging centralized and decentralized components effectively. The final product reflects a harmonious blend of innovative tech with thoughtful user control, something we’re excited to see in action.
( Also adding a qr code for public files is one of Feature no one asked for :) )
What we learned
Building Suraksha Setu taught us valuable lessons about decentralization and security. We learned the importance of balancing control with privacy in a decentralized context, especially when leveraging IPFS. Delving into encryption protocols expanded our understanding of data security, particularly as we explored options in Crypto-JS and evaluated their impact on network efficiency. The journey also showed us the complexities of API management, like optimizing calls to Pinata while avoiding key leaks. Working with Supabase introduced us to new patterns in centralized authentication, and our SQL vs. NoSQL debates taught us the intricacies of database design for scalable applications. Also time management , communication and how to do meaningful commit messages.
What's next for Suraksha Setu
Moving forward, we’re eager to gather feedback on our prototype, as we recognize the value of mentorship in guiding our next steps. While we can handle caching and local state management effectively, we’re unsure about the broader direction for the product at this stage. We are open to all suggestions and insights that could help us refine our approach and explore potential avenues for growth. Engaging with the community and industry experts will be crucial as we look to navigate the future of Suraksha Setu.
Built With
- axios
- cryptojs
- dotenv
- express.js
- multer
- node.js
- pinata
- react
- recharts
- shadcn
- supabase
- tailwind
- typescript
- vite
Log in or sign up for Devpost to join the conversation.