Web App
Blooms of Japan
A month-by-month guide to where and when flowers bloom in Japan: cherry and plum blossom, wisteria, hydrangea, autumn leaves and more, across 412 spots. It started as Find Hanami, a three-week mobile prototype, and grew into a production site with 459 indexable pages, its own build pipeline and live weather on every spot.

The problem
Most travel content treats Japan's flowers as one event: cherry blossom, three weeks in spring. Planning around anything else means:
- Bloom dates scattered across local tourism sites, many only in Japanese
- No single place to see what is in bloom in a given month, or where
- Spot pages that say when to go but not how to get there
- Listicles that can't be filtered by month, flower or region

What I built
- A seasonal homepage whose illustration and copy follow the current season
- A calendar that steps through the year month by month, with every peaking spot plotted on a map of Japan
- 412 spot pages with peak window, access directions, photo gallery and a live five-day forecast
- 26 flower pages and 12 month pages, so every way someone searches has its own landing page
- A responsive layout that works as well on a phone as on a desktop
Engineering decisions
- Plain HTML, CSS and JavaScript with no framework. The content is a dataset, not an app, so a static build keeps it fast and cheap to host
- A Node.js build pipeline turns one spot list into every page, then pre-renders each one in headless Chrome so search engines get finished HTML
- Real URLs (/spots, /flowers, /when) replaced the original hash routes, with old links redirected in the page so nothing broke
- 52 permanent redirects for spots that were merged or renamed, keeping every previously shared link alive
- Weather comes from the Open-Meteo API at view time, so forecasts are always current without a backend or API key

Built to be found
A travel guide only works if people find it from search, so SEO was part of the build, not an afterthought:
- Every page has its own title, description, canonical URL and social image
- schema.org structured data on every page
- A generated sitemap of 459 URLs, referenced from robots.txt
- Lighthouse SEO score of 100 on every page tested, with accessibility between 90 and 94
On mobile


From prototype to production
- Find Hanami proved the idea in three weeks on a no-code builder
- Blooms of Japan rebuilt it from scratch so I owned the code, the URLs and the hosting
- The spot list grew to 412 locations, each with sourced photos
Content and licensing
- Every photo comes from Wikimedia Commons under CC BY, BY-SA or CC0
- Each spot credits its photographer and license under the image
- Japanese names shown alongside English so visitors can match signs on the ground

