Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ickynavigator/portfolio

My personal website built using Astro + sanity CMS and hosted on CF pages
https://github.com/ickynavigator/portfolio

astro astrojs cloudflare cloudflare-pages sanity sanitycms

Last synced: 9 days ago
JSON representation

My personal website built using Astro + sanity CMS and hosted on CF pages

Awesome Lists containing this project

README

        

# Portfolio Sanity Client

My personal portfolio website built with [Astro](https://astro.build/) project. It uses [Sanity](https://www.sanity.io/) as the CMS (data store). The project is statically generated and deployed to [Cloudflare Pages](https://pages.cloudflare.com/).

## Getting Started

### 🤫 Environment Variables

Fill up the .env file with the variables in the .env.example

| Key | Description |
| :------------------------------------- | :--------------------------------------------------------------- |
| `PUBLIC_SANITY_API_PROJECT_ID` | Project ID of your Sanity project. Defaults to **MY** project Id |
| `PUBLIC_SANITY_API_DATASET` | Dataset name of your Sanity project. Defaults to `production` |
| `PUBLIC_SANITY_API_VERSION` | API version of your Sanity project. Defaults to `2022-03-07` |
| `WEBSITE_URL` | URL of the website. Defaults to `https://obifortune.com` |
| `PUBLIC_SANITY_VISUAL_EDITING_ENABLED` | Enable visual editing in the studio. Defaults to `false` |
| `SANITY_API_READ_TOKEN` | Read token for the sanity project |
| `WAKATIME_API_KEY` | API key for the wakatime API |

### 🧞 Commands

All commands are run from the root of the project, from a terminal with `pnpm run`:

| Command | Action |
| :----------- | :------------------------------------------------------------------------------ |
| `dev` | Starts local dev server at `localhost:4321` + studio at `localhost:4321/studio` |
| `build` | Build your production site to `./dist/` |
| `preview` | Preview your build locally with wrangler, before deploying |
| `deploy` | Deploy your build to cloudflare with wrangler |
| `cf-typegen` | Generate types from bindings and module rules in configuration |
| `sa-typegen` | Extract sanity schema info and generate types |
| `lint` | Run eslint on the project |
| `lint:fix` | Run eslint on the project and resolve auto-fixable issues |

Setting up Sanity

### Setting up the sanity project

You need to create a sanity project to work with this portfolio. This can be done by running this in the root of the app

```bash
pnpm create sanity@latest
```

This will prompt you to do a few things

1. Login to your sanity
1. Create a new project
1. Don't add configuration files (this has already been done for you)
1. Select `clean project with no predefined schemas`. You can delete the newly created sanity changes
1. Go to the [Sanity dashboard](https://www.sanity.io/manage) and select your project to view your project ID and other details

## Patches

- @tabler/[email protected]: Stop package from importing ALL icons - [issue](https://github.com/tabler/tabler-icons/issues/1233)