DEV Community

Cover image for Beauty on the Blockchain
Carron White
Carron White

Posted on • Edited on

Beauty on the Blockchain

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/

Engagement Options
Smart Contract Execution

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)