The Journey and Technical Choices of a Two Person App Development Team (as a side project)

“silver MacBook Pro on white table” by rawpixel on Unsplash

Mission / goal

Working on a side project by yourself (or on a small team) can be daunting at times. It’s all too easy to feel like you’re not making any real progress on features or bug fixes, and then you have to apply a security patch to your server, deal with a broken CI environment, handle something that went sideways with your database, or otherwise switch gears into something that may not be your speciality. All of that, while important, keeps you from your ultimate goal of creating something amazing.

In this series, I’m going to delve as in-depth as I can into the decisions we’ve made for the journey of our side project; the core tenants of which being cost, ease of maintenance / setup, and speed to implement.

Technology choices

Each of these decisions can be quite expansive and contain a lot of competitors and options. As such, I’m going to be writing them independently so they can each get the attention they deserve.

  • Code management | GitLab
  • Project management and work tracking | Airtable
  • CI / CD | GitLab
  • Design and feature validation | InVision / InVision Studio¹
  • Cloud / central storage| Cloud Firestore
  • Back-End services and processing | Cloud Firestore
  • Package manager and script runner | Yarn
  • Code Editor | Visual Studio Code
  • Code style and formatting| ESLint, Prettier
  • Mobile development | React Native
  • Local data management| Redux, React Redux Firestore
  • Form / input and data management | Formik, Yup
  • Testing framework | Jest
  • Type system | TypeScript
  • Beta testing / deployment systems| TBD
  1. Disclaimer: I currently work at InVision on the Studio product team.