Personal portfolio website of Pramuditha Nadun - AI Researcher & Software Engineer based in Sri Lanka.
This is my personal portfolio website built with Astro.js and React, showcasing my work as an Associate Software Engineer at LOLC Technologies. The site includes:
- A cinematic hero section with a split dark/red visual design
- A developer page with experience timeline, live GitHub project cards, and testimonials
- A designer page featuring a gallery of creative work, logo designs, and VFX showreel
- A gallery of photography and digital art
- A contact page
The project is fully SSR-enabled via @astrojs/node, deployed on Vercel, and supports dark/light mode with smooth animations powered by Framer Motion.
- π Blazing fast - Built with Astro.js for optimal loading speeds
- π¨ Modern UI - Dark/red cinematic design with Tailwind CSS
- π Dark mode - Seamless light/dark theme switching
- π± Fully responsive - Works great on all screen sizes
- π SEO optimized - Structured data and meta tags
- πΌ GitHub project cards - Live data from the GitHub API
- πΌοΈ Designer portfolio - Logo designs, VFX, and gallery
- π Experience timeline - Work history with tech stack badges
- π¬ Testimonials - Collapsible testimonial section
- π Resume download - Direct PDF download
| Layer | Technology |
|---|---|
| Framework | Astro.js v5 |
| UI Components | React 19 |
| Styling | Tailwind CSS v4 |
| Language | TypeScript |
| Animations | Framer Motion |
| Icons | Iconify |
| Deployment | Vercel |
| Database | Neon (PostgreSQL) |
git clone https://github.com/PramudithaN/dev-portfolio.git
cd dev-portfolionpm installCreate a .env file in the project root:
DATABASE_URL=your_neon_postgresql_connection_stringnpm run devOpen http://localhost:3000 in your browser.
| Command | Description |
|---|---|
npm run dev |
Start development server at localhost:3000 |
npm run build |
Type-check and build for production |
npm run preview |
Preview the production build locally |
npm run prettier |
Format all .ts, .tsx, .css, .astro files |
dev-portfolio/
βββ public/
β βββ Documents/ # Resume PDF
β βββ Images/ # Personal photos and artwork
β βββ fonts/ # Custom fonts
β βββ static/ # Static images for projects
βββ src/
β βββ components/ # Astro & React UI components
β β βββ react/ # Interactive React components
β β βββ ui/ # Base UI primitives (shadcn)
β βββ content/
β β βββ blog/ # Blog posts (MD/MDX)
β β βββ projects/ # Project entries (MD)
β βββ layouts/ # Page layout wrappers
β βββ lib/ # Utility functions and DB helpers
β βββ pages/ # File-based routes
β β βββ api/ # API endpoints
β β βββ blog/ # Blog routes
β β βββ gallery/ # Gallery route
β β βββ projects/ # Projects route
β β βββ contact/ # Contact route
β βββ styles/ # Global CSS and typography
β βββ consts.ts # Site metadata, nav, social links, skills
β βββ types.ts # TypeScript type definitions
βββ astro.config.ts # Astro configuration
βββ tsconfig.json # TypeScript configuration
βββ package.json
The site detects the user's system preference on first load and allows manual toggling via the theme button in the navbar. The preference is persisted in localStorage.
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub: github.com/PramudithaN
- LinkedIn: linkedin.com/in/pramuditha-nadun-612b1b204
- Email: pramudithanadun@gmail.com
