Web

m-naoki-m.com

A portfolio and hub that consolidates my output as an indie developer. Built with Astro static export, with structured data and a bilingual setup baked in from day one.

This is the site you're looking at right now.

AstroTypeScriptAWS S3CloudFront

m-naoki-m.com

Overview

m-naoki-m.com gathers my products, writing, and operations notes in one place. The site is statically generated with Astro and TypeScript, with JSON-LD (Person / WebSite / CreativeWork), bilingual routing, and dark / light themes built in from the start. The pipeline is intentionally simple, designed around CloudFront.

Key features

  • Static Astro export aimed at S3 + CloudFront hosting
  • Person / WebSite / CreativeWork JSON-LD on every page
  • Bilingual routing with hreflang and per-language sitemap
  • Dark / light themes with inline FOUC-prevention script
  • Lighthouse 100 across a11y / best-practices / SEO on the main 10 pages

Tech stack

Frontend
Astro, TypeScript
Hosting
AWS S3, CloudFront
i18n
Astro i18n, hreflang
SEO
JSON-LD, sitemap, OG

Architecture

The page layer reads from a typed mock data set (`src/data`), with a planned migration to Astro Content Collections. i18n uses `prefixDefaultLocale: false` so `/` is Japanese and `/en/` is English; copy lives in `src/i18n/{strings,pages}.ts`.

AI's role and boundaries

There is no plan to put AI inside the site. It ships as static output, so no inference runs when someone views it. The production side, though, is built around AI. Article ingestion runs daily at 02:00 JST, handling title translation, category inference, and PR review, then moving the result to production when nothing looks wrong. A person reviews only the items that need a judgement, as flagged in Slack.

Evaluation & Operations

We watch Lighthouse scores and the sessions reaching my product sites (SmileProgress, Veloquo, Relora, FormatArc, A Better Life) through links from this site. Organic traffic and intra-site navigation are reviewed monthly.