Smashing the perfect opening drive for Parfour
![A set of Parfour screens, featuring a golfer streaming from the driving range](/images/parfour-app-shots.png)
“We want to be the Twitch of golf!”
This was the goal of Parfour, to build a live streaming app specifically built for golfers, with the dream of being the place YouTube and TikTok golfers come first for sharing their video content. Lucky for Parfour, Kyle Anne knows a ton about Twitch, and I know a ton about golf. It was a great match of skills and passions.
The primary problem we faced was we were starting from scratch. Blank slate. Complete greenfield project. They knew they wanted to achieve the following:
- Mobile app for streaming and viewing
- Web app for viewing
- Look and feel should be consistent across platforms
These goals are right in our wheelhouse. We have years of experience building apps with cross platform consistency. In order to achieve this, we made the following decisions for them:
- We used a monorepo. One codebase that held both the web and mobile apps, as well as any packages we could use in both applications.
- Monorepos are great for updates. Less PR syncing when making full stack or cross platform changes. Enables you to move faster, something every start up needs.
- They’re also great for shared functionality. No need to publish private packages to share code across your apps.
- We chose TypeScript, and used ESLint and Prettier to aid in code consistency
- For web, we chose NextJS
- For mobile, we chose Expo
- Lastly, we chose Nativewind for a cross platform Tailwind CSS developer experience while building components and a design system
With this stack, we were able to rapidly iterate on components, pages, and screens, building out two complete applications in just a couple months. We were very happy with this setup and would gladly use it again on future projects.
Other ways we helped out
Parfour was such a new company that there were almost no processes in existence, so we helped them out where we could with that as well.
We implemented PR reviews, a Kanban board for task tracking, and weekly grooming sessions to update and remove tasks that no longer matched our new goals.
Additionally, we offered product insights where we could, both from a UI and a UX perspective. A particularly humorous moment I (Kyle) will never forget is when during a product discussion, there suddenly arose the fear that users wouldn’t be able to use the app while playing due to their golf gloves.
I assured them, that while golf gloves do inhibit the touch features of a phone, almost all golfers who wear gloves only wear a single one, typically on their non-dominant hand, while playing. Phew! Fear assuaged.
Sometimes it helps to have intimate knowledge of the product domain.