DEV Community

Cover image for Build an awesome developer portfolio website.
ABU SAID
ABU SAID

Posted on

Build an awesome developer portfolio website.

As a software developer, it's important to have a robust portfolio website that can display our abilities and experiences. To assist other developers, I have designed a portfolio website using Next, Tailwind CSS, and EmailJS. In this article, I will provide a step-by-step guide on the setup process, along with the GitHub link.

Here is the live preview:
Live preview url

Image description

STEP 01:
Clone the Repository using GitHub link and change the directory to the developer-portfolio.

git clone https://github.com/said7388/developer-portfolio.git
cd developer-portfolio
Enter fullscreen mode Exit fullscreen mode

STEP 02:
Now install all packages using npm or yarn.

npm install
# or
yarn
Enter fullscreen mode Exit fullscreen mode

After installation, all packages, Now change all data on utils/data/* according to you. For example:

  export const personalData = {
  name: "ABU SAID",
  profile: "/profile.png",
  designation: "Full-Stack Software Developer",
  description: "My name is ABU SAID....",
  email: "abusaid7388@gmail.com",
  phone: "+8801608797655",
  address: "Dhaka, Bangladesh",
  github: "https://github.com/said7388",
  facebook: "https://www.facebook.com/abusaid.riyaz/",
  linkedIn: "https://www.linkedin.com/in/abu-said-bd/",
  twitter: "https://twitter.com/said7388",
  stackOverflow: "https://stackoverflow.com/users/16840768/abu-said",
  leetcode: "https://leetcode.com/said3812/",
  devUsername: "said7388",
  resume: "...",
};
Enter fullscreen mode Exit fullscreen mode

The devusername properties replace it with your dev.to username and it will fetch all blogs from your dev.to website.

STEP 03:
Now we will make a .env file and set up our Email.JS credential in a .env file. I am using EmailJs in this project for the user to send mail to me and It's free. The .env file will be the following:

NEXT_PUBLIC_EMAILJS_SERVICE_ID =
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID =
NEXT_PUBLIC_EMAILJS_PUBLIC_KEY =
Enter fullscreen mode Exit fullscreen mode

First of all, go to Emailjs.com and sign up for an account.

Make a email service using Gmail and take the Service ID and add it .env file as REACT_APP_YOUR_SERVICE_ID value.

Then make a Email template and take Template ID from the template setting and use it .env.

Then go to Account and take Public Key and use it in .env.

STEP 04:
Now the portfolio website is ready for the run. You can run it using npm or yarn.

npm run dev
# or
yarn dev
Enter fullscreen mode Exit fullscreen mode

If you like the portfolio project Please give it a star on the GitHub Repository.
You can connect with me on Linkedin: https://www.linkedin.com/in/abu-said-bd/

Top comments (36)

Collapse
 
michaeltharrington profile image
Michael Tharrington

Hey there!

It was pointed out to us that this design is really quite similar to that of codewithmosh.com/

If you're using that site as inspiration for your portfolio, would you please add mention of it to your post as a reference?

Collapse
 
said7388 profile image
ABU SAID

Hello Michael!
Inspiration for the only hero section on my portfolio website was taken from Code with Mosh. However, the remaining 6 sections are unique in concept.

Collapse
 
michaeltharrington profile image
Michael Tharrington

Hey Abu!

Totally understand your point. That said, I still think you should probably give Code with Mosh credit for the partial inspiration though, you know? You could always point out that they just inspired the hero section and design colors.

For instance, the DEV Code of Conduct has an attribution section even though it doesn't directly copy these sources. It's just a good practice — it's a great way to show appreciation for the things that directly inspired you. No one will fault you for including attribution, but they might if you exclude it, so why not add it?

Collapse
 
octavioamu profile image
Octavio Amuchástegui

Hey man sorry but that is not right, there is a line between "inspiration" or just copy assets like github.com/said7388/developer-port...

The thing is you are even putting it on a repo when the original author didn't even open source it, so is not only Immoral but also illegal.

Is not only about code copyright but also design copyright. Mosh site have a branding an palette of colors based on it.

Unless you have Mosh direct permission to do it of course.

Collapse
 
jonrandy profile image
Jon Randy 🎖️

As a software developer, it's important to have a robust portfolio website that can display our abilities and experiences.

It really isn't. This is a total myth

Collapse
 
xr0master profile image
Sergey Khomushin

It's not a myth at all. In particular, if you're a junior, the project is a big bonus for being invited to an interview. So, if your website doesn't work smoothly, it means you don't understand your profession well. For the company, it is better to look at other candidates.

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

Not true at all.

I've been a professional developer for approximately 30 years, and have been interviewing candidates for about 10.

The majority of the best developers I've interviewed or hired have not had portfolio websites.... and the majority of developers who have had portfolio websites turned out to be the weakest candidates. For some candidates, the main factor in rejecting them was actually their portfolio site itself (browser errors, over-engineering, inappropriate use of technology etc.). Without the site, they would likely have gotten further in the interview process.

Much better to have an interesting, unvarnished, active GitHub (or similar) account. This tells a prospective employer way more about your skills and passion than a curated vanity project ever can.

Thread Thread
 
xr0master profile image
Sergey Khomushin • Edited

Maybe another 30 years and you will find out that first, you need to pass the HR selection :)

For some candidates, the main factor in rejecting them was their portfolio site (browser errors, over-engineering, inappropriate use of technology etc.)

Well, you see. It saved a lot of time and money for you and the company.

Thread Thread
 
jonrandy profile image
Jon Randy 🎖️ • Edited

Hahaha, yeah.

The problem in a lot of companies is non-technical HR people being involved in the hiring of technical candidates. They're often blinded by sparkly nonsense, resulting in the rejection of a lot of the best candidates, and the wasting of time by the continued consideration of poor candidates.

Thread Thread
 
link2twenty profile image
Andrew Bone

When I'm sifting through potentials I look for a GitHub too because I'd rather see real code over a portfolio site.

But before candidates make it to me a non-technical person removes all candidates that don't mention certain keywords in their resume or don't have a GitHub or portfolio link.

My advice would be, making a good portfolio won't hurt your chance of getting shortlisted but making a bad one sure will.

Collapse
 
pedrorfpacheco profile image
Pedro Pacheco

Good initiative, however I think that equal websites are not very good for both sides!

By the way, I like the design of your website! Its very simple to work, and gives a personal touch.

I made a Website Portfolio too! Its not finished, but the main things that I want to add are finished.

Collapse
 
said7388 profile image
ABU SAID

Your portfolio also cool 😎

Collapse
 
wiscaksono profile image
Wisnu Wicaksono

Cool portfolio Said! what do you think of mine? wiscaksono.com/

Collapse
 
said7388 profile image
ABU SAID

Your portfolio also cool 😎

Collapse
 
lightning1377 profile image
Siavash Kahe • Edited

Hi,
I like the idea of the coding activity section, is it being filled automatically with some extension in your editor? Could be more helpful with one month and one year durations (I'm not an expert, just a suggestion)
The projects section also looks neat, though the sub sections seem to be empty, e.g. wiscaksono.com/projects?tag=next
This is showing me an empty list although you do have Next projects

Collapse
 
wiscaksono profile image
Wisnu Wicaksono

Hi @lightning1377,

Thanks for the suggestion! about the coding activity section, yes it will fill automatically with the extension, am using WakaTime for it

Collapse
 
matthieugravy profile image
Matthieu Gravy

Your Portfolio is amazing ⚡️

Collapse
 
sufian profile image
Sufian mustafa

I'm truly impressed by the professionalism and elegance of this portfolio! It's unlike any I've seen before, with a stunningly polished UI that truly sets it apart.

Image description

Collapse
 
said7388 profile image
ABU SAID

Thank you

Collapse
 
subaash_b profile image
Subaash

Great colour choice especially the blurred borders are really good. I thought the project section wasn't rendered, but later on recognised that it was meant to be like that. Good creativity.

Btw, check out mine

Collapse
 
ihssmaheel profile image
Mohamed Ismail

Vera maari 🔥

Collapse
 
subaash_b profile image
Subaash

Haha...nanri bro 😅🙏🏻

Collapse
 
mobinx profile image
MobinX

it is nice to see someone from BD . I loved your work brother.Btw if you dont mind , i have some question, you probably not studied csc in NSU but self taught.So how are u getting job right now, actually i am struggling with this situation of mine...it will be helpful if you provide info

Collapse
 
avneesh01 profile image
Avneesh Kumar • Edited


1 of 1 unhandled error
Next.js (13.5.3) is outdated (learn more)

Unhandled Runtime Error
Error: Failed prop type: The prop `href` expects a `string` or `object` in `<Link>`, but got `undefined` instead.
Open your browser's console to view the Component stack trace.

Call Stack
Next.js
Array.forEach
<anonymous>
Next.js
renderWithHooks
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (10707:0)
updateForwardRef
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (14692:0)
mountLazyComponent
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (15650:0)
beginWork$1
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (17335:0)
beginWork
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (25702:0)
performUnitOfWork
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (24553:0)
workLoopSync
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (24269:0)
renderRootSync
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (24224:0)
recoverFromConcurrentError
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (23452:0)
performConcurrentWorkOnRoot
node_modules\next\dist\compiled\react-dom\cjs\react-dom.development.js (23397:0)
workLoop
node_modules\next\dist\compiled\scheduler\cjs\scheduler.development.js (261:0)
flushWork
node_modules\next\dist\compiled\scheduler\cjs\scheduler.development.js (230:0)
MessagePort.performWorkUntilDeadline
node_modules\next\dist\compiled\scheduler\cjs\scheduler.development.js (534:0)
Enter fullscreen mode Exit fullscreen mode

this is the error I encountered after running
npm run dev
command

error message screenshot

Collapse
 
amanr11314 profile image
Aman Raj

hey, were you able to fix this error?

Collapse
 
brian_curricular profile image
Brian G.

It's a good-looking portfolio. Nice design. From a content perspective, consider including links to your projects in your portfolio. Seeing your work in action will be far more impressive to prospective employers.

Also, it would be helpful to include a description of each app's functionality. As is, descriptions like "Me and my team built an AI-powered financial mobile application" don't really explain anything further that isn't in the title ("AI Powered Financial App").

Collapse
 
realfakenerd profile image
Lucas A. Ouverney

I want an opinion about mine.

Blog part is unfinished.

Collapse
 
said7388 profile image
ABU SAID

Language should be English!

Collapse
 
realfakenerd profile image
Lucas A. Ouverney

Thanks dude

Thread Thread
 
realaayush profile image
realaayush

Language isn't really a barrier for websites, almost all browsers can translate webapps. + @realfakenerd your site looks great !!

Collapse
 
jekpaler23 profile image
JerickPH • Edited

Hello. Got this error.

Image description

This is my .env

Image description

Collapse
 
gatere profile image
GatereKinyanjui

Hello Said,

Thank you for sharing this. Incidentally, I'm in the process of building something similar, with the same stack, though still in the rudimentary phase. Two questions:

  1. Which service are you using for deployment and/or hosting?
  2. Tied to that, I've struggled with my Email.Js environment variables - they can't seem to be co-operate. How have you gone about them, when it comes to production?
Collapse
 
avneesh01 profile image
Avneesh Kumar

Hello there!!

I am having a problem with installing npm packages, can you please guide me for step 2?

Collapse
 
adufeji1 profile image
Damilola Awopegba

I tried running it on my vscode
I guess there was an error
this is a good one

Collapse
 
ebrardev profile image
ebrar

I can't connect dev.to for blogs, can u help me ?