About Plates & Places

What this is

Plates & Places is simply a personal archive designed to keep track of the food I’ve eaten, the cities I’ve wandered through, and the code I write.

Why it exists

Memories fade quickly. I built this primarily for myself—to remember the exact name of a tiny ramen shop in Tokyo, or the specific train route it takes to get to a balsamic vinegar estate in Modena. It is a digital footprint for my own reference. But if you happen to stumble across this site and find a travel route or a recipe useful for your own trip, that is a welcome bonus.

The Architecture & Stack

As a software developer, I naturally chose to do things the hard way. There is no off-the-shelf CMS running behind the scenes. I built this entire platform from the ground up as a continuous technical playground.

  • The Backend: The site runs on a custom Node.js and Express backend built on a traditional MVC (Model-View-Controller) architecture. Data is structured and stored in a MongoDB database using Mongoose, which allows me to enforce strict schemas separating standard recipes ("Plates") from geographic travel guides ("Places").
  • The Frontend: I deliberately avoided heavy frontend frameworks like React. The interface is built using EJS templating and vanilla JavaScript, styled purely with Tailwind CSS. This keeps the client-side bundle incredibly lightweight and fast.
  • Media & Security: Image uploads are routed directly to Cloudinary for cloud storage and on-the-fly thumbnail optimization. To handle rich-text formatting securely, the backend sanitizes all incoming content using DOMPurify before it ever hits the database.
  • The Geocoding Engine: Rather than manually dropping map pins, the server integrates directly with the Mapbox Geocoding API. It runs a custom, two-step fallback script that parses specific neighborhoods or day-trip locations and dynamically fetches the exact latitude and longitude coordinates.
  • Hosting: The entire application is deployed via serverless functions for efficient scaling.

The UX & Navigation

The user experience is built strictly around utility. There are no flashy animations, pop-ups, or newsletter forms. Content is organized intuitively so you can drill down by specific country or city hierarchies, filter strictly for recipes, or search by cross-regional tags. Right now, geographic accuracy is focused on individual posts via custom Mapbox integrations. In the near future, I will be rolling out a global "Map Log"—a single, interactive map plotting every footprint and plate across the globe.

A note on AI

In the interest of total transparency: I have used AI to help draft, format, and edit some of the early content on this site.

Building the architecture took time, and using AI as a writing assistant helped accelerate getting this project off the ground. The core ideas, the itineraries, and the opinions are entirely my own, but the initial phrasing often had a digital assist. My goal in the near future is to phase this out, rely on AI less, and transition into writing everything purely in my own, authentic voice as the archive grows.

Thanks for stopping by.