Generating Dynamic Location-Specific Shirts

Leveraging location services and custom SVGs to dropship custom shirts for the places you love.


LoPrints Customization Page
LoPrints Customization Page

The Idea

LoPrints started because we (Mike Berg, Chase Wackerfuss and I) thought it would be fun to do with shirts what some people like to do with tattoos.

After brainstorming and scoping things out a bit, we started to realize it could be possible to automate most, if not all, of this application using a combination of existing and custom-built services.

How It Works

In short...

  1. We leverage lat/long data and the Google Places API to help auto-generate a shirt design
  2. Send shirt orders through Shopify
  3. Manually approve designs for quality control
  4. Orders get fulfilled and drop-shipped to customers via Printful

But this is supposed to be automated, why manually fulfill orders?

Google Places' API is great, but it's impossible to fully guarantee that each design will be up to the standards we want due to weird variances.

Because of that, and the relatively low number of orders starting out, we decided to take the quicker route of manually approving things rather than building out an automated approval system.

Loprints Admin portal
Loprints Admin portal

Technical Details


We use React via Next.js for everything you see on

From there we use Shopify's Buy SDK to connet our frontend to Shopify as part of our backend.



The main backend we have is Shopify. Using them allows us to manage fewer pieces and lean on an established, reliable service to managing orders.

Image Processing

We built out a Node.js backend to parse Google Places API data, calculate heart positions, assemble our custom SVGs, then convert those to PNGs.


Once a shirt design is created and an order is placed, that information gets passed along to Printful where it gets automatically printed and drop-shipped directly to customers.

Jack and Me
❤️ Chicago