A modern one-page portfolio built with Next.js, React, Tailwind CSS v4, and Framer Motion.
This project is designed to be easy to customize through a single content file: settings.json. Personal info, social links, SEO metadata, projects, experience, certifications, stats, and resume download settings are all managed there.
The site includes:
- Animated hero section with availability status and CV download
- About, skills, stats, experience, education, and certifications sections
- Featured projects with a modal for deeper project details
- Testimonials and contact section
- Smooth scrolling, custom cursor, loading screen, section indicator, and animated background
- SEO metadata configured from
settings.json
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS v4
- Framer Motion
- Lucide React
- Node.js 20+ recommended
- npm
npm installnpm run devOpen http://localhost:3000 in your browser.
npm run build
npm run startnpm run lintapp/
components/ Reusable UI sections and motion components
globals.css Global styles and theme variables
layout.tsx Root layout and metadata setup
page.tsx Main one-page portfolio composition
public/
Rui_Jin_Resume.docx
robots.txt
sitemap.xml
settings.json Main content and configuration source
Most of the site content comes from settings.json.
Edit:
personalsocialcontactfiles
Edit:
projectsexperienceeducationcertificationstestimonialsskillsservicesstats
Edit the seo section in settings.json:
siteUrlsiteNamesiteDescriptionkeywordsogImagetwitterHandlegoogleSiteVerification
Before deploying, replace placeholder values like:
https://yourwebsite.comyour-verification-code
The CV download button uses the file path in:
"files": {
"cv": "/Rui_Jin_Resume.docx"
}To change the downloadable file:
- Add your resume to
public/ - Update
settings.json - If needed, adjust the filename in
app/components/DownloadCV.tsx
- The contact form is currently UI-only and simulates success locally. It is not connected to an email service or backend endpoint yet.
- The site metadata is generated from
app/layout.tsxusing values fromsettings.json. - The design uses a dark visual theme defined in
app/globals.css.
npm run dev- Start the local development servernpm run build- Create the production buildnpm run start- Run the production servernpm run lint- Run ESLint
This project can be deployed on Vercel or any platform that supports Next.js.
Recommended pre-deploy checklist:
- Update
seo.siteUrl - Replace the resume file if needed
- Verify social links
- Replace any placeholder portfolio content
- Connect the contact form if you want live submissions
This project includes an MIT LICENSE.