{"id":21851804,"url":"https://github.com/nberlette/malanna","last_synced_at":"2026-04-11T14:05:24.147Z","repository":{"id":41772502,"uuid":"426786989","full_name":"nberlette/malanna","owner":"nberlette","description":"Malanna's memorial page. Built with Next.js, Prismic.io, and Vercel.","archived":false,"fork":false,"pushed_at":"2023-03-14T19:58:00.000Z","size":4607,"stargazers_count":3,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-19T20:27:44.678Z","etag":null,"topics":["gitpod","malanna","memorial","nextjs","prismic","rip","static","tailwindcss","typescript","vercel"],"latest_commit_sha":null,"homepage":"https://malanna.page","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nberlette.png","metadata":{"funding":{"ko_fi":"nberlette"},"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-10T21:45:32.000Z","updated_at":"2023-03-08T21:26:27.000Z","dependencies_parsed_at":"2025-07-05T06:07:10.168Z","dependency_job_id":"60c2cb3d-5e1b-42dd-ab8c-ebf22d2abb78","html_url":"https://github.com/nberlette/malanna","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/nberlette/malanna","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nberlette%2Fmalanna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nberlette%2Fmalanna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nberlette%2Fmalanna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nberlette%2Fmalanna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nberlette","download_url":"https://codeload.github.com/nberlette/malanna/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nberlette%2Fmalanna/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267400376,"owners_count":24081182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gitpod","malanna","memorial","nextjs","prismic","rip","static","tailwindcss","typescript","vercel"],"created_at":"2024-11-28T01:11:16.841Z","updated_at":"2025-12-30T21:57:36.966Z","avatar_url":"https://github.com/nberlette.png","language":"TypeScript","readme":"# 🐈 Malanna.page\n\nA small memorial website celebrating the life of a furry little friend of mine - Malanna. Currently there's just a couple placeholder images with some dummy text, but when I have some more time I'll upload a full photo gallery, maybe add some videos, and jot down some funny memories and stories I have regarding my loyal kitty of nearly 20 years.\n\nThis is based on the [official Next.js example with Prismic](https://github.com/vercel/next.js/tree/canary/examples/cms-prismic), which I modified to run on Next.js v12 and Preact instead of React.  Deployed on Vercel, with content management by Prismic.io, and switched from JavaScript/JSX to run on TypeScript/TSX. \n\n## Deploy your own\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/vercel/next.js/tree/canary/examples/cms-prismic\u0026project-name=cms-prismic\u0026repository-name=cms-prismic\u0026env=PRISMIC_API_TOKEN,PRISMIC_REPOSITORY_NAME\u0026envDescription=Required%20to%20connect%20the%20app%20with%20Prismic\u0026envLink=https://vercel.link/cms-prismic-env)\n\n## How to use\n\nExecute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init) or [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) to bootstrap the example:\n\n```bash\nnpx create-next-app --example cms-prismic cms-prismic-app\n# or\nyarn create next-app --example cms-prismic cms-prismic-app\n```\n\n## Configuration\n\n### Step 1. Create an account and a repository on Prismic\n\nFirst, [create an account on Prismic](https://prismic.io/).\n\nAfter creating an account, create a **repository** from the [dashboard](https://prismic.io/dashboard/) and assign to it any name of your liking.\n\n### Step 2. Create an `author` type\n\nFrom the repository page, create a new **custom type**:\n\n- The name should be `author`.\n\nNext, add these fields (you don't have to modify the settings):\n\n- `name` - **Key Text** field\n- `picture` - **Image** field\n\nAlternatively, you can copy the JSON in [`types/author.json`](types/author.json), then click on **JSON editor** and paste it there.\n\nSave the type and continue.\n\n### Step 3. Create a `post` type\n\nFrom the repository page, create a new **custom type**:\n\n- The name should be `post`.\n\nNext, add these fields (you don't have to modify the settings unless specified):\n\n- `title` - **Title** field\n- `content` - **Rich Text** field\n- `excerpt` - **Key Text** field\n- `coverimage` - **Image** field\n- `date` - **Date** field\n- `author` - **Content relationship** field, you may also add `author` to the **Constraint to custom type** option to only accept documents from the `author` type.\n- `slug` - **UID** field.\n\nAlternatively, you can copy the JSON in [`types/post.json`](types/post.json), then click on **JSON editor** and paste it there.\n\nSave the type and continue.\n\n### Step 4. Populate Content\n\nGo to the **Content** page, it's in the menu at the top left, then click on **Create new** and select the **author** type:\n\n- You just need **1 author document**.\n- Use dummy data for the text.\n- For the image, you can download one from [Unsplash](https://unsplash.com/).\n\nNext, select **Post** and create a new document.\n\n- We recommend creating at least **2 Post documents**.\n- Use dummy data for the text.\n- You can write markdown for the **content** field.\n- For images, you can download them from [Unsplash](https://unsplash.com/).\n- Pick the **author** you created earlier.\n\n**Important:** For each document, you need to click **Publish** after saving. If not, the document will be in the draft state.\n\n### Step 5. Set up environment variables\n\nFollow the instructions in [this post](https://intercom.help/prismicio/en/articles/1036153-generating-an-access-token) to generate a new access token.\n\nNext, copy the `.env.local.example` file in this directory to `.env.local` (which will be ignored by Git):\n\n```bash\ncp .env.local.example .env.local\n```\n\nThen set each variable on `.env.local`:\n\n- `PRISMIC_API_TOKEN` should be the **Permanent access token** you just created\n- `PRISMIC_REPOSITORY_NAME` is the name of your repository (the one in the URL)\n- `PRISMIC_REPOSITORY_LOCALE` is the locale of your repository. Defaults to `en-us`\n\nYour `.env.local` file should look like this:\n\n```bash\nPRISMIC_API_TOKEN=...\nPRISMIC_REPOSITORY_NAME=...\nPRISMIC_REPOSITORY_LOCALE=...\n```\n\nMake sure the locale matches your settings in the Prismic dashboard.\n\n### Step 6. Run Next.js in development mode\n\n```bash\nnpm install\nnpm run dev\n\n# or\n\nyarn install\nyarn dev\n```\n\nYour blog should be up and running on [http://localhost:3000](http://localhost:3000)! If it doesn't work, post on [GitHub discussions](https://github.com/vercel/next.js/discussions).\n\n### Step 7. Try preview mode\n\nOn your repository page, go to **Settings**, click on **Previews** and then **Create a New Preview** for development, fill the form like so:\n\n- **Site Name**: may be anything, like `development`\n- **Domain of Your Application**: `http://localhost:3000`\n- **Link Resolver**: `/api/preview`\n\nOnce saved, go to one of the posts you've created and:\n\n- **Update the title**. For example, you can add `[Draft]` in front of the title.\n- Click **Save**, but **DO NOT** click **Publish**. By doing this, the post will be in draft state.\n- Right next to the **Publish** button you should see the **Preview** button, displayed with an eye icon. Click on it!\n\nYou should now be able to see the updated title. To exit preview mode, you can click on **Click here to exit preview mode** at the top of the page.\n\n### Step 8. Deploy on Vercel\n\nYou can deploy this app to the cloud with [Vercel](https://vercel.com?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)).\n\n#### Deploy Your Local Project\n\nTo deploy your local project to Vercel, push it to GitHub/GitLab/Bitbucket and [import to Vercel](https://vercel.com/new?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=next-example).\n\n**Important**: When you import your project on Vercel, make sure to click on **Environment Variables** and set them to match your `.env.local` file.\n\n#### Deploy from Our Template\n\nAlternatively, you can deploy using our template by clicking on the Deploy button below.\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/vercel/next.js/tree/canary/examples/cms-prismic\u0026project-name=cms-prismic\u0026repository-name=cms-prismic\u0026env=PRISMIC_API_TOKEN,PRISMIC_REPOSITORY_NAME\u0026envDescription=Required%20to%20connect%20the%20app%20with%20Prismic\u0026envLink=https://vercel.link/cms-prismic-env)\n","funding_links":["https://ko-fi.com/nberlette"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnberlette%2Fmalanna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnberlette%2Fmalanna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnberlette%2Fmalanna/lists"}