Tech Stack 2024
Once Upon is growing. We need to have a technology stack that empower us to solve the fun and creative challenges ahead, while still delivering a solution that scales with the ever growing number of Once Upon users. We are always looking for the most suitable programming languages, frameworks, services or tools to use so this document is a work in progress.
A brief history of the tech stack
The app was initially built in React Native using Javascript, supplemented with a backend written in Laravel using PHP. To make sure that the physical and digital product looked the same our initial solution was to create the images and PDF’s on the device using a native canvas. This meant that there would be some differences between books created on Android and iOS but as we initially did not have any collaboration we did not see it as a big drawback. As the momentum grew we added users and authentication using Firebase and naturally continued by implementing collaboration using a Firebase Realtime Database. Working with the new layout engine we tried out AWS Lambda and step functions and found we liked it more than the alternatives so we are slowly moving more and more things on to AWS; pulling apart the Laravel monolith and moving on to serverless solutions to be able to scale with our users.
Our web presence was first a quickly thrown together React app that was then superseded with a Wordpress site that we hired an external company to produce. While it was fit for purpose as a support hub it couldn’t really hold up for our future plans and ideas and as we could hire more developers we finally had the resources to re-do the site to our liking in 2021. The new web went back to the React roots using Next with a Storyblok CMS and hosted on Vercel.
We have found that Typescript has matured into a good option in many areas of our system, so that is what we most often choose when starting something new.
Frontend
App
Languages
Javascript
Typescript
Swift
Java
Kotlin
Technologies
React
React Native
Apple sign in
Google Photos
Web
Languages
Typescript
Technologies
Next.js
ISR (Incremental Static Regeneration)
CSR (Client-Side Rendering)
Sass
Jest
Builder.io
Vercel
Sentry.io
Backend
Languages
Javascript, Typescript, Node.js
PHP, Laravel
Infrastructure
AWS Lambda
AWS Step Functions
AWS Batch
Firebase Storage
Firebase Realtime Database
Firebase Cloud Functions
CI/CD
Github Action
Fastlane
Tools / Dependencies
Stripe
Eslint
Prettier
Detox
Lokalise
Storybook
Chromatic
Puppeteer
Data / Analytics
Google Cloud Platform including BigQuery
Firebase Analytics & Google Analytics
Stitch, Fivetran
dbt Cloud
Steep, Looker Studio
Firebase Crashlytics