AstroPortfolioBlog

portfolio-template (nicolascadet-ops) — Astro Portfolio Template

By nicolascadet-ops

An Astro portfolio template for photographers, designers and studios. Projects are managed in Markdown, the homepage offers hover live previews, and project pages use editorial image-text layouts with lightbox viewing.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

1 previews
Author preview
Author-provided preview

Preview provided in the project README.

One original preview is available. Open the full image to inspect the design.

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-03View source

What stands out

A quick read of the recorded project description.

01

Project index with live preview: hovering or focusing a project title switches the large image

02

Project pages include year, location, client and an editorial full-width/half-width image sequence

03

Lightbox supports full-screen viewing, arrow key navigation, Esc to close

04

Content managed in Markdown; adding a project requires only a .md file plus an image folder

05

Responsive WebP image sizes generated automatically at build time

06

Semantic HTML, keyboard-accessible navigation, visible focus, alt text and reduced-motion support

Template Details

This is an image-centric dark portfolio template built with Astro and output as a static site. Project content is maintained as Markdown files: each project corresponds to a .md file and an image folder, and responsive WebP image sizes are generated automatically at build time. The homepage provides a project index: hovering or focusing a project title switches the large preview on the right. Project pages show year, location, client, a short story, and an editorial image sequence alternating full-width and half-width; clicking any image opens a lightbox, with arrow keys to navigate and Esc to close. The template includes semantic HTML, keyboard-accessible navigation and lightbox, visible focus styles, alt text for every image, and reduced-motion support. The photographer Mara Ellis in the example is a fictional character, photos are from multiple Unsplash photographers, and clients, exhibitions and awards are fictional, for demonstration only.

AstroPortfolioBlog

Is it right for your project?

Use Cases

  • Photographers building a personal portfolio, organizing images and captions by project
  • Designers or illustrators showcasing series work, needing project detail pages with mixed text and images
  • Small studios publishing case collections and wanting content maintained in Markdown
  • Portfolio sites that need a dark, image-centric, statically output site

Suitable For

  • Photographers, designers, illustrators and creative studios
  • Developers or creators accustomed to managing content with Markdown
  • Users who want to deploy the portfolio to static hosting platforms such as Cloudflare Pages

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Requires Node.js 22.12 or higher; after installing dependencies run npm run dev, default address http://localhost:4321

  2. 2

    Site information (name, email, city, Instagram) is edited in src/site.ts

  3. 3

    Project content is located in src/content/work/*.md, one file per project, with images placed under src/assets/<project name>/

  4. 4

    The portrait and bio correspond to src/assets/mara.jpg and src/pages/about.astro; colors and fonts are adjusted via CSS variables at the top of src/styles/global.css

  5. 5

    When deploying to Cloudflare Pages, select the Astro framework preset, build command npm run build, output directory dist

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean external services or third-party assets are free.

Must comply with when using

  • The code of this version may be used, modified, commercially used and distributed for free.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Example photos are from multiple Unsplash photographers and are licensed under the Unsplash License, which is not part of this project's code license; when replacing with your own work, verify image licensing yourself.
  • The template self-hosts the Schibsted Grotesk font under the SIL Open Font License, which differs from the project's MIT code license; redistributing the font must comply with OFL terms.
  • Local running and building require Node.js 22.12 or higher; lower versions cannot be used.
  • Deploying to Cloudflare Pages requires a Cloudflare account and connecting a Git repository, which is an external service dependency.
  • Demo images, fonts, icons and other third-party assets must be checked against their respective licenses; they cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

The photographs are free sample images from Unsplash by many different photographers, credited on every project page and listed in each project's Markdown file.

Original README

Typeface: [Schibsted Grotesk](https://fonts.google.com/specimen/Schibsted+Grotesk), SIL Open Font License.

Original README

Requires Node.js 22.12 or later.

Original README

Dashboard:** Workers & Pages → Create → Pages → Connect to Git → pick this repo.

Original README
https://github.com/nicolascadet-ops/portfolio-template/blob/main/LICENSEhttps://github.com/nicolascadet-ops/portfolio-template/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
Partly documented · 73 / 100
Technologies
Astro
Website type
Portfolio · Blog
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-10-03
Screenshot last checked
2026-10-03

No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.

The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: [email protected] · 2026-10-04

Inspect the recorded source material

SHA-256: 9589cb9e2b63004c5ca21b572f5deeb2dfb9b40155cb56e0a0b64c4b525acb3f

2026-10-03T19:41:49.645Z

Source file / repository
# Mara Ellis: Photography Portfolio Template

A dark, image-first portfolio for photographers, designers, illustrators and studios. Built with [Astro](https://astro.build): projects are Markdown files, images are optimised automatically, and the output is a fast static site.

![Portfolio home page](docs/screenshot.png)

> **Mara Ellis is a fictional photographer.** The photographs are free sample images from Unsplash by many different photographers, credited on every project page and listed in each project's Markdown file. Clients, exhibitions and awards are fictional.

## Features

- **Project index with live preview**: hover or focus a project title and the large preview changes.
- **Project pages** with year, location and client, a short story, and an editorial image sequence that mixes full-width and half-width images.
- **Lightbox**: click any image to view it full screen; arrow keys to move, Esc to close.
- **Content in Markdown**: add a project by adding one `.md` file and a folder of images.
- **Automatic image optimisation**: responsive WebP sizes generated at build time.
- **Accessible**: semantic HTML, keyboard-friendly navigation and lightbox, visible focus, alt text for every image, reduced-motion support.
- **Fast**: static HTML, one self-hosted font, almost no JavaScript.

## Run it locally

Requires Node.js 22.12 or later.

```bash
npm install
npm run dev
```

Then open http://localhost:4321.

## Customise

| What | Where |
|---|---|
| Name, email, city, Instagram | `src/site.ts` |
| Projects | `src/content/work/*.md` (one file per project) |
| Project images | `src/assets/<project-name>/` |
| Your portrait and bio | `src/assets/mara.jpg` and `src/pages/about.astro` |
| Colours and font | CSS variables at the top of `src/styles/global.css` |

### Add a project

1. Create a folder of images in `src/assets/my-project/`.
2. Copy one of the files in `src/content/work/` to `my-project.md` and edit the title, year, `order`, text and image list.
3. Run `npm run dev`. The project appears on the home page and gets its own page at `/work/my-project/`.

## Deploy to Cloudflare Pages

- **Dashboard:** Workers & Pages → Create → Pages → Connect to Git → pick this repo. Framework preset: **Astro**. Build command: `npm run build`. Output directory: `dist`.
- **CLI:**
  ```bash
  npm run build
  npx wrangler pages deploy dist --project-name mara-ellis
  ```

The site only rebuilds when you push changes.

## Credits

- Typeface: [Schibsted Grotesk](https://fonts.google.com/specimen/Schibsted+Grotesk), SIL Open Font License.
- Photographs: [Unsplash](https://unsplash.com) contributors under the [Unsplash License](https://unsplash.com/license). Each image's photographer and source link is in the `credit` and `source` fields of its project's Markdown file and is shown at the bottom of each project page. The About page photo (hands holding a camera, no face shown) is by Patrick Fore.
- Built by **NC Atelier**.

---

### Want a site like this for your business?

NC Atelier designs and builds fast, accessible websites for businesses in the UK, US and Canada.

**Get in touch:** [ncatelier.com](https://ncatelier.com) · [LinkedIn](https://www.linkedin.com/in/cadetnicolas)
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.