Skip to content

A custom-built portfolio created with Next.js to showcase your skills and work, to connect with a wider range of potential clients.

License

Notifications You must be signed in to change notification settings

ZakariaBenali/nextjs-portfolio

Repository files navigation

All in one Nextjs Portfolio

developer-portfolio

A custom-built portfolio created with Next.js to showcase your skills and work with very smooth animations and user friendly interface and experience, and to connect with a wider range of potential clients.

Features

  • Typescript
  • Strongly typed.
  • Husky, Eslint, Prettier Configured.
  • Smooth animation using framer-motion
  • Well-optimized and performant (with a score between 95 - 100)
  • Sendgrid Support to receive emails from the contact form
  • Built-in API routes (you do not need a custom backend)
  • Support for google analytics
  • Google reCaptcha integration
  • Formik integration.
  • Responsive design
  • Built-in color generator (but you can still add your own).
  • Auto fetch GitHub projects (9 with highest stars)
  • Very customizable.
  • PNPM as a default package manager for fast and efficient disk space usage.
  • Code well organized, Customizable, and scalable.

Built using:

  • Next.Js
  • Formik
  • Framer-motion
  • Figma
  • TypeScript
  • Vscode with the help of these amazing extensions extensions.json
  • Additional packages you can find on package.json

⚙️ Prerequisites

  1. Recaptcha Sitekey and SecretKey, grab yours here
  2. GitHub personal access token (classic) This one is optional only if you want auto-fetch repositories, you can create one here with read:user and repo permissions, Make sure it's a Classic personal token and not a Fine-grained personal access token.

The code to get GitHub repositories and their relevant components won’t be added if you don’t specify the GitHub token in the environment.

  1. Google Analytics ID (Same for GitHub access token, it is optional if you want to include Google Analytics)
  2. A Sendgrid API key is necessary to receive the emails from the contact form.

💾 Data

All data on the project is located under the folder data/ located here

NOTE: You need to fill the technologies array in technologies.ts for the typescript check

🛠️ Installation locally

Before proceeding, make sure you have Nodejs and NPM installed.

  1. Install PNPM package:
  npm install -g pnpm
  1. Install dependencies:
 pnpm install
  1. Copy the .env.example to a new file called .env.development.local

This file is only used locally, please use the variable inside it as a reference when deploying

  1. Fill the necessary environment variables on .env.developement.local file
  2. Run the project
   pnpm dev

🚀 Deployment

Make sure to set the necessary environment variables in your production environment.

To Vercel

  1. Install Vercel CLI:
pnpm i -g vercel
  1. Deploy to Vercel
   vercel

#Add --prod if you want to deploy to production

Alternatively, You can create a GitHub repo from this template, and make the necessary modifications locally and push it to the repo, then link Vercel with your newly created repository.

Outside Vercel

  • Build the project:
pnpm build
  • Start the server on production:
pnpm start

🔥 Upcoming

  • Astro build version
  • Support for the app folder and the current beta features of next.js 13 (once it's stable)
  • Add support for the telegram bot (receiving contact emails in telegram)
  • Support for sentry for performance and error tracking and monitoring

License

This project is licensed under the MIT License - see the LICENSE.md file for more details

About

A custom-built portfolio created with Next.js to showcase your skills and work, to connect with a wider range of potential clients.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages