This is a submission for the Build Better on Stellar: Smart Contract Challenge : Build a dApp
What I Built
It's been almost ten years since some friends and I proposed a crazy idea about building "PrettyTendr", a beauty loyalty program on a blockchain. At the time we were intrigued by the possibility of rewarding tokens in exchange for knowledge sharing around products and community engagement. I was also a self-taught junior developer at the time and building an MVP for a concept so complex felt entirely out of reach. Imagine how thrilled I was to see this challenge and learn about the Soroban platform.
I set out to demonstrate the basic functionality of the dApp by implementing a smart contract that rewards users for completing a profile, one of the many engagement and personalization possibilities for the program. The dApp also sends the user a custom asset called PT in exchange for engagement. PT is intended to be eventually exchanged for product samples, access to exclusive events and more.
Demo
Live: https://bcrebel.github.io/prettytendr/
My Code
Github: https://github.com/bcrebel/prettytendr
Journey
As a front-end dev that codes exclusively in JavaScript I was definitely intimidated by Rust. I decided to start with the Stellar Smart Contract Tutorial project, which was a great introduction to a complex topic. In addition to broadening by backend programming knowledge, I also learned about new front end tooling through their example project. I never worked with Astro before and it was a great opportunity to experiment with the partial application of React and to think critically about the specific interactivity and performance requirements on each app page. I was also impressed with the built in Accessibility audit. TailwindCSS compatibility was a plus because I can't do rapid prototyping without it. One thing to note though is that Astro is incompatible with React Context, and I found that out the hard way. I was so excited when I found the soroban-react package and then totally bummed when I realized that it relied on Context!
The Stellar Discord channel was my favorite resource for researching obscure contract and transaction related errors. I was also blown away by the visualizations in https://stellar.expert. I plan on iterating on my MVP dApp, continuing to learn Rust fundamentals, and practicing with Smart Contracts until they feel like second nature. I also plan to brainstorm ways to improve the user experience for those who are unfamiliar with dApps.
Top comments (0)