Victoreke.com
My personal portfolio website built with Next.js, Sanity and Tailwind CSS.
- [NextJS][nextjs] - UI framework - [Vercel][vercel] - Hosting and Deployment - [Sanity.io][sanity]: Headless CMS and Content Lake - [TailwindCSS][tailwind] / CSS - Styling and UI - [Umami][umami]: Analytics - [Next Themes][nexttheme]: Color Theme - [React Refractor][reactrefractor]: Syntax Highlighting The project is written primarily in TypeScript, distributed under the MIT License license, first published in 2023. Key topics include: blog, giscus, groq, next-theme, nextjs.
Tech Stack
- NextJS - UI framework
- Vercel - Hosting and Deployment
- Sanity.io: Headless CMS and Content Lake
- TailwindCSS / CSS - Styling and UI
- Umami: Analytics
- Next Themes: Color Theme
- React Refractor: Syntax Highlighting
Project Overview
| Site | Studio |
|---|---|
Run Project Locally
Follow this guide to get this site runnning locally:
Clone Repository
jsgit clone https://github.com/Evavic44/victoreke.com.git cd victoreke.com npm install
- Rename
.env.exampleto.env.local
Get Env variables
The minimal env variables required to boot this project locally includes:
Project IdDatasetAPI VersionAccess Token
These variables come from Sanity. To get them, you need to setup your own Sanity instance. Follow the steps below to do this:
Create a new sanity project
Run the command below in a terminal to create a new Sanity project:
jsnpm create sanity@latest -- --template clean --create-project "John Doe" --dataset production
- Create an account: If you already have a Sanity account, this will automatically connect to it, if not, select a login provider from the list of options, hit
Enterand follow the prompt to create one. - Choose an Output path: Hit the
Enterkey to select the default path. - Install the dependencies with your preferred package manager
Once completed open up the studio directory.
jscd john-doe code .
- Navigate to the
sanity.config.tsfile in the root directory and copy theprojectId. Now you can close the studio file.
Update Env Variables
Open up the cloned repository and do the following:
- Set
NEXT_PUBLIC_SANITY_PROJECT_IDto the project id you copied earlier - Set
NEXT_PUBLIC_SANITY_DATASETtoproductionor the dataset name you used. - Set
NEXT_PUBLIC_SANITY_API_VERSIONto your current date in YYYY-MM-DD format or leave as is - If you want to use an access token, visit sanity.io/manage > project name > API > Token to create one. Once generated, copy the token and set it to
NEXT_PUBLIC_SANITY_ACCESS_TOKEN.
[!Warning]
If you don't want to use a token, comment it out in the env.api.ts file or else it will throw errors.
- Now run
npm run devand you can visit http://localhost:3000 to see the project live.
By default the UI will be blank. To start adding data to the site, visit your studio at http://localhost:3000/studio to create your own documents.
If you expereinced any issues or enquiries, please raise an issue to discuss it.
Additional Information
Need more guidiance, check out this tutorial that provides a step-by-step guide to setting up Sanity studio for your portfolio site.
Build
bashnpm run build
Important files and folders
| File(s) | Description |
|---|---|
sanity.config.ts | Config file for Sanity Studio |
sanity.client.ts | Config file for Sanity CLI |
studio | Where Sanity Studio is mounted |
schemas | Where Sanity Studio gets its content types from |
sanity.query.ts | Groq query for Sanity Schema data |
License & Usage
This portfolio is MIT-licensed so you are free to use it as an inspiration or you can just copy the whole thing (excluding my personal content of course), I don't really mind. Just make sure you link back to victoreke.com on the footer section as attribution to the original source.
<!-- Link Refs -->Contributors
Showing top 4 contributors by commit count.
