Modern Technologies for Your Next Software Applications

Trevor Heath
Novvum
Published in
6 min readSep 10, 2019

--

A review of our technology stack in 2019

Bright & shiny vs. old & proven.

As a software developer, it is easy to find yourself tussling with a choice between up and coming technology and proven go-to solutions. For most, sticking to what they are comfortable with is the easy option.

At Novvum, we build and design high-quality web and mobile applications for our clients. Therefore, we get the chance to test out new technologies, so you don’t have to. In this deck, I am going to share with you a few of the modern languages, frameworks, and services we really enjoy.

[*] As a note, I am not sponsored by any of these services and have chosen these technologies from personal experience.

What we will cover.

In order to keep this simple and organized. I will categorize each technology by the following topics. Feel free to jump ahead to any category.

  1. Frontend
  2. Backend
  3. DevOps

React & React Native

As frontend Javascript libraries, React & React Native provide developers to harness reusable components to build beautiful and intuitive applications. The community has skyrocketed and React has become the go-to frontend library for web applications. React Native has a few limitations but has established its self as a serious choice in the mobile app ecosystem.

Why we love it?

  • Active and extensive open source community
  • Flexibility of tools
  • Cross-training of developers
  • Mature and feature-filled

What it’s best for?

  • Any web application (R)
  • Mobile applications with limited native functionality (RN)
  • Native desktop applications

Who is using it?

  • Airbnb
  • Paypal
  • Facebook (R & RN)
  • Walmart (R & RN)
  • So many more…

NextJS

NextJS is a React framework that powers scalable and powerful web applications. With it’s most sought after feature being server-side rendering, NextJs provides a great foundation for high track static and dynamic web and desktop applications.

Why we love it?

  • Simplify serverside rendering
  • Excellent documentation
  • Features built for enterprise-grade applications
  • Dedicated contributors and maintainers

What it’s best for?

  • Static & Dynamic web applications
  • High traffic
  • Complex sites
  • Native desktop applications

Who is using it?

  • Trulia
  • Netlflix
  • Github
  • Starbucks
  • Hulu
  • So many more…

GatsbyJS

Gatsby is a static site generator for building fast web applications. It provides tools to build static, dynamic and progressive web applications. Utilizing GraphQL, which will be on the list later, Gatsby has created a unique way to manage site information, content and configuration details throughout your project seamlessly.

Why we love it?

  • Top-notch performance
  • Scales extremely well
  • Features to build complex content sites
  • Dedicated contributors and maintainers

What it’s best for?

  • Static content sites like blogs and news
  • Ecommerce
  • Custom company websites
  • Documentation and help desks

Who is using it?

  • Capital One
  • Nike
  • ReactJS Docs
  • Sendgrid
  • So many more…

ApolloClient

ApolloClient is a fast-growing open-source library that helps developers fetch data, cache results and manage UI updates. Primarily used with Javascript, ApolloClient can also be used with Android, IOS, Vue and more. When working with GraphQL, ApolloClient is the standard but it can support REST APIs with apollo-link-rest.

Why we love it?

  • Tested at scale
  • Excellent documentation
  • Features built for enterprise-grade applications
  • Dedicated contributors and maintainers

What it’s best for?

  • Applications using GraphQL
  • Applications with complex state management
  • Diverse ecosystem & available add-ons for enterprise

Who is using it?

  • New York Times
  • KLM
  • Express
  • Airbnb
  • So many more…

GraphQL

GraphQL is a querying language and runtime for building APIs. According to NPM (Node Package Manager), 23% of JS developers have already started using GraphQL while 49% of all NPM users are considering using it in 2019. GraphQL is about ready to boom and for good reason. This is not limited to Javascript, as other communities are trending in the same direction. It provides a declarative and flexible approach to data fetching that allows frontend and backend teams iterate independently.

Why we love it?

  • A top of the line developer experience
  • Excellent ecosystem and community
  • Helps you keep up with fast product iterations
  • Flexible across languages, frameworks

What it’s best for?

  • Applications need to iterate quickly
  • Disparate teams and complex company data structures
  • Unifying legacy API’s, services and databases

Who is using it?

  • New York Times
  • BMW
  • Facebook
  • Airbnb
  • So many more…

Prisma

Prisma is a modern database ORM and platform for managing complex database workflows. It is an excellent tool for building scalable, well-designed APIs quickly and efficiently. Our experience with Prisma has been excellent and we have found it lets us spend less time on database migrations and integrations and more time on new products and features.

Why we love it?

  • Excellent ecosystem and community
  • Thorough documentation
  • Fast to launch new features and fixes
  • Abstracts complexity elegantly

What it’s best for?

  • Multiple databases and data sources
  • Complex APIs (GraphQL, GPrC, REST, etc.)

Who is using it?

  • Adidas
  • LabelBox
  • HyreCar

PostgreSQL

PostgreSQL, although not brand new, is quickly taking over modern infrastructures as the go-to object-relational database. Postgres provides an abundance of data types and makes storing complex data structures easier than its competitors. Also, it provides plenty of functions and querying features that are extensible and reliable.

Why we love it?

  • Scalable
  • Excellent ecosystem and community
  • Powerful, yet reliable
  • Great for future-proofing

What it’s best for?

  • Complex operations
  • Stability and data integrity
  • Evolving functionality and data requirements

Who is using it?

  • Goldman Sachs
  • BMW
  • Apple
  • Cisco
  • So many more…

GitLab

GitLab is a fast-growing all in one platform for the development operation lifecycle. With built-in repo manager, CI/CD, Security pipelines and other key features, Gitlab provides a seamless development management system for small and large teams. GitLab has become one of the best alternatives to Github and Bitbucket.

Why we love it?

  • Open-source license
  • Excellent ecosystem and community
  • All in one feature suite for DevOps
  • Flexible across languages, frameworks and cloud services

What it’s best for?

  • Large and small development teams
  • Complex CI/CD workflows
  • High stakes testing and security workflows

Who is using it?

  • NASA
  • Sony
  • ING
  • EA
  • So many more…

Serverless

Serverless is an application framework that helps manage serverless deployments on Azure Functions, AWS Lambda, and other cloud services. Serverless (the framework) streamlines your team's configuration, deployment, testing, and monitoring, so you can focus on development.

Why we love it?

  • Simplify serverless workflows
  • Vendor agnostic (8 different cloud providers)
  • Strong community and documentation

What it’s best for?

  • Complex Lambda function deployments
  • Event gateways for event-driven architecture
  • Data processing and automation

Who is using it?

  • Coca Cola
  • Expedia
  • Reuters
  • Nordstrom

AWS Amplify

Not only a DevOps tool, AWS Amplify is a comprehensive library for building sophisticated cloud-powered apps. Amplify provides a powerful toolchain that helps developers build with AWS services and products. By abstracting away the complexity of each individual service, Amplify provides a one-stop shop for deployments, servers, and even UI components and tooling.

Why we love it?

  • Get up and running quickly
  • Simplify complex AWS configurations
  • Scalable and backed by AWS services

What it’s best for?

  • Fullstack developers building quickly
  • Deployment of modern applications and APIs
  • Complex functionalities out of the box

An everchanging ecosystem

Building software applications can be a tall task which means new services, frameworks and languages are always being introduced to make it easier. New services, frameworks, and languages are introduced all the time in software development. The ever-changing ecosystem can be hard to keep up with. Hopefully, you found this helpful.

If you have any projects or services you are excited about, please share!

Need help building or modernizing your web or mobile applications using one of these technologies?

Our team would love to help. Check us out at novvum.io

--

--