ReactPortfolio

personal-site — React Portfolio Template

By ngallegos

A React and Contentful-based personal website template, with content driven by Contentful, buildable as a static site and hostable on AWS S3 and CloudFront.

Explore the design

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

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-05View source

What stands out

A quick read of the recorded project description.

01

The same repository provides both React and .NET 8 implementations of a personal website

02

The React version is a static implementation that can be hosted on AWS S3 and CloudFront

03

Page content is driven by Contentful and requires configuring Delivery, Preview, and Management API keys

04

Provides a utility project for creating the required content types in Contentful

05

Production reads Contentful configuration via AWS Secrets Manager

06

The code uses the MIT license

Template Details

This repository is a multi-implementation collection for a personal website, containing both .NET 8 and React versions. The React version is a static implementation aimed at low-cost hosting via AWS S3 and CloudFront; the .NET version is an ASP.NET implementation hosted on AWS ECS/Fargate. The repository is described as "Application templates for a personal website driven off of Contentful," with page content provided by Contentful.

Before use, you need a Contentful account (free or paid) and must configure API and management keys. The utility project in the repository must be run first to create the required content types in Contentful. When running the web project or the utility project, you need to create appsettings.local.json in the project root and fill in DeliveryApiKey, PreviewApiKey, Environment, ManagementApiKey, and SpaceId. In production, these values are read via AWS Secrets Manager; for local testing, you also need to configure the corresponding secret in AWS Secrets Manager and set environment variables or an aws cli profile named personal-site, with the secret's JSON keys using the ContentfulOptions: prefix.

The README mentions that the resume section is influenced by Thomas Highbaugh's resume template. The repository uses the MIT license, and the free scope covers the code of this version; third-party assets such as demo images, fonts, and icons must be checked against their respective licenses, and external services such as domains, hosting, and databases may incur additional charges.

ReactPortfolio

Is it right for your project?

Use Cases

  • Building a personal portfolio website with Contentful as the content source
  • Scenarios requiring a static site and wishing to host it on AWS S3 and CloudFront
  • Developers who want to reference either the React or ASP.NET implementation
  • Projects that need to initialize Contentful content types via the utility project first

Suitable For

  • Developers who already have a Contentful account and are familiar with configuring its API keys
  • Teams using AWS to host static sites or ECS/Fargate
  • Users who need a personal website template and accept configuring the content model themselves

Getting started & customization

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

  1. 1

    Prepare a Contentful account (free or paid) and configure api/management keys

  2. 2

    Run the utility project first to create the required content types in Contentful

  3. 3

    Create appsettings.local.json in the project root and fill in DeliveryApiKey, PreviewApiKey, Environment, ManagementApiKey, and SpaceId under ContentfulOptions

  4. 4

    Production uses AWS Secrets Manager to read configuration, and the secret's JSON keys must have the ContentfulOptions: prefix

  5. 5

    Local testing requires configuring an AWS Secrets Manager secret and setting environment variables or an aws cli profile named personal-site

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

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

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • 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 MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
  • Before use, you must have a Contentful account and configure API and management keys; this is an external service dependency, and either a free or paid account is acceptable.
  • The utility project must be run first to create the required content types in Contentful; otherwise, the website cannot properly retrieve content.
  • Before running the web or utility project, you must create appsettings.local.json in the project root and fill in the Contentful key configuration.
  • Production depends on AWS Secrets Manager to read configuration, requiring an AWS account and corresponding permissions.
  • Local testing also requires configuring a secret in AWS Secrets Manager and setting environment variables or an aws cli profile named personal-site.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

