A cybersecurity portfolio & service platform for an Ethical Hacker, AI Enthusiast, and Penetration Tester — built with Next.js 14, TypeScript, and Tailwind CSS.
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- Deployment
- Cleaning Commit History
- Security
- Contributing
- License
- Contact
NEXULEAN is a personal portfolio and service platform for a cybersecurity professional specialising in:
- Ethical Hacking & Penetration Testing
- AI-Powered Security Solutions
- Digital Forensics & Incident Response
- Threat Intelligence & Reverse Engineering
- Security Consulting
The site is statically exported and deployed on Netlify, with Firebase-backed authentication for the dashboard and client portal.
| Page / Feature | Description |
|---|---|
| Home | Hero section, stats, expertise cards, testimonials, and services overview |
| Projects | Showcase of security tools, exploits, and AI models |
| Services | Detailed breakdown of cybersecurity service offerings |
| Contact | Enquiry form for security assessments and consulting |
| Login / Signup | Firebase authentication (email & password) |
| Dashboard | Authenticated client portal |
| Secure Form | Hardened contact/submission form |
| Reset Password | Firebase-powered password reset flow |
| Dark / Light Mode | System-aware theme toggle via next-themes |
| Animations | Smooth page and component transitions powered by Framer Motion |
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router, static export) |
| Language | TypeScript 5 |
| Styling | Tailwind CSS 3 + tailwindcss-animate |
| UI Components | Radix UI + shadcn/ui |
| Animations | Framer Motion |
| Authentication | Firebase (Auth) |
| Icons | Lucide React |
| Forms | React Hook Form + Zod |
| Charts | Recharts |
| Deployment | Netlify |
- Node.js ≥ 18
- npm (comes with Node.js) — or pnpm if you prefer
# Clone the repository
git clone https://github.com/Stalin-143/website.git
cd website
# Install dependencies
npm installCreate a .env.local file in the project root (this file is git-ignored):
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_idNever commit your
.env.localfile. It is already included in.gitignore.
# Start the development server
npm run devOpen http://localhost:3000 in your browser.
Other available scripts:
npm run build # Create a production static export (outputs to /out)
npm run start # Serve the production build locally
npm run lint # Run ESLintwebsite/
├── app/ # Next.js App Router pages & layouts
│ ├── layout.tsx # Root layout (Navbar, AuthProvider, ThemeProvider)
│ ├── page.tsx # Home page
│ ├── contact/ # Contact page
│ ├── dashboard/ # Authenticated dashboard
│ ├── login/ # Login page
│ ├── signup/ # Sign-up page
│ ├── reset-password/ # Password reset page
│ ├── projects/ # Projects showcase
│ ├── services/ # Security services page
│ └── secure-form/ # Hardened enquiry form
├── components/ # Shared React components
│ ├── navbar.tsx # Navigation bar
│ ├── auth-provider.tsx # Firebase auth context
│ ├── theme-provider.tsx # next-themes wrapper
│ ├── theme-toggle.tsx # Dark/light mode toggle
│ └── ui/ # shadcn/ui component library
├── hooks/ # Custom React hooks
├── lib/ # Utility functions & Firebase config
├── public/ # Static assets
├── styles/ # Global CSS
├── netlify.toml # Netlify build & redirect configuration
├── next.config.mjs # Next.js configuration
├── tailwind.config.js # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
The project is deployed on Netlify using a static export:
- Build command:
npm run build - Publish directory:
out - Node version: 18
Security headers (configured in netlify.toml):
| Header | Value |
|---|---|
X-Frame-Options |
DENY |
X-Content-Type-Options |
nosniff |
Referrer-Policy |
strict-origin-when-cross-origin |
To deploy your own fork, connect the repository to Netlify and set the environment variables listed above in the Netlify dashboard under Site settings → Environment variables.
Sometimes you may want to erase the entire git commit history and start fresh — for example, when sensitive data (such as API keys) was accidentally committed in an earlier commit and you want to permanently remove it from history.
Will my site still work after deleting history? Yes, absolutely. Git history is only metadata about how the code changed over time. Your actual site files are not affected. Netlify will continue to build and deploy your site exactly as before.
A helper script is included in this repository: clean-history.sh
# 1. Make sure all your changes are committed
git status
# 2. Make the script executable
chmod +x clean-history.sh
# 3. Run the script (defaults to 'main' branch)
./clean-history.sh
# To target a different branch name, pass it as an argument:
./clean-history.sh developThe script will:
- Create a new orphan branch (zero history) containing all current files
- Replace the existing
mainbranch with this clean version - Force-push to GitHub, overwriting the old history
⚠️ This is irreversible. Once force-pushed, the old commits are gone permanently. If you need to keep a copy of the old history, create a backup branch first:git branch backup-old-history git push origin backup-old-history
# 1. Create an orphan branch
git checkout --orphan temp-clean
# 2. Stage all files
git add -A
# 3. Create a fresh initial commit
git commit -m "Initial commit"
# 4. Delete the old main branch and rename this one
git branch -D main
git branch -m main
# 5. Force-push to GitHub
git push --force origin mainThis project takes security seriously. Please review our Security Policy before reporting any vulnerabilities.
- Do not open public GitHub issues for security vulnerabilities.
- Use the GitHub private vulnerability reporting feature instead.
Contributions, bug reports, and feature requests are welcome!
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature-name - Make your changes and commit:
git commit -m "feat: add your feature" - Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request
Please ensure your code passes npm run lint before submitting.
This project is licensed under the MIT License.
| Platform | Link |
|---|---|
| GitHub | @Stalin-143 |
| Stalin S | |
| Hugging Face | 5t4l1n |
| Live Monitor | monitor.nexulean.info |
© 2026 Nexulean. All rights reserved. | Ethical Hacking & AI Security Solutions.