Kudoo’s upcoming version 0.1

Justin Trollip
Kudoo
Published in
3 min readJun 6, 2017

Note: The features discussed in this post will be rolling out over the next three weeks.

This week we have been hard at work finalising our first minor release. The following features are included:

  • Port our existing website into React
  • Implement our new Testing framework
  • Secure logins using Google or Microsoft
  • Migrating to a Graphcool backend

New React Front end

We have been playing around with a lot of technologies over the past few months and exploring a myriad of options. Javascript fatigue is a real thing.

After lots of umming and ahhhing, we finally decided to go with React. React is an open source library released by Facebook and with a very active community. It is an amazing piece of code and completely changed the way we approached the design process.

In the last week, we’ve been able to completely rewrite our marketing website into React and are now moving onto implementing Redux.

The concept of Redux is quite technical, but the author Dan Abramov changed the game when he came up with it. It allows a concept of time travel within web based software.

If I could come up with an analogy relevant to the business world, I’d say imagine a User submits a Timesheet, and then the Accounts Payable clerk converted that Timesheet into an Invoice, which they then issued to the Client.

Let’s say, the Client now notices a mistake on that Invoice. Traditionally this would involve the poor Accounts Payable clerk to have to either reverse the Invoice or issue a credit note. Then to make matters worse, they would need to reverse the Timesheet and create it again the correct way.

This is the daily routine of clerks around the world.

With Redux, you could just rewind the entire process and adjust the mistake. No more manual tasks. Once the mistake was fixed, you’d just push Play again. It’s a fantastic concept.

Testing framework

We’ve also moved onto Enzyme for all our Testing. Enzyme allows us to test all our components quickly, with minimal code and tons of flexibility. Why’d we choose it? Because Leland Richardson at Airbnb uses it, and he knows heaps more than us about this sort of thing.

Logins

This was one of the hardest decisions to make. I spend heaps of time researching security. Got stuck in so many rabbit holes, exploring pitfalls, and periodically landing in them.

At first I wanted Identity Server 4. I still love it and think it’s a fantastic tool for companies that have more resources than us. However, unfortunately that’s not us.

So we decided to use Auth0 for it’s simplicity, scalability and warm embrace of the React ecosystem.

Someone once said something along the lines of “Outsource everything but your soul”. Auth0 allows us to point in that direction.

Graphcool

I cannot say enough good things about Graphcool. We spent months building a RESTful backend that we were going to use to power our web and mobile applications. Anytime anything needed to be changed, it involved heaps of work and lots of testing.

It was not a pleasurable experience.

So as we started exploring the React and Javascript landscape, we constantly came across GraphQL. So I started doing some reading, and after a very short time became fascinated. GraphQL is amazing. It makes interaction between a front end and a back end seamless, intuitive and a pleasure.

Graphcool is the perfect embodiment of the power that developers have with this new range of tools. The developers there have done a truly fantastic job.

That’s all for this week. Next week we’ll start going through our move to Serverless computing and our first few pieces of functionality.

--

--