Skip to content

Rebuild portfolio as bilingual React + Vite site with GitHub Pages deployment - #1

Merged
greyhub merged 1 commit into
mainfrom
claude/laughing-curie-vdkivq
Oct 22, 2026
Merged

greyhub merged 1 commit into
mainfrom
claude/laughing-curie-vdkivq

Conversation

@greyhub

@greyhub greyhub commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Summary

Replaces the old static jQuery/Bootstrap site with a new single-page portfolio for Luong Nguyen Van (Grey), CEO & Founder of DGNA. It is built with React, TypeScript and Vite and deploys through GitHub Actions.

What's on the page

  • Sections: Hero, About, Expertise, Working approach, Partners & Ecosystem, Contact, Footer.
  • The hero has an abstract 3D-style visual made in CSS. It adds no extra library, pauses when off-screen, and stays still when the visitor has turned off motion.
  • Four service areas. Data Governance & Metadata is the large featured card.
  • Partners (VNPT, VTX, Trek Fund, Vingioco, Alobase) appear as plain text: no logos, no claims about the relationship.
  • Contact uses an email link and a LinkedIn link only. There is no contact form.
  • No biography, achievements, metrics or testimonials were invented. The biography and caseStudies slots start empty, and the Projects section stays hidden until case studies are added.

Language and theme

  • The VI/EN switcher translates the whole page, including the browser tab title and description. Vietnamese is the default.
  • The theme toggle cycles System → Light → Dark.
  • Both choices are remembered on reload.

Where content lives

  • src/data/siteConfig.ts: personal details and content.
  • src/i18n/translations.ts: interface text in both languages.
  • The page title, description and sharing tags in index.html are filled from these files at build time.

SEO and sharing

  • Page title and description, canonical URL, Open Graph and Twitter tags.
  • Favicon and touch icon based on the NVL monogram.
  • A generated 1200×630 social preview image, robots.txt and sitemap.xml.

Deployment

  • .github/workflows/deploy.yml runs npm ci, lint, type check and build on pushes and PRs to main. It deploys dist/ to Pages only from main.
  • vite.config.ts uses base: "/" because this is a user site.

Legacy site

  • The old site has moved, unchanged, into legacy/. It stays in the repo but is not deployed.

Testing (local)

  • npm ci, npm run lint, npm run typecheck and npm run build all pass.
  • Chromium at 1440, 1180, 820 and 375px wide, in light and dark: no horizontal overflow and no console errors.
  • Automated checks: in-page links, the email and LinkedIn links, language switching and persistence, theme toggle and persistence, fallback when stored settings are invalid, skip link and keyboard focus, the mobile menu (open, close on link click, close on Escape), and reduced motion.
  • Lighthouse (local, simulated mobile): Accessibility 100, Best Practices 100, SEO 100. Performance was 81 on one run and 93 on the next.

Notes for review

  • The LinkedIn URL is https://www.linkedin.com/greyng, exactly as supplied. The old site used https://www.linkedin.com/in/greyng/, and the version without /in/ may not resolve. To change it, edit contact.linkedin in siteConfig.ts.
  • Pages source must be set to GitHub Actions. The owner reports this is already done.

Generated by Claude Code

- New single-page portfolio for Luong Nguyen Van (Grey), CEO & Founder of DGNA:
  hero with abstract CSS-3D visual, About, four service areas (Data Governance &
  Metadata featured), working approach, Partners & Ecosystem, Contact, footer
- Vietnamese/English switcher and light/dark/system theme, both persisted
- Content centralised in src/data/siteConfig.ts; UI strings in src/i18n/translations.ts
- SEO/social metadata, favicon, OG image, robots.txt and sitemap
- GitHub Actions workflow builds (lint, typecheck, build) and deploys to Pages
- Previous static site moved to legacy/ (kept, not deployed)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7iMyYV4daUdBKtZaZ7zBx
@greyhub
greyhub merged commit 811fc6f into main Oct 22, 2026
2 checks passed
@greyhub
greyhub deleted the claude/laughing-curie-vdkivq branch October 22, 2026 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants