An open API service indexing awesome lists of open source software.

https://github.com/sa001gar/portfolio-website-next-js

A Hacker-inspired Developer Portfolio with terminal vibes and classic green-on-black aesthetics
https://github.com/sa001gar/portfolio-website-next-js

blog contentful-cms developer nextjs15 portfolio portfolio-site portfolio-template portfolio-website software software-developer software-developer-portfolio

Last synced: 9 days ago
JSON representation

A Hacker-inspired Developer Portfolio with terminal vibes and classic green-on-black aesthetics

Awesome Lists containing this project

README

          


portfolio-website-next-js-banner



โฏ Sagar Kundu | Full Stack Developer & Cyber Expert



license
last-commit
repo-top-language
repo-language-count


Built with the tools and technologies:



npm
Autoprefixer
PostCSS
JavaScript
React
TypeScript
Zod
datefns



## ๐Ÿ”— Table of Contents

- [๐Ÿ“ Overview](#-overview)
- [๐Ÿ‘พ Features](#-features)
- [๐Ÿ“ Project Structure](#-project-structure)
- [๐Ÿ“‚ Project Index](#-project-index)
- [๐Ÿš€ Getting Started](#-getting-started)
- [โ˜‘๏ธ Prerequisites](#-prerequisites)
- [โš™๏ธ Installation](#-installation)
- [๐Ÿค– Usage](#๐Ÿค–-usage)
- [๐Ÿงช Testing](#๐Ÿงช-testing)
- [๐Ÿ“Œ Project Roadmap](#-project-roadmap)
- [๐Ÿ”ฐ Contributing](#-contributing)
- [๐ŸŽ— License](#-license)
- [๐Ÿ™Œ Acknowledgments](#-acknowledgments)

---

## ๐Ÿ“ Overview

This portfolio website is built using **Next.js**, a powerful React framework for server-side rendering and static site generation. It leverages **Contentful CMS** as the backend to manage and deliver content seamlessly. The combination of these technologies ensures a fast, scalable, and dynamic user experience, making it an ideal platform to showcase projects, skills, and professional achievements.

---

## ๐Ÿ‘พ Features

- **Dynamic Blog Section**: A fully dynamic blog section that fetches and displays articles from a CMS, allowing for seamless content updates without redeploying the site.
- **Projects Showcase**: A visually appealing and interactive projects section that highlights your work with detailed descriptions, images, and links to live demos or repositories.
- **Linux-Inspired UI**: A sleek, hacker-style interface inspired by Linux terminal aesthetics, featuring dark mode, terminal-like animations, and a focus on backend development tools.
- **Responsive Design**: Fully responsive layout ensuring a seamless experience across all devices, from desktops to mobile phones.
- **Contentful CMS Integration**: Backend powered by Contentful CMS for easy content management and scalability.
- **Fast and Secure**: Built with Next.js for server-side rendering and optimized performance, ensuring fast load times and enhanced security.
- **Customizable Themes**: Ability to switch between themes, including a hacker-style dark theme and a professional light theme.
- **SEO Optimized**: Fully optimized for search engines to improve visibility and reach.
- **Interactive Animations**: Subtle animations and transitions to enhance user engagement without compromising performance.
- **Developer-Friendly**: Clean, modular codebase with extensive documentation for easy customization and contribution.

---

## ๐Ÿ“ Project Structure

```sh
โ””โ”€โ”€ portfolio-website-next-js/
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ app
โ”‚ โ”œโ”€โ”€ about
โ”‚ โ”‚ โ”œโ”€โ”€ loading.tsx
โ”‚ โ”‚ โ””โ”€โ”€ page.tsx
โ”‚ โ”œโ”€โ”€ blog
โ”‚ โ”‚ โ”œโ”€โ”€ [slug]
โ”‚ โ”‚ โ”œโ”€โ”€ loading.tsx
โ”‚ โ”‚ โ””โ”€โ”€ page.tsx
โ”‚ โ”œโ”€โ”€ contact
โ”‚ โ”‚ โ”œโ”€โ”€ loading.tsx
โ”‚ โ”‚ โ””โ”€โ”€ page.tsx
โ”‚ โ”œโ”€โ”€ experience
โ”‚ โ”‚ โ”œโ”€โ”€ loading.tsx
โ”‚ โ”‚ โ””โ”€โ”€ page.tsx
โ”‚ โ”œโ”€โ”€ globals.css
โ”‚ โ”œโ”€โ”€ layout.tsx
โ”‚ โ”œโ”€โ”€ loading.tsx
โ”‚ โ”œโ”€โ”€ page.tsx
โ”‚ โ”œโ”€โ”€ project
โ”‚ โ”‚ โ”œโ”€โ”€ [slug]
โ”‚ โ”‚ โ”œโ”€โ”€ loading.tsx
โ”‚ โ”‚ โ””โ”€โ”€ page.tsx
โ”‚ โ”œโ”€โ”€ robots.ts
โ”‚ โ””โ”€โ”€ sitemap.ts
โ”œโ”€โ”€ bun.lock
โ”œโ”€โ”€ components
โ”‚ โ”œโ”€โ”€ analytics.tsx
โ”‚ โ”œโ”€โ”€ animated-section.tsx
โ”‚ โ”œโ”€โ”€ animation-settings-panel.tsx
โ”‚ โ”œโ”€โ”€ command-line.tsx
โ”‚ โ”œโ”€โ”€ contact-form.tsx
โ”‚ โ”œโ”€โ”€ contact-section.tsx
โ”‚ โ”œโ”€โ”€ credentials-section.tsx
โ”‚ โ”œโ”€โ”€ enhanced-profile.tsx
โ”‚ โ”œโ”€โ”€ enhanced-scroll-indicator.tsx
โ”‚ โ”œโ”€โ”€ experience-card.tsx
โ”‚ โ”œโ”€โ”€ page-loader.tsx
โ”‚ โ”œโ”€โ”€ portfolio-header.tsx
โ”‚ โ”œโ”€โ”€ project-card.tsx
โ”‚ โ”œโ”€โ”€ pwa-install-prompt.tsx
โ”‚ โ”œโ”€โ”€ scroll-progress-indicator.tsx
โ”‚ โ”œโ”€โ”€ scroll-to-top-button.tsx
โ”‚ โ”œโ”€โ”€ scroll-to-top.tsx
โ”‚ โ”œโ”€โ”€ search-filter.tsx
โ”‚ โ”œโ”€โ”€ service-worker-registration.tsx
โ”‚ โ”œโ”€โ”€ sidebar.tsx
โ”‚ โ”œโ”€โ”€ skill-tag.tsx
โ”‚ โ”œโ”€โ”€ social-links.tsx
โ”‚ โ”œโ”€โ”€ terminal-command.tsx
โ”‚ โ”œโ”€โ”€ terminal-loader.tsx
โ”‚ โ”œโ”€โ”€ terminal-provider.tsx
โ”‚ โ”œโ”€โ”€ terminal-text.tsx
โ”‚ โ”œโ”€โ”€ terminal-window.tsx
โ”‚ โ”œโ”€โ”€ theme-provider.tsx
โ”‚ โ””โ”€โ”€ ui
โ”‚ โ”œโ”€โ”€ accordion.tsx
โ”‚ โ”œโ”€โ”€ alert-dialog.tsx
โ”‚ โ”œโ”€โ”€ alert.tsx
โ”‚ โ”œโ”€โ”€ aspect-ratio.tsx
โ”‚ โ”œโ”€โ”€ avatar.tsx
โ”‚ โ”œโ”€โ”€ badge.tsx
โ”‚ โ”œโ”€โ”€ breadcrumb.tsx
โ”‚ โ”œโ”€โ”€ button.tsx
โ”‚ โ”œโ”€โ”€ calendar.tsx
โ”‚ โ”œโ”€โ”€ card.tsx
โ”‚ โ”œโ”€โ”€ carousel.tsx
โ”‚ โ”œโ”€โ”€ chart.tsx
โ”‚ โ”œโ”€โ”€ checkbox.tsx
โ”‚ โ”œโ”€โ”€ collapsible.tsx
โ”‚ โ”œโ”€โ”€ command.tsx
โ”‚ โ”œโ”€โ”€ context-menu.tsx
โ”‚ โ”œโ”€โ”€ dialog.tsx
โ”‚ โ”œโ”€โ”€ drawer.tsx
โ”‚ โ”œโ”€โ”€ dropdown-menu.tsx
โ”‚ โ”œโ”€โ”€ form.tsx
โ”‚ โ”œโ”€โ”€ hover-card.tsx
โ”‚ โ”œโ”€โ”€ input-otp.tsx
โ”‚ โ”œโ”€โ”€ input.tsx
โ”‚ โ”œโ”€โ”€ label.tsx
โ”‚ โ”œโ”€โ”€ menubar.tsx
โ”‚ โ”œโ”€โ”€ navigation-menu.tsx
โ”‚ โ”œโ”€โ”€ pagination.tsx
โ”‚ โ”œโ”€โ”€ popover.tsx
โ”‚ โ”œโ”€โ”€ progress.tsx
โ”‚ โ”œโ”€โ”€ radio-group.tsx
โ”‚ โ”œโ”€โ”€ resizable.tsx
โ”‚ โ”œโ”€โ”€ scroll-area.tsx
โ”‚ โ”œโ”€โ”€ select.tsx
โ”‚ โ”œโ”€โ”€ separator.tsx
โ”‚ โ”œโ”€โ”€ sheet.tsx
โ”‚ โ”œโ”€โ”€ sidebar.tsx
โ”‚ โ”œโ”€โ”€ skeleton.tsx
โ”‚ โ”œโ”€โ”€ slider.tsx
โ”‚ โ”œโ”€โ”€ sonner.tsx
โ”‚ โ”œโ”€โ”€ switch.tsx
โ”‚ โ”œโ”€โ”€ table.tsx
โ”‚ โ”œโ”€โ”€ tabs.tsx
โ”‚ โ”œโ”€โ”€ textarea.tsx
โ”‚ โ”œโ”€โ”€ toast.tsx
โ”‚ โ”œโ”€โ”€ toaster.tsx
โ”‚ โ”œโ”€โ”€ toggle-group.tsx
โ”‚ โ”œโ”€โ”€ toggle.tsx
โ”‚ โ”œโ”€โ”€ tooltip.tsx
โ”‚ โ”œโ”€โ”€ use-mobile.tsx
โ”‚ โ””โ”€โ”€ use-toast.ts
โ”œโ”€โ”€ components.json
โ”œโ”€โ”€ contexts
โ”‚ โ””โ”€โ”€ animation-context.tsx
โ”œโ”€โ”€ data
โ”‚ โ””โ”€โ”€ portfolio-data.json
โ”œโ”€โ”€ hooks
โ”‚ โ”œโ”€โ”€ use-intersection-observer.ts
โ”‚ โ”œโ”€โ”€ use-mobile.tsx
โ”‚ โ””โ”€โ”€ use-toast.ts
โ”œโ”€โ”€ lib
โ”‚ โ”œโ”€โ”€ data.ts
โ”‚ โ”œโ”€โ”€ projects.ts
โ”‚ โ”œโ”€โ”€ sitemap-utils.ts
โ”‚ โ””โ”€โ”€ utils.ts
โ”œโ”€โ”€ next.config.mjs
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ pnpm-lock.yaml
โ”œโ”€โ”€ postcss.config.mjs
โ”œโ”€โ”€ public
โ”‚ โ”œโ”€โ”€ browserconfig.xml
โ”‚ โ”œโ”€โ”€ certs
โ”‚ โ”‚ โ””โ”€โ”€ ec-council.png
โ”‚ โ”œโ”€โ”€ favicon.avif
โ”‚ โ”œโ”€โ”€ placeholder-logo.png
โ”‚ โ”œโ”€โ”€ placeholder-logo.svg
โ”‚ โ”œโ”€โ”€ placeholder-user.jpg
โ”‚ โ”œโ”€โ”€ placeholder.jpg
โ”‚ โ”œโ”€โ”€ placeholder.svg
โ”‚ โ”œโ”€โ”€ projects
โ”‚ โ”‚ โ””โ”€โ”€ applied-physio
โ”‚ โ”œโ”€โ”€ sagarkundu.avif
โ”‚ โ”œโ”€โ”€ sagarkundu_square.avif
โ”‚ โ”œโ”€โ”€ site.webmanifest
โ”‚ โ””โ”€โ”€ sw.js
โ”œโ”€โ”€ styles
โ”‚ โ””โ”€โ”€ globals.css
โ”œโ”€โ”€ tailwind.config.js
โ””โ”€โ”€ tsconfig.json
```

### ๐Ÿ“‚ Project Index

PORTFOLIO-WEBSITE-NEXT-JS/

__root__




next.config.mjs
โฏ REPLACE-ME


pnpm-lock.yaml
โฏ REPLACE-ME


tsconfig.json
โฏ REPLACE-ME


tailwind.config.js
โฏ REPLACE-ME


postcss.config.mjs
โฏ REPLACE-ME


package.json
โฏ REPLACE-ME


components.json
โฏ REPLACE-ME





contexts



animation-context.tsx
โฏ REPLACE-ME





lib



data.ts
โฏ REPLACE-ME


sitemap-utils.ts
โฏ REPLACE-ME


projects.ts
โฏ REPLACE-ME


utils.ts
โฏ REPLACE-ME





styles



globals.css
โฏ REPLACE-ME





components



portfolio-header.tsx
โฏ REPLACE-ME


pwa-install-prompt.tsx
โฏ REPLACE-ME


terminal-loader.tsx
โฏ REPLACE-ME


contact-form.tsx
โฏ REPLACE-ME


theme-provider.tsx
โฏ REPLACE-ME


scroll-to-top.tsx
โฏ REPLACE-ME


credentials-section.tsx
โฏ REPLACE-ME


skill-tag.tsx
โฏ REPLACE-ME


search-filter.tsx
โฏ REPLACE-ME


scroll-progress-indicator.tsx
โฏ REPLACE-ME


terminal-window.tsx
โฏ REPLACE-ME


animation-settings-panel.tsx
โฏ REPLACE-ME


sidebar.tsx
โฏ REPLACE-ME


contact-section.tsx
โฏ REPLACE-ME


scroll-to-top-button.tsx
โฏ REPLACE-ME


analytics.tsx
โฏ REPLACE-ME


animated-section.tsx
โฏ REPLACE-ME


social-links.tsx
โฏ REPLACE-ME


enhanced-scroll-indicator.tsx
โฏ REPLACE-ME


terminal-provider.tsx
โฏ REPLACE-ME


page-loader.tsx
โฏ REPLACE-ME


experience-card.tsx
โฏ REPLACE-ME


project-card.tsx
โฏ REPLACE-ME


enhanced-profile.tsx
โฏ REPLACE-ME


terminal-command.tsx
โฏ REPLACE-ME


terminal-text.tsx
โฏ REPLACE-ME


service-worker-registration.tsx
โฏ REPLACE-ME


command-line.tsx
โฏ REPLACE-ME



ui



context-menu.tsx
โฏ REPLACE-ME


toaster.tsx
โฏ REPLACE-ME


accordion.tsx
โฏ REPLACE-ME


alert-dialog.tsx
โฏ REPLACE-ME


radio-group.tsx
โฏ REPLACE-ME


checkbox.tsx
โฏ REPLACE-ME


input-otp.tsx
โฏ REPLACE-ME


sheet.tsx
โฏ REPLACE-ME


progress.tsx
โฏ REPLACE-ME


badge.tsx
โฏ REPLACE-ME


breadcrumb.tsx
โฏ REPLACE-ME


sidebar.tsx
โฏ REPLACE-ME


pagination.tsx
โฏ REPLACE-ME


label.tsx
โฏ REPLACE-ME


scroll-area.tsx
โฏ REPLACE-ME


input.tsx
โฏ REPLACE-ME


textarea.tsx
โฏ REPLACE-ME


toast.tsx
โฏ REPLACE-ME


separator.tsx
โฏ REPLACE-ME


toggle-group.tsx
โฏ REPLACE-ME


command.tsx
โฏ REPLACE-ME


popover.tsx
โฏ REPLACE-ME


slider.tsx
โฏ REPLACE-ME


form.tsx
โฏ REPLACE-ME


select.tsx
โฏ REPLACE-ME


button.tsx
โฏ REPLACE-ME


drawer.tsx
โฏ REPLACE-ME


toggle.tsx
โฏ REPLACE-ME


dialog.tsx
โฏ REPLACE-ME


alert.tsx
โฏ REPLACE-ME


carousel.tsx
โฏ REPLACE-ME


navigation-menu.tsx
โฏ REPLACE-ME


table.tsx
โฏ REPLACE-ME


tabs.tsx
โฏ REPLACE-ME


skeleton.tsx
โฏ REPLACE-ME


use-toast.ts
โฏ REPLACE-ME


switch.tsx
โฏ REPLACE-ME


dropdown-menu.tsx
โฏ REPLACE-ME


collapsible.tsx
โฏ REPLACE-ME


menubar.tsx
โฏ REPLACE-ME


resizable.tsx
โฏ REPLACE-ME


chart.tsx
โฏ REPLACE-ME


avatar.tsx
โฏ REPLACE-ME


hover-card.tsx
โฏ REPLACE-ME


aspect-ratio.tsx
โฏ REPLACE-ME


calendar.tsx
โฏ REPLACE-ME


tooltip.tsx
โฏ REPLACE-ME


sonner.tsx
โฏ REPLACE-ME


use-mobile.tsx
โฏ REPLACE-ME


card.tsx
โฏ REPLACE-ME







hooks



use-intersection-observer.ts
โฏ REPLACE-ME


use-toast.ts
โฏ REPLACE-ME


use-mobile.tsx
โฏ REPLACE-ME





public



favicon.avif
โฏ REPLACE-ME


sagarkundu_square.avif
โฏ REPLACE-ME


sagarkundu.avif
โฏ REPLACE-ME


site.webmanifest
โฏ REPLACE-ME


sw.js
โฏ REPLACE-ME



projects


applied-physio



main.avif
โฏ REPLACE-ME


services.avif
โฏ REPLACE-ME


contact.avif
โฏ REPLACE-ME









app



layout.tsx
โฏ REPLACE-ME


sitemap.ts
โฏ REPLACE-ME


globals.css
โฏ REPLACE-ME


page.tsx
โฏ REPLACE-ME


loading.tsx
โฏ REPLACE-ME


robots.ts
โฏ REPLACE-ME



about



page.tsx
โฏ REPLACE-ME


loading.tsx
โฏ REPLACE-ME





contact



page.tsx
โฏ REPLACE-ME


loading.tsx
โฏ REPLACE-ME





experience



page.tsx
โฏ REPLACE-ME


loading.tsx
โฏ REPLACE-ME





project



page.tsx
โฏ REPLACE-ME


loading.tsx
โฏ REPLACE-ME



[slug]



not-found.tsx
โฏ REPLACE-ME


page.tsx
โฏ REPLACE-ME


loading.tsx
โฏ REPLACE-ME







blog



page.tsx
โฏ REPLACE-ME


loading.tsx
โฏ REPLACE-ME



[slug]



page.tsx
โฏ REPLACE-ME


loading.tsx
โฏ REPLACE-ME







---
## ๐Ÿš€ Getting Started

### โ˜‘๏ธ Prerequisites

Before getting started with portfolio-website-next-js, ensure your runtime environment meets the following requirements:

- **Programming Language:** TypeScript
- **Package Manager:** Npm

### โš™๏ธ Installation

Install portfolio-website-next-js using one of the following methods:

**Build from source:**

1. Clone the portfolio-website-next-js repository:
```sh
โฏ git clone https://github.com/sa001gar/portfolio-website-next-js
```

2. Navigate to the project directory:
```sh
โฏ cd portfolio-website-next-js
```

3. Install the project dependencies:

**Using `npm`** ย  [](https://www.npmjs.com/)

```sh
โฏ npm install
```

### ๐Ÿค– Usage
Run portfolio-website-next-js using the following command:
**Using `npm`** ย  [](https://www.npmjs.com/)

```sh
โฏ npm start
```

### ๐Ÿงช Testing
Run the test suite using the following command:
**Using `npm`** ย  [](https://www.npmjs.com/)

```sh
โฏ npm test
```

---
## ๐Ÿ“Œ Project Roadmap

- [X] **`Task 1`**: Contact form submission through Web3 forms.
- [X] **`Task 2`**: Blog Posting using Contentful Headless CMS.
- [ ] **`Task 3`**: SEO optimization and Improve Page Speed.

---

## ๐Ÿ”ฐ Contributing

- **๐Ÿ’ฌ [Join the Discussions](https://github.com/sa001gar/portfolio-website-next-js/discussions)**: Share your insights, provide feedback, or ask questions.
- **๐Ÿ› [Report Issues](https://github.com/sa001gar/portfolio-website-next-js/issues)**: Submit bugs found or log feature requests for the `portfolio-website-next-js` project.
- **๐Ÿ’ก [Submit Pull Requests](https://github.com/sa001gar/portfolio-website-next-js/blob/main/CONTRIBUTING.md)**: Review open PRs, and submit your own PRs.

Contributing Guidelines

1. **Fork the Repository**: Start by forking the project repository to your github account.
2. **Clone Locally**: Clone the forked repository to your local machine using a git client.
```sh
git clone https://github.com/sa001gar/portfolio-website-next-js
```
3. **Create a New Branch**: Always work on a new branch, giving it a descriptive name.
```sh
git checkout -b new-feature-x
```
4. **Make Your Changes**: Develop and test your changes locally.
5. **Commit Your Changes**: Commit with a clear message describing your updates.
```sh
git commit -m 'Implemented new feature x.'
```
6. **Push to github**: Push the changes to your forked repository.
```sh
git push origin new-feature-x
```
7. **Submit a Pull Request**: Create a PR against the original project repository. Clearly describe the changes and their motivations.
8. **Review**: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!

Contributor Graph






---

## ๐ŸŽ— License

This project is protected under the [GNU Affero General Public License v3.0](LICENSE) License. For more details, refer to the [LICENSE](LICENSE) file.

---

## ๐Ÿ™Œ Acknowledgments

- Props to my mom for unintentionally dropping the UI idea that sparked this terminal-style hacker aesthetic. Genius hides in plain sight.

---