React with TypeScript, Tailwind CSS, and Vite. It uses the Google Maps API (through Vis.gl) and Supercluster. The backend built with Express and MongoDB, using Mongoose for models, JWT for authentication, bcrypt for password hashing, and Google Cloud Storage for hosting garden images.

The main map loads all gardens as GeoJSON and clusters them dynamically as you zoom in and out. Each marker represents a garden, and clicking one opens a sliding drawer showing more details.

Each garden has its own page that pulls live data from MongoDB.



Once logged in, users can add new gardens directly from the map. Photos are uploaded to Google Cloud Storage.


Login and registration are handled through a simple JWT setup. Tokens are stored locally, and protected routes ensure only logged-in users can add or edit gardens.
