So you want an e-commerce website with phone apps to go with it?

Let me show you how to set it up with this complete starter solution in under an hour for free.

Step 1

Sign up for Heroku for web hosting, Amazon Web Services for media file hosting, and Stripe for payment processing. This should be no trouble at all but this is what the beginning of the sign up processes look like for all three of these:

Step 2

Now generate an AWS access key, and note down the key ID and secret key.

Step 3

Also create an AWS storage bucket. It is not complicated at all but here's an article on how to do just that. Simply log into the AWS S3 console, create a bucket, and note down the name. Click through the steps, and untick the options to block public access:

Create an AWS storage bucket

Step 4

Get a test API key for Stripe and note it down.

Step 5

Next you will need the SMTP details for your email. You could use a Gmail account to start out. As far as I know this is all well and good, but you will want to look at getting a custom domain set up later on, and may want to sign up for G Suite or a similar service. For this quick-start guide, we'll use Gmail. The SMTP server address is smtp.gmail.com. Keep your email address and password handy.

Step 6

Right, the website is a Mezzanine installation that we'll be doing on Heroku. I've created a project with a one-click installer for this, so go ahead and install it by clicking this button. Enter the values you noted down in the previous steps.


Step 7

When your site is installed, log into the admin section and upload product images. The default super user for Mezzanine is admin and the password is default. You should change this as soon as you log in.

Step 8

Create your products:

Step 9

Generate an API secret key and token for your site:

Step 10

Your starter website is all done. Now all that is left is using this complete Flutter starter template for your iOS and Android apps.

iOS demo

Android demo

Demo photo credits


Mel Poole

Joanna Kosinska


Leio McLaren

Roland Denes

Tyler Nix