Clint McMahon Clint McMahon

NYC Coffee - A New York City Coffee Map

Over the past year, I've been working on an app that displays all the coffee shops in Minnesota called MN Coffee. The app has been really helpful for finding different coffee shops around Minnesota. A few weeks ago I was listening to an episode of Dan Loves To Chat where Dan Geneen is interviewing Johnny Norton of Culture Espresso. In the podcast they talk about different New York Coffee shops which got me thinking about when we lived in New York and all the great coffee shops that exist in the city. That got me thinking about how MN Coffee could be applied to NYC. With a much larger user base and more coffee options, building the NYC version seemed like a good idea.

NYC Coffee Shop Map

That's where NYC Coffee comes in. Built on the same foundation as MN Coffee, this app displays coffee shops across New York City, highlighting those closest to the user. Using the expo-location package, the app shows users their location on the map along with all nearby coffee shops. When a user clicks on a coffee shop, a toast-style popup appears with a few details about the shop. Clicking the popup opens a full detail page with more in depth information.

The shop details are sourced from Google Maps via Outscraper, and I cross-reference each coffee shop with Google Places to retrieve the Google AI Summary.

NYC Coffee map view showing coffee shops in Manhattan
NYC Coffee shop detail popup with quick information
NYC Coffee full detail page with shop information
NYC Coffee list view of nearby shops
NYC Coffee search and filter options
NYC Coffee user location and navigation features

The NYC Coffee codebase is essentially identical to MN Coffee. I simply copied the web and mobile projects into their own folders and made the necessary updates for the New York version. While I initially considered building a multi-city app, I really wanted to publish quickly and opted to duplicate the codebase instead. However, now that both apps are gaining traction and I'm maintaining updates across multiple platforms, a consolidated repository is becoming necessary. As of today, NYC Coffee is closing in on 100 downloads in the three weeks it's been live in the app store.

Coffee shop files

With versions for data harvester, web, iOS, and Android, I'm currently maintaining four separate codebases - that's becoming unsustainable, especially when factoring in the data harvester, database, and other supporting utilities. Currently, data for each app is stored at the database level and then exported to JSON files that are embedded in each application. To streamline this, I plan to consolidate everything into a single database with a C# API as the integration point. By connecting OData to the API, I can use it as the single access point for all apps. This will be the first step in my consolidation plan.

Consolidating the codebases will streamline the publishing process, allowing me to spend more time building new features rather than managing deployments across multiple platforms.

NYC Coffee is stable and running so now my next step is going to be putting the code for both apps into a single project. More on all of that later, in the mean-time, take a look at NYC Coffee at the links below:

Web - NYC Coffee Web
iOS - NYC Coffee iOS App
Android - NYC Coffee Android App