Update: This post does not live up to its original title
We are building a better Heroku
. It shows my own personal experience and reflects poorly on competitors. I am sorry about that.It should have emphasized the building part, we're just starting. The current 5 minute production app doesn't hold a candle to Heroku at the moment. It should have made it clear the goals is to improve the speed with which you can configure a production app, not a development app. Development apps on Heroku are already close to perfect. The examples in this post are contrived since it talks about a development app, as rightly called out by Heroku people. It should have gone into why hyper clouds might be preferable. It should have talked about state, we made a small improvement in this MR but we should have done the planned work and made one post out of it.
We are very far from a better Heroku for production apps in a hyper cloud.
Creating a web application has become very convenient and easy. You’ll start in your local development environment, run a dev server and verify the changes looking good. At a certain point, you want to share it with your friends on the internet. A service or server?
Use Heroku
I have been a backend developer in the past 20 years. Web development is often fighting with Javascript and CSS. Especially Heroku as a deployment platform is a new area for me.
Let's start with creating an account, login, and follow the web instructions to create a new app in the documentation.
Let’s try a fun demo, a battleship game to learn Javascript on the client and NodeJS on the server.
$ cd ~/dev/opensource
$ git clone https://github.com/kubowania/battleships
$ cd battleships
Test it locally, optional.
$ npm install
$ npm start
Install the Heroku CLI, on macOS with Homebrew.
$ brew install heroku/brew/heroku
$ heroku autocomplete
This opens a new browser window to login. Lets create an app.
$ heroku create
Creating app... done, ⬢ nameless-mountain-48655
https://nameless-mountain-48655.herokuapp.com/ | https://git.heroku.com/nameless-mountain-48655.git
The CLI command adds a new Git remote called heroku
where we need to push into.
$ git push heroku main
remote: