2 min read
My Webapp Tech Stack
July 1, 2019
In this post I am going to present you my personal tech stack for web development. I want to tell more about the technologies and methodologies I am using to build web applications. In that sense it would be glad if you share your stack and methodologies in the comment section.
My technology-independent methodology and approach to software development:
- Web apps over native apps (aka progressive web apps)
- The twelfe-factor app
- Serverless compute manifesto
For every layer of a modern web application I focus on one technology.
UI Framework: React
React is the most popular user interface framework. Whereas Angular dominates the enterprise domain, React is the first choice for consumer apps.
UI Components: Material-UI
Material-UI unites Google’s design principles and React’s versatile components. Designing components and implementing a visual design that adheres to best practices has become a major challenge. Using Material-UI components makes it trivial to build an attractive UI within a short amount of time.
Client State: Apollo Client
Apollo is a GraphQL implementation. The Apollo client makes it easy to manage the local state of a React app.
Backend: Apollo Server
Apollo provides the flexibility and versatility required for designing and implementing complex APIs. The schema language makes it easy to define a solid and coherent data model. Whereas resolvers offer the necessary flexibility to connect the schema to the business and persistence layer.
The NoSQL approach has become outdated. However, if you design the schema with GraphQL there is no need in applying a schema to the database.
Platform: Zeit Now
Zeit’s Now offers serverless deployments with little overhead for configuration. It supports monorepos and makes deployments automatically globally available.
DB Platform: mLab
mLab is the most popular MongoDB hosting platform. I especially appreciate their sandbox plan.
Package manager: yarn
Auth Token: JSON Web Token
App Config: dotenv
Categories: Web development