My personal portfolio website hosted at https://benjamincarlson.io. My personal website has changed over the years - from a static HTML/CSS/JS site to Wordpress to Jekyll to Gatsby to Django (I made a site with django but never deployed it due to it costing so much!) and finally to Next.js/React. This site has my writing, projects, gear, tutorials, experience, and much more.
Feel free to fork this repo and make it into your own website! Below you will find instructions, features, and the tech stack.
To run locally you must
- Clone this repo
git clone https://github.com/bjcarlson42/benjamincarlson.io.git
or
git clone https://github.com/bjcarlson42/benjamincarlson.io.git .
- Create a .env file and enter your secret keys (if you skip this step the site will still run but some data won't be fetched)
touch .env
Inside .env
:
YOUTUBE_KEY=
GITHUB_KEY=
BUTTONDOWN__KEY=
FIREBASE_CLIENT_EMAIL=
FIREBASE_PROJECT_ID=
FIREBASE_PRIVATE_KEY=
STRAVA_CLIENT_ID=
STRAVA_SECRET=
STRAVA_REFRESH_TOKEN=
- Move into the project root and remove git tacking (if you are planning to submit a PR to this repo don't do this step!)
rm -rf .git*
- Install dependencies
yarn
- Run locally!
yarn dev
Navigate to http://localhost:3000.
- Light/Dark mode
- Realtime Statistics via SWR and Nex.js API routes
- Responsive Design
- Blog
- Google Analytics
- Google AdSense
- JS Framework: Next.js
- CSS Framework: Chakra UI
- Blog Code Syntax: Prism.js
- Blog: next-mdx-remote
- Database(Blog post view and like count): Firebase
- Deployment: Vercel
Contributions are welcome! Feel free to tackle an issue or even implement a new feature. Simply submit a PR and I'll take a look.