http://tbhbeyond.com (My App)
https://github.com/steelvoltage/tbhbeyond (Github Repo)
Back in November, when I first started programming I told myself I wanted to be able to make a site like D&D Beyond. As a huge tabletop RPG fan, I had no idea at the time that the site was built using React. I didn't even know what React was.
Fast-forward to this week, and I finished my first major React project, which is a site inspired by D&D Beyond. It allows you to create and manage your characters for another indie tabletop RPG called The Black Hack. Sure, this homage to D&D's site is at a much smaller scale. But, I'm only one person. I imagine their site has an entire team of devs behind it, based on the robust functionality.
Still. I can say I accomplished what I set out to do! Coding the site alone took well over a month. I didn't have any guide, other than my concept. The site was built using create-react-app and taps into Firebase for a back-end database and authentication. It's hosted on Netlify and I even purchased a domain for it.
I charged headlong into building it with functional components, the Context API for state, and hooks to tap into state and side-effects. There's even a custom hook called useAuth to pull down the user authentication information in there.
It's hard to summarize the multitude of lessons that this project taught me. But, I can say my confidence with React grew exponentially. If I had to pick the most valuable thing I learned, I would say it's simple perseverance. There were times where I felt overwhelmed, lost, and wanted to quit. But, banged my fingers against the keyboard and prowled Google for hours at a time, until I sorted my issues.
In the end, I shattered through the multitude of challenges the project presented and finished strong. And, much to my surprise, after sharing it on a few tabletop RPG groups, I even got myself a few users!
Knowing that someone finds it useful and will use it alone makes it worth the effort.
To other beginners out there, if you're working on a project, don't give up. Get it done, pluck away at it whenever you can. Because, we're after this career to make cool things, and we should finish our cool things.