Inspiration
My friend Jimmy is really into watches, and this summer I got hooked too. After seeing creators build custom watches from parts on sites like AliExpress, we realized it’s hard to visualize the final design when parts are listed separately. We wanted a tool to let users compose watch parts visually, share builds, and grow a community library. With affiliate links, the site can stay free.
What it does
- Part library: Movements, cases, dials, hands, crowns, and straps uploaded by anyone.
- Canvas preview: Combine parts to see the finished look before buying.
- Shareable builds: Publish and share builds with unique links.
- Product links: Add store or affiliate links to each part.
- Community growth: Every upload expands the global library of parts.
How we built it
- Frontend: React, Vite, Tailwind (clean reusable components).
- Backend: Flask with Flask-RESTful.
- Auth: Google OAuth (Authlib + OIDC).
- Database: PostgreSQL with tables for users, parts, builds, and movement types.
- Storage: Local presigned-style PUT uploads, S3-ready.
- Data model: Users, movement_types, movements, cases, dials, straps, hands, crowns, builds.
Challenges we ran into
- Time constraints led to rushed development and minor bugs.
- Parallel development caused merge conflicts.
- Ensuring user records existed before part or build creation required careful sequencing.
Accomplishments that we're proud of
- Complete flow: Google login -> upload -> build -> publish.
- A clean, S3-compatible upload system for future scalability.
- Flexible schema ready for community and vendor expansion.
What we learned
- Always upsert users on login to prevent foreign key issues.
- Ship a working core first, then polish later.
- Clear division of ownership reduces merge pain and improves efficiency.
What's next for TimeTailor
- Real S3 storage and CDN integration.
- Improved compositor with drag, snap, and alignment tools.
- Search and filters by size, brand, and movement type.
- Part moderation, vendor badges, and trust systems.
- “Buy parts” bundles with affiliate tracking.
- Mobile UI optimization and performance upgrades.
Built With
- flask
- postgresql
- python
- react
- tailwindcss
Log in or sign up for Devpost to join the conversation.