Inspiration
PB Dash was born out of a personal need as a keen user and big fan of the Concept2 Rowerg machine. While the official Concept2 Logbook data is awesome, there wasn't an easy way to track annual or season Personal Bests (PBs) – the main site only showed all-time PBs unless you manually downloaded season-by-season data to DIY it. This gap inspired the creation of PB Dash.
What it does
PB Dash provides an easy and automatic way to track and visualize your Concept2 rowing, biking, and skiing activities. It connects directly to the Concept2 logbook API to automatically import your workout data.
Key features include:
- A clear table displaying your all-time PBs.
- The ability to filter PBs into specific seasons.
- Detailed drill-downs for specific events (e.g., a 2k row), listing all your times for that distance.
- Interactive charts showing performance trends, highlighting both all-time and seasonal bests.
- Analyze pace progression for every workout to gain insights and reach your fitness goals.
How I built it
PB Dash is built with a modern web stack. The backend is powered by Firebase. The frontend leverages React and TypeScript for robust component-based development, styled with Tailwind CSS for rapid and responsive UI creation. Charting and data visualization are handled by the powerful Nivo library. The application is hosted on Netlify.
Challenges we ran into
As a no/low coder, one of the significant challenges was grappling with authentication and the complex data transformations required. This involved converting raw Concept2 API information into the precise PB statistics displayed in the app. There were moments of being stuck, but a step-by-step approach to error messages and patient assistance by Bolt helped in troubleshooting.
Accomplishments that i'm proud of
I'm particularly proud of the effort put into making the mobile version as solid as possible, recognizing that data visualization, though primarily suited for desktop, needed a strong mobile experience. A significant accomplishment was the extensive testing with the Concept2 developer API using fake users, which built confidence to finally switch to production data. Finally seeing my personal Concept2 activities flow into the app was a big moment.
What I learned
This project provided a deep dive into databases, which were previously a mystery, leading to a much better handle on architecture and troubleshooting. A key learning was the importance of discipline: trying not to get distracted by adding extra features before solidifying the core functionalities.
What's next for PB Dash
The immediate next step is to enable users to create and export/share a variety of cool personalized images based on their personal PB data. This feature is already partially working and is targeted to go live in July. While PB Dash was initially built to fix a nerdy personal need for my own rowing activities, the hope is that other Concept2 aficionados will also find it incredibly useful.
Built With
- firebase
- netlify
- nivo
- react
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.