Skip to main content

Command Palette

Search for a command to run...

I have made a kickass automated portfolio site with Next.js. Here is how.

A portfolio site is the modern form of resume to help with jobs, contacts, and growth. Know how I built an automated portfolio site with a balanced UX

Published
•8 min read
I have made a kickass automated portfolio site with Next.js. Here is how.
T

Co-Founder, @CreoWis | Teacher, @tapaScript | Founder, @ReactPlay | YouTuber | Writer | Human

Developers are powerful creators. When your knowledge, creativity, and passion come together, you create something you are most proud of. I have a similar feeling today!

Did I tell you, I have redone my portfolio site from scratch? But why was it so important? Right, that's what is this article is about. I hope you find it helpful.

TL;DR

What is a Portfolio website, and why do you need it?

A portfolio website provides your professional information to your potential clients, job hires, consumers. It is the place to showcase your work, let the world know who you are and what you are up to.

When a potential client, HR, hiring manager visits your portfolio site, they should get a feel of your strengths and what you are capable of. In the modern era, a good portfolio website may replace the olden day's resumes of job seekers. Building a portfolio and keeping it updated helps in this case. It also helps us to reconnect with what we have done in the past from a single place.

My Journey in 5 Points

I already had a portfolio site. It worked great but with a few limitations,

  • I had to update the content manually.
  • It was not showing my capabilities enough.
  • The design was not so open to accommodate a new addition easily.
  • There was always an urge to do better with UX.
  • It was missing a brand.

So, one evening when I sat with the pencil and paper, I could identify five key points to drive changes keeping my motivations high. Let's see them.

1. The Focus is on YOU

The primary focus of your website should be on YOU. It means you need to project your face, attitude, work, passion, aspirations, all that someone will find interesting.

In my case, the list includes,

  • An apparent profile photo showing my face and attitude.
  • As a blogger, mention my blog.
  • People should know about my Youtube channel.
  • A list of side hustles(projects) I have done.
  • My sponsors, supporters, and the reasons.
  • A newsletter subscription.
  • To communicate about my career growth in numbers.
  • To tell more about me, with a personal connection.

The below image is the mind map of my work with myself at the center.

mind map of the focus

The next thing is about creating a personal brand. It is about identifying,

  • Who are you?
  • What do you want to be known for?
  • How do you put your best strength into practice to create an impression, build public connections, and network.
  • Above all, how do you promote yourself using your work.

2. The Content is the KING

After you identify the areas to focus on, you need to think about the content and how best you can organize them.

Again, in my case, the content includes,

The image below shows the mind map of items that I can accommodate immediately(the green lines), and some are for the future(yellow dotted lines).

46.png

The next thing is about organizing the content. Let's discuss that in the next point where we talk about User Experience(UX).

3. The UX is the QUEEN

If the content is a king, the user experience(UX) is the queen. They must work together to rule.

Here are a few factors that need primary attention,

  • Organization of content: How better you can organize the content so that users do not seek much to get to it. At the same time, they shouldn't get overwhelmed by the quantity of it.

    I tried balancing it by providing a list of my recent articles, videos on the home page with the links to get more. I have provided searches, lazyload of content on scroll to limit the content overwhelming to users.

    recent articles

  • Colors, Fonts, and Themes: I'm probably simplifying it here, but these are strong foundations of a great UX. I have made extensive research before settling down with a color palette, font choice, and dark theme as a default theme.

    Color Palette: Select the primary brand color in various shades. For my site, the color palette looks like this,

    Color Palette

    Font - When you build a content-oriented website, it will have many things to read. So you need to select a font that looks clean and easy to eyes. For my website, I am using the Manrope font, an open-source modern sans-serif font designed by Mikhail Sharanda in 2018-2019.

    Themes - Dark & light themes are the default choices for the theme design.

    theme.gif

  • Responsiveness: A majority of the device usages goes to mobile and other hand-held devices. It is a mandatory requirement for you to support responsiveness. It will be unfortunate if a recruiter tries to see your profile on mobile and find it nonresponsive.

    responsive.gif

  • Animations: Animations are like salt in your food. When you use it right, the food tastes perfect. Over or undergoing it may leave the users with unpleasant experiences. Introducing a subtle introductory animation may set the right mood for your users.

    animation.gif

To me,

UX is all about keeping the balance!

4. Make a Right Choice of TECHNOLOGY STACK

When I started the initial design, I had plenty of choices in front of me. Today web technologies provide(confuse) you with many options. I have been exploring Next.js and tailwindcss for a while now.

  • Next.js: Next.js is the future(arguably?) for React-based projects. It is easy to set up, learn, and use. The API routes help to create endpoints quickly and efficiently.
  • Vercel: It is super easy to deploy and maintain your Next.js app(including serverless functions) using Vercel.
  • Tailwindcss: It is a developer-friendly CSS library.

I have a strong feeling that this technology stack(nextjs-vercel-tailwindcss) is going to stay for a long due to its wide adoption, community support, the ease of use.

5. Update Frequently but AUTOMATICALLY

Any website is NOT a one-time affair. It requires updates and changes to keep it relevant. Usually, you may want to make two types of updates: the look-and-feel update and the content update.

