My personal portfolio website β a clean, minimal single-page site with a dark mode toggle and animated role text.
Live at deshankoswatte.github.io
- π Dark / Light mode β respects your system preference, with a toggle in the header
- π Animated role text β cycles through titles like SW Engineer, Developer, Open Source Fan, and more using smooth CSS transitions
- π± Responsive β works on mobile and desktop
- β‘ Static export β fully pre-rendered HTML, no server needed
| Tool | Version | Purpose |
|---|---|---|
| Next.js | 15.5.18 | Framework |
| React | 18 | UI |
| next-themes | 0.3 | Dark mode |
| @heroicons/react | 2.x | Icons |
| TypeScript | 5.x | Type safety |
Prerequisites: Node.js 18+
# 1. Clone the repo
git clone https://github.com/deshankoswatte/deshankoswatte.github.io.git
cd deshankoswatte.github.io
# 2. Install dependencies
npm install --legacy-peer-deps
# 3. Start the dev server
npm run devThen open http://localhost:3000.
# Build a production static export
npm run build
# The output is in the `out/` folder β ready to deploy anywhereThe site is automatically deployed to GitHub Pages via the workflow in .github/workflows/gh-pages-deploy.yml whenever you push to main.
This site is deployed as a fully static export (no server, no middleware). Because of this:
- Middleware-based CVEs (e.g. CVE-2025-29927) do not apply β no middleware is executed at runtime
- Server Component CVEs do not apply β the site uses the Pages Router with static generation
- Image cache CVEs do not apply β the built output is flat HTML/CSS/JS with no running Next.js server
Next.js is pinned to 15.5.18 (the latest fully-patched 14.x release). The only remaining npm audit flag is against the next package itself for server-mode features this site doesn't use.
βββ assets/ # Profile picture and screenshots
βββ components/
β βββ header.tsx # Nav bar with dark mode toggle
β βββ footer.tsx # Copyright + links
β βββ intro.tsx # Main content + animated text
β βββ layout.tsx # Page wrapper
βββ pages/
β βββ index.tsx # Entry point
βββ styles/
β βββ index.css # Global styles
β βββ theme.css # CSS variables (light + dark)
β βββ bootstrap-grid.css # Minimal grid layout
βββ public/ # Static assets (favicon, etc.)
| Platform | Link |
|---|---|
| dehami.deshan@gmail.com | |
| @deshankoswatte | |
| deshankoswatte | |
| GitHub | @deshankoswatte |
| Medium | @deshankoswatte |
| Stack Overflow | deshan-koswatte |
Copyright Β© Dehami Koswatte 2021 β present
β Buy me a coffee