This is my personal website for my research, field work, publications, skills, and contact details.
Live site: www.akashpandey.com
This is not a vibe-coded website. I made it for myself and still change it when I learn something new. I deliberately keep the content in JSON and Markdown, store the photos and CV as normal files, and use static pages where possible. It is a little old-fashioned, but it is quick and easy for me to edit. I took some help from ChatGPT when I got stuck.
I started with Next.js and React, used Tailwind CSS for styling, and kept the small UI pieces inside the repository. MapLibre renders NASA GIBS satellite imagery. CelesTrak supplies the public orbital data, and Three.js draws the small satellite models and side scenes. KASI answers common questions locally and uses OpenRouter when it needs a model. The contact form sends mail through Resend.
The site is deployed on Vercel from this GitHub repository.
You need a recent Node.js version and npm.
git clone https://github.com/ItsAkashPandey/akashpandey.com.git
cd akashpandey.com
npm install
Copy-Item .env.example .env.local
npm run devOpen http://localhost:3000.
The normal pages work from the local files. KASI, contact mail, and optional
chat logging need the matching values from .env.example.
Before pushing a change, I normally run:
npm run lint
npm run buildsrc/data/activities.jsoncontains activities and their links.src/data/publications.jsoncontains papers, DOI links, and publication images.src/data/skills.jsoncontains tools, instruments, and skill photos.src/data/career.jsonandsrc/data/education.jsoncontain the timeline.src/data/profile.mdcontains the facts used by KASI.src/data/privacy.mdis the privacy text shown on the site.public/resume.pdfis the CV linked from the home page.
Activity photos go in a folder under public. This command rebuilds the
resolvedImages lists from the real files:
npx ts-node scripts/resolve-activity-images.tsI keep external links in the same JSON record as the related activity or publication. I check a link before adding it instead of guessing a post URL.
The main branch is connected to Vercel. Add the required environment variables
in Vercel, push to main, and Vercel builds the site.
Do not commit .env.local. It contains private keys.
Thanks to tedawf.com for the original inspiration, especially the way photographs and research work are presented. The open-source WorldWideView project was also useful while I was learning how orbit tracks can be presented.
The code is available under the MIT License.
