My Current Tech Stack

For almost a year now, I’ve been building Feld, a platform that enables creators to build apps in minutes and deploy them to mobile and the web in seconds.

It is an ambitious project based on the thesis that by using state-of-the-art technologies and frameworks and applying them very deliberately, I, as a single person, can build what previously would’ve been only possible for a whole team of engineers. The scope encompasses a cloud-based, serverless backend, a complex mobile app on the iOS and Android platforms, a CLI for developers, a web app, a landing page, and a documentation website.

With this post, I want to describe how I’m building all this. In my opinion, the main lever is that all of this can nowadays be written in a single programming language - TypeScript! I have a single repository (“monorepo”) managed with pnpm and Turbo that, according to my GitHub stats, consists of 94.7 % TypeScript, 3.1 % JavaScript (this are config files like `.eslintrc.js`), 1.9 % Velocity Template Language (soon to be replaced now that AWS AppSync supports JavaScript resolvers) and 0.3 % other languages (some CSS, some Markdown and YAML).

The backend is built through infrastructure as code based on the AWS Cloud Development Kit (CDK). It is deployed continuously through [AWS CodePipeline](https://aws.amazon.com/codepipeline/), and its main building blocks are:

- Amazon Cognito for authentication
- AWS AppSync for GraphQL API
- Amazon API Gateway for REST endpoints
- Amazon DynamoDB as the database
- AWS Lambda for serverless functions
- Amazon S3 for file storage
- Amazon Route 53 for DNS
- Amazon CloudFront as CDN

The mobile app is built with React Native using Expo, and Relay is used as the data layer, while the CLI (for creating and deploying the apps) is built on the oclif CLI framework.

The landing page is built with Remix and Tailwind CSS and served via Amazon CloudFront and Lambda@Edge, while the documentation is based on Docusaurus.

If you’re interested in following my progress, please head to feld.app to sign up for the waitlist or follow me on Twitter, where I’ll share regular updates about what I’m building and how I’m doing it.