Single-page portfolio for Ajay Kumar Maheshwari — Next.js App Router, custom reference UI, AsriUI for forms/typography primitives, and PWA via @ducanh2912/next-pwa.
| File | Contents |
|---|---|
design.md |
Architecture, tokens, section map, data flow |
design/reference/AGENT-UI.md |
Visual reference + agent UI checklist |
.cursor/rules/ponytail.mdc |
Cursor conventions |
AGENTS.md |
Next.js + portfolio agent notes |
src/
app/ page.tsx, layout, blog, offline, manifest, SEO routes
features/
about/ header/ hero/ tech-stack/ companies/ journey/
projects/ content/ open-source/ mentorship/ recommendations/ contact/
shared/
config/site.ts copy, links, resumeHref(), socialLinks
components/ RefSection, portfolio-typography, providers
styles/ portfolio-template.css, portfolio.css, portfolio-asriui.css
Home section order is defined in src/app/page.tsx (see design.md).
- Copy & URLs:
src/shared/config/site.ts - Resume: replace
public/resume/ajay-kumar-maheshwari-resume.pdf - Per-section data:
src/features/<name>/data/ - Sync GitHub / Medium / content stats:
npm run sync:data(also runs on prebuild)
npm run dev
npm run build
npm run startAfter npm run build, check Chrome DevTools → Application → Manifest / Service Workers.
Push to main runs .github/workflows/deploy-github-pages.yml.
- Repo Settings → Pages → Build and deployment: source GitHub Actions.
- Project site:
https://<user>.github.io/<repo>/— setNEXT_PUBLIC_BASE_PATH=/repo(CI or env). - Custom domain: set
NEXT_PUBLIC_SITE_URLin.env.productionor repo variables.
Local export example:
GITHUB_PAGES=1 NEXT_PUBLIC_BASE_PATH=/portfolio NEXT_PUBLIC_SITE_URL=https://you.github.io/portfolio npm run build- Manifest:
src/app/manifest.ts - Offline:
src/app/offline/page.tsx - Service worker: production build only (
public/sw.jsgenerated)