Developing a Modern Full-Stack Application: Choosing the Right Tech Stack | Isaac's Blog

submited by
Style Pass
2024-04-02 16:00:02

I recently had the chance to develop a full-stack application from scratch, and I chose a very modern stack for it. I wanted to prioritize developer experience above all, in order to maximize my time spent on shipping, talking to users and iterating on the product.

I'll describe some of my motivations for those choices, and share my learnings for anyone else who is interested in using the same stack.

I was very excited about Typescript on the backend. Having first worked at a late stage startup with a very mature JRE stack (mostly Java and Kotlin) and then at scrappy early stage startup with a Python backend, the latter experience fully sold me on the need for static typing. I was intrigued about having a single language for the whole stack, as I didn't want to have to ramp up on two different languages after spending the last 5 years as a PM and crying in Jira. In addition, using a single language allowed me to share types and functions across the stack, and bring me to the promised land of end-to-end type safety.

That naturally led me to Typescript, given javascript on the client side is basically a must [1]. I loved how Typescript is a multi-paradigm language, as a convert to the joys of functional programming for data intensive tasks after using Java's Stream API. Typescript seemed to give me the same affordances without the verbosity of invoking the stream() and collecting to an Collections.unmodifiableList every time.

Leave a Comment