The look-and-feel update doesn't take place very often, and you can plan it. However, if you are a frequent content creator, you may have to update the website frequently. It could be tiring for someone to do it manually. Here you should explore the opportunities to automate the content as much as possible.

Here is the mind map of the content sources for my portfolio site,

48.png

As you see, Next.js can communicate to the APIs of each of the services to fetch/create data. It is an excellent approach as you do not have the burden of maintaining it manually.

Here is the list of free API services I'm using. I hope you find it helpful.

  • Hashnode: Do you have a blog on the Hashnode platform? Hahsnode has the public APIs to interact with your blog data. Please use this playground to try it out.
  • Dev: Please find the DEV APIs from here. These are beta at the time of writing this post.
  • Twitter: If you have a Twitter account, you can apply for API access to fetch data. Here is the link to do that.
  • NPM: You have plenty of options here to get information about an NPM. Please checkout npm-api library.
  • GitHub: GitHub provides you many API endpoints to access data relevant to you.
  • Revue: Twitter Revue newsletter service has the APIs to interact with subscribers, issues, and other information. Check it out from here.
  • Youtube: You can access the Youtube data like videos, subscribers, views, likes, and many more using the API services.
  • freeCodeCamp: If you are an author to freeCodeCamp, you can request a read-only API access key to the team by mailing them. An alternate way is to use your article's RSS feed as input to rss-to-json NPM to create dynamic JSON data for the project.

So, how is the Feedback so far?

The feedback is genuinely motivating so far. Thanks to tech Twitter for pouring in lots of feedback to let me know I'm on the right track. It also helped to figure out a bunch of bugs to fix. The thread below captures some great discussions about it,

If you have any feedback, please feel free to let me know.

What's next?

An excellent outcome of building something is, you get plenty to share. I'll share much technical knowledge I have gained by building the portfolio website in the coming days. Expect them on your way as articles, videos, and threads. That's all for now. Please like/share this post if you find it helpful.

Let's connect. You can follow me on Twitter(@tapasadhikary), LinkedIn(tapasadhikary), and GitHub(atapas).

Comments (23)

Join the discussion
P

Awesome post, and brilliant idea Tapas! šŸ‘ŒšŸš€

3
T

Glad you liked it Pierre-Henry Soria

A

grat articule i am going to make my own blog now

3
A
Ai Anshu4y ago

this time your website is more eligent and beautiful

3
T

Thanks a lot. Much appreciate šŸ’›

S

Hey Tapas, your site looks nice. Good work.

There's some feedback for you though. This might sound harsh, but you've asked for feedback, not at all personal.

Images are optimized properly and aren't lazy-loaded(There's CLS).

The performance metric of your lighthouse score is not so good. Lighthouse Report for your reference.

You said you are using Next.js and TailwindCSS, but it looks like you are not following the best practices because according to Lighthouse you haven't properly purged your JS and CSS.

Not a big fan when the images don't have alt.

Design Feedback:
There are a lot of areas where font size is too small and hard to read.

The start text of a blog post being displayed when hovered over the card kills UX. (This might be opinionated)

I'm up for any discussion regarding this.

Good luck.

3
T

Hey thanks for the detailed feedback and your time on it.

All that you mentioned about the performance and accessibility are part of my September backlog already. Thanks again for taking the effort. Have a good day.

S

Tapas Adhikary Hey, if it's already in your TODO, then it's cool.

It'd be great if you write another blog post after you've done optimization and improved the performance and UX.

Good luck.

3
T

Sai Praneeth Diddigam, of course! The first one, I shall focus on improving the lighthouse scores. Thanks for following it up.

L

This looks slick ✨

3
E
Estee Tey4y ago

Really love your profile, it makes it very distinct that it is Tapas!

3
T

Thank you, Estee Tey. Very glad with that feedback :)

I

Great portfolio šŸ™ŒšŸ™ŒšŸ™Œ

3
T

Thank you, Olubisi Idris Ayinde. Much appreciate.

A

Inspired by you I started working on my own portfolio and I just created the Hero area a long way to go, but I m committing this month to that. Thanks for sharing it really helps any way here is what I have made till now. CPT2109062336-1904x700.gif

4
T

You are welcome, Ashish maurya. The Hero image is impressive. Great that you are planning to complete it this month. All the best.

R

The portfolio is stunning. I loved it

3
T

Thanks a lot, Raj šŸ™‚

S

An excellent portfolio with a well crafted design and coding. I love the ambience and the UI so much. The article is also fantastic, keep up the good work Tapas Adhikary. You are amazing, lot to learn from you! Kudos! šŸ‘

6
T

Thank you so much, Savio Martin šŸ™. You have been very supportive, bro.

Build with Next.js

Part 5 of 7

Next.js is the coolest React-based framework on the planet(at least I think that way!). How about learning to build something useful, practical, and fun with it? Please join me get started.

Up next

Create a Newsletter app with Twitter Revue, Next.js API Routes, and Tailwindcss

Learn how to create a newsletter with Revue APIs, Next.js API routes, and Tailwindcss. The best way to include a Newsletter in your Next.js app/site.