Analog workout logs (paper journals, printed sheets, etc.) are great for staying focused during workouts and providing a tactile experience. However, they can be difficult to organize, analyze, and track progress over time. On the other hand, digital workout logs (apps, spreadsheets, etc.) offer powerful organizational and analytical capabilities but can be distracting and lack the tactile experience of writing by hand.
When planning for this project, I identified the pros and cons of analog and digital workout logs.
- Tangible and easy to access without technology.
- Encourages mindfulness and focus during workouts.
- No risk of data loss due to technical issues.
- More flexible to reordering or restructuring workouts on the fly.
- Prone to physical damage or loss.
- Limited space for notes and tracking progress.
- Difficult to analyze data over time.
- Easy to store and organize large amounts of data.
- Facilitates data analysis and progress tracking.
- Accessible from multiple devices.
- Requires technology and may be less accessible in certain situations.
- Potential for data loss due to technical issues.
- Can be distracting if not designed well.
- May lack the tactile experience of writing by hand.
- Easy to be distracted by notifications or other apps.
The pros of both analog and digital workout logs are appealing, and I aimed to create a solution that combines the best of both worlds.
PaperWeight allows you to complete analog workout logs, and then upload them to a digital platform for easy tracking and analysis. This way, you can enjoy the tactile experience of writing by hand while still benefiting from the organizational and analytical capabilities of a digital system.
- Vue.js: Frontend framework.
- Vite: Build tool for frontend development.
- Typescript: Programming language for type safety and improved developer experience.
- Supabase: Database, authentication, and backend functions (Edge Functions).
- OpenAI API: For ADC (analog to digital conversion) of workout logs.
npm install
npm run dev
npm run build
npm run lint