Open to contributions

Build templates
for everyone

Got a portfolio design that stands out? Contribute it to Portfolio Pulse. Approved templates are added to the library and available to every user — forever, with your name on it.

6 templates live
4,370+ users
Community reviewed
Instant on approval

Template library

Live templates

Every template below was built by the team or approved from a community PR. Yours could be next.

View all on GitHub
Official
89

Aurora Dark

Dark / Gradient

Northern-lights inspired dark theme with fluid gradient animations.

darkgradientanimated
1,240 using
Official
74

Bento Grid

Grid / Minimal

Magazine-style bento grid layout. Every section is a draggable tile.

gridminimalmodern
980 using
Official
112

Terminal

Hacker / Mono

Full CLI aesthetic. Typing animations, command-line prompts, green-on-black.

darkmonospacehacker
720 using
Official
67

Glassmorphism

Frosted Glass

Frosted glass panels over gradient backgrounds. Depth without noise.

glassblurmodern
610 using
Official
55

Nordic Minimal

Scandinavian

Lots of whitespace, soft grays, precise typography. Nothing wasted.

minimallightwhitespace
430 using
Official
61

Cosmos

Dark / Space

Deep-space dark theme. Parallax star fields and nebula-tinted sections.

darkspacestars
390 using

Your template here

Open a PR and it could be
in the library next week.

Submit

Contribute

Two ways to get your design in

Whether you write code or design in Figma, there's a path for you.

Code submission

Developers

Fork the repo, build your template as a Next.js component, and open a PR. If it passes review it ships to all users.

1

Fork the templates repo

github.com/csedgeOfficial/portfolio-templates — one click to fork.

2

Create your template

Add a folder under /templates/your-template-name/. Follow the Template API (one default export, accepts PortfolioData as props).

3

Add preview + metadata

Include preview.png (1280×800), metadata.json (name, author, tags, description), and a README.

4

Open a pull request

PR to main. Title: feat(template): your-template-name. Reviews are handled by @csedgeOff within 7 days.

Clone and scaffold

$ git clone https://github.com/csedgeOfficial/portfolio-templates

$ cp -r templates/_starter templates/my-template

Open the repo

Design concept

Designers

No coding skills? Open a GitHub Issue with your Figma link, screenshots, or rough mockup. The community or CSEdge team will build it.

1

Design your concept

Sketch it in Figma, Framer, Penpot, or even pen and paper. Focus on the visual identity — layout, color, typography.

2

Open a GitHub Issue

Use the "Design Concept" issue template. Link your Figma or attach screenshots. Describe the mood and who it is for.

3

Community discussion

Others can comment, refine, and upvote (👍). High-upvote concepts move to the implementation queue faster.

4

CSEdge team implements

@csedgeOff picks up approved concepts and builds the component. You get author credit on the final template.

What makes a strong concept

Clear visual reference (Figma, screenshots, or inspiration links)
Defined color palette and typography
Describes who the template is designed for (developer, designer, executive…)
At least hero + skills + projects sections mocked up
Does not duplicate an existing template style
Submit a design concept

For developers

Template API spec

Every template is a single default-exported React component that receivesPortfolioDataas its only prop. Nothing else.

templates/my-template/index.tsx
import type { PortfolioData } from "@/types/portfolio";

export default function MyTemplate({
  data,
}: {
  data: PortfolioData;
}) {
  return (
    <main>
      <h1>{data.name}</h1>
      <p>{data.about}</p>

      {/* Your design goes here.
          Use Tailwind. No external CSS files.
          Responsive at sm / md / lg.          */}
    </main>
  );
}
Folder structure
templates/your-name/ — root folder
index.tsx — default-export component
metadata.json — name, author, tags, description
preview.png — 1280×800px screenshot
README.md — short description + usage notes
Hard rules
Must accept PortfolioData as the only prop
No external CSS files — Tailwind only
Must be fully responsive (mobile → desktop)
No hardcoded content — all text from data.*
Must render in under 2s on a cold LCP test
Good to have
Dark mode support via CSS variables
Framer Motion animations (optional)
Accessible — semantic HTML + ARIA labels
Open Graph meta tags in <head>

Process

What happens after you submit

01

PR opened

You open a pull request to csedgeOfficial/portfolio-templates on GitHub.

02

Review by @csedgeOff

Reviewed within 7 days for API compliance, responsiveness, and design quality.

03

Feedback & iteration

Minor feedback? One revision round. Major issues? Clear comment explaining why.

04

Ships to all users

Merged and deployed. Your template shows up in the picker for every user, with your name.

All reviews are on GitHub, not email

Organisation: @csedgeOfficial · Reviews handled by @csedgeOff

View open PRs

Ready to contribute?

Your template could be the one thousands of developers choose for their portfolio. It takes one PR.