From old PHP/MySQL to the world's most modern web app stack with Hasura and GraphQL
Tags: graphql, postgres, react, productivity
Published: 2019-12-14 07:59:03

This is the history of [Nhost](https://nhost.io/).

Ever since 2007, I have been into programming and web development. Back then it was all PHP and MySQL websites and everything was great fun!

Around 2013 SPA ([Single Page Application](https://en.wikipedia.org/wiki/Single-page_application)s) started to emerge. Instead of letting your web server render the whole page, the backend just provided data (from [JSON](https://www.json.org/), for example) to your front-end. Your front end then had to take care of rendering your website with the data from the back-end.

And I wanted to learn more!

I went through multiple frameworks, like [MeteorJS](https://www.meteor.com/) and [Firebase](https://firebase.google.com/). I did not feel comfortable with the NoSQL databases that these projects was based on. In retrospect, I am really happy I did not jump on the hype train of NoSQL.

I also built a large enterprise project using React & Redux with a regular REST backend. The developer experience was somewhat OK. You could still use a SQL database and provide a REST API or a GraphQL API to your front-end.

That is an OK approach. No NoSQL, which is good. But no real-time, which is bad.

By November 2018 I was about to rebuild a CRM/Business system from PHP/MySQL to a modern SPA web app. At this time, I decided I would do it with React & Redux with a MySQL database and a REST API. This was pretty much standard at the time.

Then something happened.

I was about to create a VPS from DigitalOcean for my new database and REST API. For no obvious reason clicked on the "marketplace" tab where something drew my attention.

![](https://blog.nhost.io/content/images/2019/12/do-marketplace.png)

GraphQL? A lambda sign? This looks interesting. Let's start a Hasura Droplet and see what it is!

**60 minutes later my jaw was on the floor.**

**This is amazing!**

**This is it!**

![](https://blog.nhost.io/content/images/2019/12/photo-1490730141103-6cac27aaab94.jpeg)

Hasura comes with:

*   PostgreSQL (relational database)
*   GraphQL
*   Real-Time
*   Access control
*   Blazing Fast™

I could not ask for more!

I was so enthusiastic about Hasura I called up an emergency meeting for all developers in my co-working office ([DoSpace CoWorking](https://www.dospace.se/)).

{% twitter 1068145251267895300 %}

Now, Hasura is great and everything but...

What about Auth and Storage for your app?

## **Auth and Storage**

Hasura is great at handling your data and your API. But Hasura does not care how you handle authentication nor storage.

![](https://blog.nhost.io/content/images/2019/12/auth-storage.png)

> With Hasura, you need to handle Auth and Storage yourself.

### **Auth**

When it comes to authentication Hasura recommends that you use some other auth service like [Auth0](https://auth0.com/) or [Firebase Auth](https://firebase.google.com/docs/auth).

I do not like any of those solutions 100%. I like to have full control over my users and not rely on third-party services.

### **Storage**

For Storage, there is no recommended solution from Hasura.

So... I decided to build my own Auth and Storage backend for Hasura.

## **Hasura-Backend-Plus**

I built [Hasura Backend Plus (HB+)](https://github.com/elitan/hasura-backend-plus). Hasura Backend Plus provides auth and storage for any Hasura project.

![](https://blog.nhost.io/content/images/2019/12/logo.png)

# **Visiting Hasura in Bangalore, India**

I was helping out Hasura a bit during late 2018/early 2019\. I was giving small local talks about Hasura. I created Hasura Backend Plus. I was active in their Discord server helping other developers. Because of this, I got the chance to visit the Hasura Team in Bangalore. They were hosting the very first [GraphQL Asia](https://www.graphql-asia.org/) and I was invited. And off I went!

{% twitter 1117332824757948417 %}

# **Back to nhost.io**

[nhost.io](https://nhost.io) helps every developer with the quick deployment of Hasura and Hasura-Backend-Plus.

Get your next web project going with the world's most modern web stack.

*   PostgreSQL
*   GraphQL
*   Real-Time Subscriptions (just like Firebase)
*   Authentication
*   Storage

[Get started with nhost.io](https://console.nhost.io/)!