Static landing page for the WhoisP project built with Next.js App Router. The repository is pre-configured for static export, GitHub Pages deployment, and multilingual (English/Japanese) content.
- Node.js 20+
- npm 10+
npm install
npm run devOpen http://localhost:3000 to develop. The site is statically generated, so avoid using server-only features.
npm run build
npm run previewThe build command produces a static out/ directory. The preview command serves that folder locally via serve for a production-like check.
- Push this repository to GitHub and ensure the default branch is
main(update the workflow branch filter if you use something else). - Enable GitHub Pages for the repository and select the "GitHub Actions" deployment source (Settings → Pages).
- Every push to
maintriggers.github/workflows/deploy.ymlwhich:- Installs dependencies with npm.
- Builds the static site with
NEXT_PUBLIC_SITE_URLinferred from the repository owner/name. - Uploads the
out/directory as a Pages artifact and publishes it.
- After the workflow finishes, the site is available at:
https://<OWNER>.github.iofor a user/organization pages repo named<OWNER>.github.io.https://<OWNER>.github.io/<REPO>for any other repository.
If you want to override the canonical origin, set the repository secret NEXT_PUBLIC_SITE_URL and the workflow will automatically pick it up.
- Wait until the site is live at the GitHub Pages URL.
- Log in to https://search.google.com/search-console and choose URL prefix property type. Enter the exact Pages URL including the repository path (for example,
https://example.github.io/whoisp_lp2). - Pick HTML file verification, download the
googleXXXXXXXXXXXX.htmlfile, and move it into thepublic/directory of this project. - Commit and push the file to
main; the next deployment will publish it athttps://<OWNER>.github.io/<REPO>/googleXXXXXXXXXXXX.html. - Click Verify in Search Console. After success, open the property and submit
https://<OWNER>.github.io/<REPO>/sitemap.xmlvia Sitemaps. - Use URL Inspection to request indexing for the homepage (
/) and the Japanese page (/ja). Repeat whenever major content updates occur.
- Canonical URLs, language alternates, Open Graph, and Twitter card metadata defined in
src/app/layout.tsx. - Structured data (
SoftwareApplicationandFAQPage) injected via JSON-LD. - Auto-generated
sitemap.xmlandrobots.txtexposed through Next.js metadata routes. - Keyword metadata sourced from
src/content/landing.tsand synchronized for both locales. - GitHub Pages-aware
basePath/assetPrefixhandling innext.config.ts, including automatic detection for user-page repositories.
Keep content updates within src/content/landing.ts to ensure metadata, structured data, and copy stay aligned across locales.