Rebuilding Six Websites in One Evening

Published · Updated

  • build log
  • Astro
  • monorepo
  • SEO

This is the first entry in a log of what I build and run on my own. It covers one evening — from 5:22 pm on October 18, 2026 to 0:50 am the next day — spent reworking six websites that live in a single repository (a monorepo).

Five things in one evening1 Subpages in 4 languages; 2 One shared menu; 3 Animated diagrams; 4 Emoji to 115 icons; 5 PWA, image credits, overflow fix1Subpages in 4 languages2One shared menu3Animated diagrams4Emoji to 115 icons5PWA, image credits, overflow fix
Five things in one evening

The evening in numbers

Measured from the git history.

ItemValue
Commits46
Time span10/18 17:22 – 10/19 00:50
Files changed479
Lines added / removed+20,089 / −1,394
Sites6 (4 my own, 2 for clients)

The four I run myself are site30cut (this site), Calcmoa, Word Counter & Text Tools and Korea Public Holidays. The other two belong to a café client and a mobile car-detailing client.

1. One page means one place to be found

The first problem was simple. With everything on a single home page, every search query could only ever land on that one URL. So each site got topic pages — about, process, pricing, FAQ, contact — in four languages (Korean, English, Japanese, Traditional Chinese). The sitemap lastmod dates and the RSS feeds were widened at the same time, because Naver reads RSS while Google mostly reads the sitemap.

I also wrote a read-only script that queries Search Console and GA4. It picks out pages that get impressions but rank low or get no clicks, so I know what to improve next. The numbers will come in a later entry, once there is enough data.

From one home page to topic pagesBefore: Everything on one home page, One URL for every search query → After: About, process, pricing, FAQ, contact pages, Offered in 4 languagesBeforeEverything on onehome pageOne URL for everysearch queryAfterAbout, process,pricing, FAQ,contact pagesOffered in 4languages
From one home page to topic pages

2. Don’t build the same menu six times

The slide-out menu I first built for the car-detailing client — grouped accordions, menu search with synonyms and Korean initial-consonant matching, ESC and a focus trap — worked well, so it moved into a shared package. Now each site only lists its groups and synonyms in one nav.config.ts, and all six behave the same way.

Form hints got the same treatment. The calculators, text tools and leave planner each had their own messages for empty, out-of-range or malformed numbers; they now share one form-kit, with the same behaviour and wording as before.

3. Animated diagrams instead of paragraphs

Long explanations get skipped. So the build process became a five-step timeline, loan results became a principal-and-interest donut, and long weekends became calendar strips. The original text is still there, folded under “more details”. Animations only run while on screen, and visitors who turn on “reduce motion” see a still frame.

4. Emoji out, icons in

The emoji scattered through menus and diagrams looked different on every device and, frankly, looked auto-generated. They were replaced with 115 Lucide icons (ISC licence) through one shared Icon component used by all six sites.

5. Small things that are easy to miss

  • PWA, step one: a web manifest and icons for all six sites. No service worker on purpose — installability doesn’t need one, and a cache holding on to an old page was the bigger risk.
  • Image credits: client photos were swapped for free stock photos without brand logos or licence plates, and each site’s about page now lists the source and photographer.
  • Horizontal overflow on mobile: an entrance animation’s starting offset pushed a 390px screen out to 426px; overflow-x: clip fixed it.

What’s next

Whether the new pages actually show up in search will be clear from Search Console in a few days, and this log will continue with those numbers. If you’re curious how these sites are made, see the process and portfolio pages.

Shall we build your site?

Get a free consultation