How We Built a Serverless E-Commerce Website on AWS to Combat COVID-19

James Samuel
Sep 10, 2020 · 6 min read
Image for post
Image for post

2020 turned out to be radically different from what everyone had expected. COVID-19 has impacted our lives in many ways. As the pandemic spread, one question that baffled us was: what can we do with technology to combat the virus?.

A few days later, we got the answer.

In a phone conversation in March 2020, Olalekan Elesin informed me of an idea he thought about while doing his regular grocery shopping at DM Drogrie. The idea is centered on a bracelet like your typical watch that dispenses Sanitizer. Before this time, Sanitizer comes packaged in bottles and cans of different sizes and kinds. Some are mounted on walls, and some are portable enough to be carried around in handbags. But not portable enough to be worn on the wrist.

Having spent years building scalable applications and data applications at various startups, we understood that every idea must be validated. We have to know it’s an idea that people want and are willing to pay for. As for us, this means doing some market research.

Problem Discovery and Customer Validation

After several iterations in coming up with the leanest and cheapest way to test, we arrived at one: blogpost as MVP.

In the blogpost, we embedded a pre-order Google form to collect some information about potential customers. The form included the color, price, payment method and quantity fields.

While doing market research, it’s essential to collect potential customer contact details like email addresses, etc. If your product resonates with people, potential customers will not hesitate to give their contact details. Customers who provide contact details at the pre-launch phase are usually the first to be converted when you go live.

Before our product hit the market, we recorded over $100,000 in pre-order bookings from matured markets such as the USA, Germany, Italy, France, and the United Kingdom through the medium post with zero ad budget. More than 85% of customers were willing to pay online and have their SanitizerWristbands delivered to them. We validated our problem and customer hypotheses with these and other leading indicators: big enough pain, and customer willingness to pay. This informed our next decision to develop the first physical MVP.

Manufacturing: An Uncharted Territory

With our first product design ready, we spoke to manufacturing companies to build the prototype. We learned quickly that our design was too cumbersome and would cost a substantial amount to produce.

Image for post
Image for post
Figure 1: An Earlier Iteration

We arrived at the simplest possible design that works through customer feedback and trying to cut down the production cost to match the amount customers are willing to pay for.

We were ready and it was time we put our store online.

Scalable eCommerce Website With $0 Commitment

The high-level architecture looks like this:

Image for post
Image for post
Figure 3: E-commerce Website Architecture

Right from the start, our goal was to automatically deploy changes made to our website whenever a PR is merged. We leveraged AWS CodeBuild and CodePipeline to achieve this and automatically deploy new changes to an S3 bucket.

Image for post
Image for post
Figure 3: CI/CD with AWS

We sent a campaign email to customers who had pre-ordered before we launched.

Automating Orders Fulfilment

Our warehouse and logistics partners are in China. This implies we must find a way of notifying them every time an order is placed. For a few orders per day, sending an email with an attachment to our logistic partners suffices. As the number of orders per day grew, this became really boring and automating the process became a necessity. Could we automate it?

To automate fulfilment of orders, we created a serverless “order fulfilment addon” whose architecture looks like this:

Image for post
Image for post
Figure 5: Automating Order Fulfilment (WIP)

Making Informed Decisions with User Behaviour

Lessons Learned

  • When it comes to manufacturing, you’ll save a sizeable amount of money by manufacturing from developing countries (like India, etc.) than from developed countries like the US, Germany, etc.
  • If you’re in Germany, registering a business can take a long time. If you plan to get to market fast, ensure you factor in the time it will take you to navigate the bureaucracy.
  • Patent your ideas before doing market research. We started with market research. After we saw that the idea was valuable, we wanted to move on with patenting; unfortunately, it was too late. Someone already filed a patent
  • China makes manufacturing look like a piece of cake.
  • Data is king. “In God we trust, all others bring data” — Edwards Deming. It’s important to start with a data-driven mindset, no matter how small. Think of how to decompose big ideas into testable components and figure out the data required to validate along the way.
  • Get your analytics right early! This is not referring to Google Analytics. Consider the metrics that are indicative of your success and instrument them from the get-go. Great resource — $9 Marketing Stack: A Step-by-Step Guide.
  • Experiment like no one cares. For us, we were always experimenting, we have a minimum of 5 tests running weekly. A/B tests, multivariate tests, Redirect tests, etc. You can do this for free with Google Optimize.

The Startup

Medium's largest active publication, followed by +773K people. Follow to join our community.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store