You will need a [Contentful](https://www.contentful.com/) account (free or paid) and have configured api/management keys.

Original README

The utility project will first need to be run to create the required content types in Contentful.

Original README

To run the web project or the utility project you will need to create an `appsettings.local.json` file in the root of the project

Original README

The app is configured to use AWS Secrets Manager to retrieve these values in production.

Original README

you will need to configure a secret in AWS Secrets Manager and configure either your environment variables or an aws cli profile named `personal-site` with your credentials.

Original README
https://github.com/ngallegos/personal-site/blob/main/LICENSEhttps://github.com/ngallegos/personal-site/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-05. 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 · 80 / 100
Technologies
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-10-05
Screenshot last checked
2026-10-05

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 React 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: [email protected] · 2026-10-05

Inspect the recorded source material

SHA-256: d9fe4994d6b9cc575ff56cb6339d21b552e32163c0c6299ab99155a29da1354a

2026-10-05T06:08:20.451Z

Source file / repository
# Personal Site

Various implementations of a personal site set up with Contentful and Tailwind

[.NET 8](./dotnet/README.md) - An ASP.NET implementation hosted using AWS ECS/Fargate

[React](./react/README.md) - A static react implementation for budget friendly hosting through AWS S3 and Cloudfront

## Getting Started

You will need a [Contentful](https://www.contentful.com/) account (free or paid) 
and have configured api/management keys.

The utility project will first need to be run to create the required content types in Contentful.

To run the web project or the utility project you will need to create an `appsettings.local.json` 
file in the root of the project with the following structure:

```json
{
  "ContentfulOptions": {
    "DeliveryApiKey": "YOUR_DELIVERY_API_KEY",
    "PreviewApiKey": "YOUR_PREVIEW_API_KEY",
    "Environment": "environment-you-want-to-use",
    "ManagementApiKey": "YOUR_MANAGEMENT_API_KEY",
    "SpaceId": "YOUR_SPACE_ID"
  }
}
```

### Secrets Manager
The app is configured to use AWS Secrets Manager to retrieve these values in production.
If you want to test your setup locally, you will need to configure a secret in AWS Secrets Manager 
and configure either your environment variables or an aws cli profile named `personal-site` with
your credentials. Because of the way the secret is retrieved, the json config in AWS should 
be in the format: 
```json
{
    "ContentfulOptions:DeliveryApiKey": "YOUR_DELIVERY_API_KEY",
    "ContentfulOptions:PreviewApiKey": "YOUR_PREVIEW_API_KEY",
    "ContentfulOptions:Environment": "environment-you-want-to-use",
    "ContentfulOptions:ManagementApiKey": "YOUR_MANAGEMENT_API_KEY",
    "ContentfulOptions:SpaceId": "YOUR_SPACE_ID"
}
```

## Shout Outs

The resume is heavily influenced by [this excellent template](https://github.com/Thomashighbaugh/resume) 
by Thomas Highbaugh - thank you for sharing your work!
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

react-portfolio-template

react-portfolio-template

A React-based developer portfolio template for showcasing projects, work history, and skills. It offers a multi-component layout, dark and light modes, and responsive mobile adaptation, with text and images editable in src/components.

React · Portfolio

personal-website-react

personal-website-react

A single-page developer portfolio template built with React and Material-UI, driven by a JSON Resume-compliant resume.json. It offers light/dark theme switching with localStorage persistence, a clean responsive layout, and Create React App tooling for simple builds and static deployment.

React · Portfolio

karngyan.com

karngyan.com

A personal website and blog template for developers, built with TanStack Start, React 19, Tailwind CSS v4, and shadcn/ui. It uses MDX for articles with Shiki highlighting and GFM tables, and automatically generates RSS, sitemap, robots.txt, llms.txt, and OG images.

React · Portfolio

react-portfolio-template

react-portfolio-template

A React portfolio template by Ryan Balieiro with a fixed sidebar and page-turn transitions on desktop, bottom navigation on mobile, multilingual support, light/dark themes, and content components for experience, education, skills, projects, and testimonials.

React · Portfolio

portfolio

portfolio

A data scientist personal portfolio template built with React and MUI, with content centrally managed through configuration files in the assets directory.

React · Portfolio

react-portfolio

react-portfolio

A React 16 and Material-UI developer portfolio template that centralizes personal information in a JSON Resume-compliant resume.json, with light/dark theme switching saved to local storage. It currently provides portfolio display only; resume page templates and structured data enhancements are still planned.

React · Portfolio