Next.jsReactPortfolio

stellar-portfolio — Next.js Portfolio Template

By IndieCoderMM

A Next.js-based developer portfolio template that integrates Sanity CMS to manage content such as projects and skills, and uses EmailJS to send contact form emails.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-13View source

What stands out

A quick read of the recorded project description.

01

Built with Next.js, supports static pages and SEO optimization, automatically generates a sitemap, and supports Open Graph via next/og.

02

Integrates Sanity CMS, allowing management of dynamic content such as projects and skills under the /dashboard path.

03

The contact form sends emails via EmailJS and requires configuring the service ID, template ID, and user ID.

04

Page content can be modified in the /config/ folder, allowing customization without diving into components.

05

Includes animations and responsive design, adapting to different screen sizes.

Template Details

Stellar Portfolio is a portfolio website template for developers, built with Next.js and integrated with Sanity CMS for content management. The README states that it includes a modern layout, animations, SEO optimization (static pages, automatically generated sitemap, Open Graph support via next/og), responsive design, and a contact form based on EmailJS. Page content can be modified in the /config/ directory, while dynamic content (such as projects and skills) is managed through the Sanity dashboard. The template provides steps for cloning the repository, installing dependencies, configuring environment variables, and running the development server, and explains that Sanity Studio can be deployed together with the frontend. The README does not provide specific performance data, framework version numbers, or production environment validation information.

Next.jsReactPortfolio

Is it right for your project?

Use Cases

  • Developers building a personal portfolio website to showcase projects and skills.
  • Needing to edit portfolio content in real time through a CMS without modifying code.
  • Wanting to use EmailJS to send contact form emails.
  • Needing a static portfolio site with SEO optimization and Open Graph support.

Suitable For

  • Developers familiar with Next.js and React.
  • Users willing to use Sanity CMS to manage content.
  • Developers who need to quickly build and customize a portfolio website.
  • Users who accept using EmailJS to handle the contact form.

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    After cloning the repository, run npm install to install dependencies.

  2. 2

    Copy .env.example to .env.local and fill in the Sanity project ID, dataset name, and EmailJS service ID, template ID, and user ID.

  3. 3

    Run npm run dev to start the development server, with the default address at http://localhost:3000.

  4. 4

    Add data to the Sanity dataset before deploying or using the site.

  5. 5

    When deploying, set environment variables on the deployment platform; Vercel is the recommended platform.

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the Unlicense license in the public repository; the free scope is the code of this version and does not mean that external services or third-party assets are free.

Must comply with when using

  • Allows free copying, modification, publication, use, compilation, sale, and distribution of this version's code, including commercial use.
  • The author waives relevant copyright through a public domain dedication; the legal effect of this dedication depends on the applicable jurisdiction.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's Unlicense license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
  • Using Sanity CMS requires first creating a project on sanity.io and obtaining the project ID and dataset name.
  • The Sanity project ID and dataset name must be filled into .env.local for content management functionality to work properly.
  • The contact form relies on EmailJS and requires registering an account at emailjs.com.
  • A service must be created in EmailJS and connected to an email account for the contact form to send emails.
  • An email template must be created in EmailJS for the contact form to work properly.
  • The EmailJS service ID, template ID, and user ID (public key) must be obtained.
  • The EmailJS service ID, template ID, and user ID must be added to .env.local.
  • Before deploying or using the site, data must first be added to the Sanity dataset.
  • When deploying, environment variables must be set on the deployment platform.
View Original Text Basis

for any purpose, commercial or non-commercial, and by any means

Original License Text

