-
-
Homepage hero section
-
Bag Manager with view of all discs
-
Bag Analysis - changes based on how you've build your bag
-
tooltip
-
Desktop view of the CTA footer
-
Mobile view of my bag shows discs with clickable elements
-
Mobile view of a disc swapping feature with close match flight numbers
-
Mobile view of swap entire bag and saving features
-
Mobile view of the Leaderboard
-
Mobile view of the Bag Analysis
-
Disc swapping feature try similar discs from different brands
-
Bag swapping feature - swap your whole bag to a different brand
-
Disc library with filter functions
-
Leaderboard function based on bag score
Inspiration
As a lifelong disc golfer (yes, frisbee golf!) and active member of the community, I’ve seen firsthand how often players experiment with new discs—constantly tweaking their bags in search of the perfect setup. With hundreds of discs out there, each with different flight numbers (speed, glide, turn, fade), it gets overwhelming fast.
I initially tried to build this functionality directly into DiscGolfDojo.com, but the setup was too complex and unsustainable. With new tools like React and Supabase, I finally had the pieces I needed to build it the right way.
What it does
Bag Manager lets disc golfers create and manage virtual "bags" of discs—ranging from their current real-world setup to experimental lineups. Users can simulate disc swaps, test how new molds complement their throwing style, and identify coverage gaps (e.g., no overstable midrange or missing distance driver). It supports multiple saved bags, cloning, and comparisons, making it ideal for planning tournaments or just exploring new setups. It also connects to a growing disc library and includes affiliate links to purchase discs directly.
How we built it
I used the disc database I’ve built over the past 8 years at DiscGolfDojo.com to seed the new system. I imported that data into Supabase using its table import feature. The app itself is built with React, with email delivery handled via Postmark. Stripe integration is built but not yet enabled. State management is lightweight, and components are optimized for both desktop and mobile.
Challenges we ran into
As typical, Bugs! As the project grew, so did the bugs. Layout issues on mobile vs desktop, modal behavior, and handling user interaction edge cases were constant hurdles, micro-refinements. Eventually, I realized that trimming down feature creep and focusing on a tight MVP helped stabilize everything. Leaning on experience from past projects made a huge difference.
Accomplishments that we're proud of
It’s actually fun to use—and my early testers agree. I was surprised at how quickly I went from idea to working beta. This has been one of my fastest builds from scratch, and I’m proud of how polished the core experience feels even before launch.
What we learned
KISS—Keep It Simple, Stupid—was my biggest lesson. I initially tried to do too much too fast. Once I focused on the essential functionality and cleaned up the user flow, everything got easier. Future features are great—but only once the foundation is solid.
What's next for Bag Manager By Disc Golf Dojo
Eventually, I’ll offer premium features through a small subscription. Swapping bags and creating multiple saved bags will likely be part of that. For now, everything is free during the beta so I can gather feedback and refine the experience. Looking forward to adding more discs and inviting more people in!
Built With
- authentication
- database
- framer-motion
- html2canvas
- javascript-(es-modules)
- lucide-react
- netlify
- playwright
- postmark
- postmark-api
- rc-slider
- react-18
- react-hot-toast
- react-router-dom
- restful-api)
- storage
- supabase-(auth
- supabase-javascript-client
- tailwind-css
- typescript
- vite
- vitest
- zustand

Log in or sign up for Devpost to join the conversation.