This site runs best with JavaScript enabled.

Adventures of Building A Startup - Part 1

Tracy Adams

December 15, 2019

Web Development, Shopify Development, Kubernetes, JavaScript, React, Docker

As promised in my last post, I will be writing about my experience with building a startup!

In this initial part, I'd like to discuss the idea, the tech stack, and what I've got at this point in time.

The idea

My idea is to build a startup that revoles around servicing eCommerce stores. Since my day-to-day work involves working on Shopify Sites, I'll be building a Shopify App, to be specific.

This app will be free on the Shopify App Store, at least for the initial launch 😉. My reasoning behind releasing an initially free app is to

  • Gain some initial traction
  • Provide value up front
  • Have a great resource of users to test new features
  • Have a backlog of features that I consider "premium" to release in the future under paid plans

With this plan of attack, I'd like to dive into the actual Shopify App idea.

The app

The main issue I run into on a day-to-day basis with most of my Shopify Stores is that I don't have a great solution for managing and scheduling promotional prices for products.

There are some apps that do this somewhat okay-ish, but I need something that's tailored to my specific needs:

  • Uses Shopify's Polaris UI
  • Can select all products, an entire collection of products, an individual product, or an invidivual variant of a product to schedule/set a sale price
  • Can schedule at least 1 promo at a time
  • Can view past, view/edit current, and view/edit future promotions

These needs are individually met by certain apps, but there isn't a singular app that does all of them well.

The tech stack

I will be building this app in a full JavaScript-based environment

  • NextJS for the front end
  • NodeJS/JavaScript + Prisma for the back end & datastore

I picked this stack as I'm most familiar with JavaScript tech, and I want to get to know the NextJS ecosystem a bit more. We'll be utilizing Zeit's Now for our hosting needs outside of the datastore. For our datastore, we're going to start out with our own Postgres server with DigitalOcean paired with a GraphQL API. If need be, we'll move to using RDS or DynamoDB, but a self-hosted solution will be more than enough to begin with.

The design

I'll be using Shopify's Polaris to get the actual UI off the ground. Luckily, that means my app will fit right in with the standard Shopify Admin UI and will have some sweet premade components to go along with it.

To start with, I've created some basic outlines of what the UI will look like with Whimsical. I use Whimsical for most of my wireframing once I actually have an idea, as it's easy to get basic layouts from hy head/from paper and onto my computer.

Next steps

So this is where I'm at

  • Getting basic wireframes fleshed out
  • Describing the MVP requirements
  • Figuring out the tech stack

With those pieces laid out, I will be getting started on building out the initial interactivity portions of this app

  • Basic front end with Authentication
  • Storing credentials to our datastore
  • Reauthenticating sessions
  • Backend lambda functions for the following actions
    • Workers to consume tasks from a queue
    • Task queue for scheduled changes to be made

Once that is complete, I'll be back for another writeup and a potential quick sneak peak of the app in action 🚀

Share article