1. Create a project at [sanity.io](https://www.sanity.io/)

Original README

2. Copy the project ID and dataset name into your `.env.local` file

Original README

- Sign up at [emailjs.com](https://www.emailjs.com/)

Original README

- Create a service and connect it to an email account

Original README

- Create an email template for the contact form.

Original README

- Get your EmailJS service ID, template ID, and user ID (public key)

Original README

- Add those to your `.env.local` file

Original README

> Make sure to add your data to the Sanity dataset before deploying or using the site.

Original README

Make sure to set environment variables in your deployment settings.

Original README
https://github.com/IndieCoderMM/stellar-portfolio/blob/main/LICENSEhttps://github.com/IndieCoderMM/stellar-portfolio/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 88 / 100
Technologies
Next.js · React
Website type
Portfolio
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-05-17
Screenshot last checked
2026-10-13

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: codex-user-requested-batch-review-20261015 · 2026-10-15

Inspect the recorded source material

SHA-256: dd19e3fafba25aa04e4b151c7b34517dbfbc3dc86228335e8280ffccbe49dfea

2026-10-13T22:04:29.646Z

Source file / repository
![Screenshot](/.github/banner.png)

# Stellar Portfolio

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/IndieCoderMM/stellar-portfolio)

A modern developer portfolio website built with [Next.js](https://nextjs.org), packed with smooth animations, customizable content, and [Sanity CMS](https://www.sanity.io) integration.

Perfect for developers who want a fast, unique, and fully customizable site to showcase their work.

## Features

- Sleek, modern layout – Clean design focused on clarity and structure.
- Subtle motion effects – Thoughtful animations add life without getting in the way.
- Optimized for SEO – Static pages, auto-generated sitemap and built-in Open Graph support via `next/og`.
- Live content editing – Change content live using integrated Sanity dashboard.
- Easy customization – Personalize site content and structure easily.
- Built-in contact form – Emails are delivered instantly with EmailJS integration.
- Responsive by default – Designed to look great on all screen sizes out of the box.

## Tech Stack

- Next.js – React framework for SSR and performance
- Sanity.io – Headless CMS for content management
- Motion.dev – Animation library for React
- Tailwind CSS – Utility-first CSS framework
- EmailJS – Email service for handling contact form messages

## Getting Started

1. **Clone the repo**

```bash
git clone https://github.com/indiecodermm/stellar-portfolio.git
cd stellar-portfolio
```

2. **Install dependencies**

```bash
npm install
```

3. **Set up environment variables**

Copy the example env file and add your own config:

```bash
cp .env.example .env.local
```

4. **Run the dev server**

```bash
npm run dev
```

Your app should now be running at [http://localhost:3000](http://localhost:3000)

5. **Open Sanity Dashboard**

Once the app is running, you can access the Sanity Studio at [http://localhost:3000/dashboard](http://localhost:3000/dashboard) to manage your content.

> [!NOTE]
> Make sure to add your data to the Sanity dataset before deploying or using the site.

## Customization

All page content can be modified in the `/config/` folder.

_No need to dig into components unless you want to._

## Content Management (Sanity)

This template is integrated with [Sanity Studio](https://www.sanity.io/) for flexible content editing.

- You can manage projects, skills, and other dynamic content through the Sanity dashboard.
- The Sanity Studio is available at `/dashboard` once the project is running.
- To set it up:
  1. Create a project at [sanity.io](https://www.sanity.io/)
  2. Copy the project ID and dataset name into your `.env.local` file
  3. Run both frontend and Sanity Studio locally, or deploy them together

You can also customize the schema or extend it for additional content types as needed.

> [!NOTE]
> If you want to change the refresh frequency, customize `contentRefreshInterval` in `/config/index.ts` to set how often the content is fetched from Sanity. _Default is 3600 seconds (1 hr)._

## Contact Form

The contact form uses **EmailJS** for sending messages.

- Sign up at [emailjs.com](https://www.emailjs.com/)
- Create a service and connect it to an email account
- Create an email template for the contact form.

<details>

<summary>Sample Email Template</summary>

```
Hello,

You’ve received a new message from your website. Here’s what they had to say:

Name: {{name}}
Email: {{email}}

Message:
{{message}}
```

</details>

- Get your EmailJS service ID, template ID, and user ID (public key)
- Add those to your `.env.local` file

## Deploy

Deploy anywhere Next.js is supported:

- **Vercel** (Recommended)

Make sure to set environment variables in your deployment settings.

## Contributing

Feel free to fork, customize, or contribute. Open an issue or PR if you have suggestions or improvements.

## License

This project is released under [The Unlicense](https://unlicense.org/), which means you can use, modify, and distribute it however you want.

Do whatever you like. No credit required (but appreciated).

## Credits

Thanks to all the amazing developers and designers whose work have inspired me to create this project.

Animattions and UI elements are from these awesome resources:

- Acternity UI – for the elegant components and design inspiration.
- Uiverse.io – for the open-source UI interactions and effects.

---

_I hope this template helps you build your own stunning portfolio site!_

_Happy building 🚀_
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

react-resume-template

react-resume-template

A personal resume website template for software developers, built with Next.js, React, and TypeScript and styled with Tailwind CSS. Site content is driven by a single data file at /src/data/data.tsx, with types in dataDef.ts and images in src/images/.

Next.js · Portfolio

nxt-lnk

nxt-lnk

nxt-lnk is a Next.js-based bio link page template that manages personal information and links via BioData.js and LinksData.js, positioned as a self-hosted alternative to Linktree. It groups links by type, supports enabling/disabling individual links, and offers hexagonal or oval avatars.

Next.js · Portfolio

sylph

sylph

Sylph is a minimal portfolio and blog template built on Next.js, supporting MDX/Markdown writing, light/dark themes, and automatic OG image generation. It includes sitemap, robots.txt, metadata, and syntax highlighting, with automatic blog timestamps.

Next.js · Portfolio

sleek-portfolio

sleek-portfolio

A modern, responsive portfolio template built with Next.js 15, TypeScript, Tailwind CSS, and Shadcn UI. It includes an MDX blog, project showcase, work experience timeline, and a contact form that receives messages via Telegram Bot.

Next.js · Portfolio

research-website-template

research-website-template

A React + Next.js template for research personal websites, aimed at PhD students and researchers. It centralizes publications, projects, and other content in src/data as arrays of objects, with optional fields automatically generating UI components.

Next.js · Portfolio

shadcn-portfolio

shadcn-portfolio

A developer portfolio template built with Next.js 15, shadcn/ui, Tailwind CSS, and Framer Motion, featuring an MDX blog, light and dark modes, responsive design, and SEO meta tags.

Next.js · Portfolio