Our Technology Stack

March 14th 2018

Intro

The most interesting piece of our stack is that we use an isomorphic boilerplate for all of our project, but we'll go ahead and talk a little bit about all of the pieces of the puzzle. If you only care about what stands us apart from most development companies then you can skip most of this and head to both the "Node" and "Isomorphic" section of the article.

Node

We use Node as opposed to the most common backend language, PHP. Node is great because it's just Javascript for the server side. Developers that that use Node can spend more time mastering a single language which increases their productivity. This extra productivity is one of the factors that makes the open source community around Javascript so vibrant. Another advantage of Node is that it's much faster than PHP so it takes less time for our websites to load.

React

React is a javascript library for building user interfaces. The only library that I see competing in the same bracket as React would have to be Angular. Personally, I prefer to use React and most developers these days would say the same. Of course, many developers would disagree, and that's totally okay.

Redux

Redux is the tool we use for state management. Once you get past the initial roadblock of understanding how to use it it becomes incredibly useful for simplifying state management. Instead of passing props from all around your application your entire state is managed in one place called the store. This makes things far easier to work with. On top of that, I've made a choice to further simplify Redux by creating a single "setVal" action as opposed to multiple different actions for every component. I simply pass "setVal" a key and a value and it will set the value of any property in the entire application. This works for 99% of use cases. This has made things far easier to work with and saved quite a bit of time. The only potential pitfall I've seen so far is that if I have too many variables, then a single reducer may get crowded with variable making it difficult to debug. However, this hasn't been an issue. Combining this with React has made for a great development experience.

MongoDB

MongoDB has been the go-to database for a while now. We plan to try out a different database in the near future, but for now, MongoDB has worked quite well for our projects.

Webpack

Webpack is really useful for building complex front end applications. We break the front end into multiple components and import those components inside parent components. Webpack is what makes this possible on the front end, saving use lots of time.

Babel

We use Babel to compile our ES6 javascript into ES5. We value this because many times we would like to use newer javascript features that are not yet supported by browsers.

Other

We use lots of other packages as well like Passport, Mongoose, or Socket.io, but getting into all of our setup would take quite a long time to explain. Expecially since many of the other packages that we use depend on the type of application that we are building.

Isomorphic Framework

This framework is what distinguishes our company from the rest. Most companies use a framework that renders either from the server side or client side but not both. A framework that renders from the client side means that someone that uses that website has to make a network request for every page that they view. This is slower than projects that render from the client side, but the benefit is that search engines can easily find every single page. A project that renders only on the client side means that it will be faster, but Google and other engines cannot easily index every page leading to poor SEO. The benefit of an isomorphic framework is that we can both render new pages instantly and Google is able to index every single one of our pages, leading to a more profitable website.

A comment and sharing system will be added in the near future

© 2018 Flux Teck, LLC·Home·Projects·Contact·Blog·Terms