Tech Stack

Created 4/8/19; updated 8/14/19; originally titled "Tools"

This documents all of the technical tools I use to build applications. My current technology stack is composed of:

Front End


I particularly enjoy front-end web development because it allows me to operate simultaneously as a developer, designer, and product manager.

⭐️ React

React is great framework to learn just because of it's enormous popularity. However, I've found that once you get through the horrific uphil battle of learning how to think in react, it's built-in composability makes constructing complex single-page applications an absolute delight.

⭐️

My go-to production-ready scaffolding tool for react projects. The zero configuration set up is invaluable, and I avoid ejecting the app whenever possible. Use npx create-react-app <app-name> for action; plus --typescript if you want type-safe action.

Other Tools: I've used Vue sparingly at hackathons. Less experience with Angular.

⭐️ Next

Another zero-configuration tool built by the ZEIT team for server-rendered react applications. Works like a charm with Now.

Styles


⭐️ Styled Components

If you love React, you'll love styled-components. Allows you to painlessly attach CSS styles to components without worrying about duplicate/mispelled/conflicting classnames and makes dynamic styles easier than ever.

Rebass

API


⭐️ GraphQL

GraphQL is an API specification by Facebook that is kind of like REST, but better. It allows you to transfer data through a single endpoint by using structured queries to request and deliver data with precision. This liberates backend developers to focus on business logic and frontend developers to manage and display data.

It appears to me that GraphQL's greatest value proposition is allowing clients to query data without needing any knowledge about the server's configuration. It truly enables schema-driven development.

Server


⭐️ Node

My preference for node is motivated by

  1. the enormous NPM community and abundance of open source software.
  2. My familiarity with Javascript, having used it abundantly in React development.

Flask

Python web framework that I used at both of my previous startups. Works well, but gets frustratingly redundant to create, configure, and maintain endpoints for new slices of data.

Vulcan

Perhaps the most promising and comprehensive full-stack Javascript framework that ties together all of the latest JS technologies: GraphQL, React, Meteor, and more. VulcanJS seems to be the fastest way and most seamless way to build an by focusing almost entirely on what makes it unique and abstracting away almost everything else. The instagram clone example app is the perfect demonstration, and their Youtube Channel is invalueble in getting started.

Data


⭐️ Prisma

Next-generation ORM and database-as-a-service with astonishingly pleasant data modeling, migrations, and management. Works with node and typescript, and a few other frameworks. Highly recommend following the Node tutotrial at How To GraphQL to get started.

Mongoose

Dependable choice for prototyping side-projects on top of MongoD and my ORM of choice for side projects with straightforward schemas.

SQLalchemy

The default ORM to use with flask and python. Works as expected.

Deploy


⭐️ Now

Discovering and using now is an absolute delight for front-end projects, so much so that I find myself fervently opposed to almost every other tool. Just type in

now

and you'll immediately deploy an https-secured, immutable instance of your applicaiton on the global CDN.

However, I've moved away from deploying backend web services to now, finding the start-up latency issues of serverless deployments too slow to bear. Alternatives: Surge, Netlify.

⭐️ Render

So easy, it makes me wonder why I had ever previously entertained Heroku or AWS. Create a repo, connect Render to Github, push to master, and BAM you have a working deployment that updates with every pull request. Alternatives: Heroku, AWS.