Skip to content

Serverless portfolio website built using Terraform, AWS, Next.js and Tailwind CSS.

License

Notifications You must be signed in to change notification settings

GuilhermeCAz/serverless_portfolio

Repository files navigation

Serverless Portfolio

License: MIT Node.js TypeScript Next.js Terraform Amazon S3 AWS IAM Tailwind CSS PostCSS Prettier ESLint

About

This project is a portfolio website created using Next.js. Its main purpose is to showcase my skills and projects, as if it were a resume. It uses Terraform to setup AWS resources (ACM, CloudFront, IAM, S3).

The DNS Hosting and the domain registration are done elsewhere due to AWS costs, but these two could easily be done exclusively using AWS Route 53. This means that the infrastructure is not fully managed by Terraform, and there are some manual steps to be done.

You can find the website at guilhermecaz.site.

Usage

If you'd like to build a website based on this project, you can clone the repository, modify the Next.js files, build the project, and use terraform to deploy it to AWS.

Clone the repository

git clone https://github.com/guilhermecaz/serverless_portfolio.git

Install dependencies

cd serverless_portfolio
npm install

Modify the files according to your needs

cd src/app

Build the project

npm run build

Deploy the project

cd terraform
terraform init
terraform apply

Terraform will then output the CloudFront domain and ACM validation records. These should be used on the domain registrar / DNS provider.