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.
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
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.