Find the best coffee in Minneapolis

I've been developing an app called MPLS Coffee to help people find the best coffee in Minneapolis. The idea started when my wife showed me the list of cozy coffee shops in Minneapolis, that got me thinking that it would be cool to just have an app that I could open when I wanted to find a good coffee shop around the city. The app was released at the end of October and has slowely grown over the past two months.

I'm trying to keep up with a monthly release schedule, but with my freelance development work as well as other obligations in life, it's been more difficult than I imagined to keep this schedule.

When I had the idea to start the app, I used Chat GPT to develop the MVP. My prompts were simple, create a React Native application that will display a list of coffee shops in Minneapolis, MN. Each coffee shop should list the open hours, address and there should be a button for directions to the coffee shop that integrates with the users device. This was actually pretty helpful as the LLM created a very bare bones application with integration with Apple Maps for iOS and Google Maps for Android. The list of coffee shops was a simple javascript array with latitude and longitude included with name, address and open hours.

But soon over time the application got more and more complex. I realized that I needed a database to hold the coffee shop data. Then I needed a way to get the data from the database to the mobile app. And in order to get the data in the first place, I was going to need to write a data loader/harvester to integrate with the Google Maps API.

What started as a simple mobile app - basically just to see if I could do it - turned into a larger project that required multiple dependant projects. So, the first iteration of the application consisted of the following parts:

  • MySQL database with two tables: CoffeeShops and CoffeeShopHours
  • C# console application that gets all the coffee shops in Minnesota from the Google Places API
  • C# WebAPI application written with OData to return coffee shops from the MySQL database
  • React Native mobile application as the user app
  • Next.js landing page/marketing website for MPLS Coffee

I published the first version of the app using this architecture. Soon I realized that I didn't actually need the WebAPI for the mobile app and I could improve performance if I bundled the coffee shop list in a .json file within the app package. This way when users load the application there isn't a brief wait time while the app gets the list of coffee shops from the API, the data is already right there on their device.

Last night I released version 1.2 that removed the API from the mobile app and now data is loaded directly from the application. In total the app build is only 23MB, which isn't tiny but compared to other applications in the app store it's actually pretty decent. I've got more updates to the app that I will work on in January as time allows.

Are you looking for the best coffee shops in Minneapolis? Download MPLS Coffee for iOS and Android now to start finding good coffee.