Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
This project is a template for a simple portfolio of pictures and p5.js sketches.

Portfolio library replicating the GitHub UI, built with Next.js, TypeScript, and Tailwind CSS.
Jekyll P5 Portfolio is a Jekyll-based template for publishing a portfolio of pictures and interactive p5.js sketches on GitHub Pages for free.
Jekyll P5 Portfolio is a static-site template built with Jekyll that turns a folder of project directories into a thumbnail homepage and individual project pages. Each project lives in its own directory under _projects and contains a JavaScript sketch, a thumbnail image, and a Markdown post file with YAML front matter. The template is designed to run on GitHub Pages with no additional hosting costs and is demonstrated live at https://benjaminhabert.github.io/jekyll-p5-portfolio/.
master branch as the source in the repository settings; there is no need for a separate web server._projects holding all the files for that project: the sketch code, thumbnail picture, and a p5project.md post with YAML front matter (layout, title, date, thumbnail, and dependencies).date field in the front matter from most to least recent.jekyll serve from the project root serves the site locally at http://localhost:4000/<baseurl>/ and auto-reloads the browser whenever a file is modified._config.yml file contains fields for the title, email, description, baseurl, Twitter username, and GitHub username; editing this file rebrands the entire site without touching layout files.dependencies list, making it easy to add other JavaScript libraries besides p5.js on a per-project basis.simple_sketch directory, replacing the JavaScript file, adding a square thumbnail, and editing the post front matter.div for the canvas; the homepage thumbnail links to that page.Fork the repository, rename it to a chosen name, and enable GitHub Pages on the master branch in the repository settings. Edit _config.yml to set the site title, description, baseurl (which must match the repository name), and social usernames. To add a project, copy the simple_sketch folder in _projects, rename it, replace the .js file with your sketch, add a square thumbnail picture, and update p5project.md with a title, date, thumbnail filename, and dependencies. For local development, clone the repository, run jekyll serve, and push changes back to GitHub to update the live site.
Copy the simple_sketch directory inside _projects to a new directory, rename it, replace the JavaScript file with your own code, and add a thumbnail image. Then edit the p5project.md file to set the title, date, thumbnail, and keep p5 in the dependencies list. Commit and push; GitHub Pages will update the homepage automatically.
Yes. The front matter of each project includes a dependencies list where you can add other JavaScript libraries. The template's file structure keeps each project's dependencies isolated, so you can use any libraries you need for a specific sketch.
Yes. The template is open source and GitHub Pages offers free hosting for public repositories. You only need a GitHub account to fork the repository and publish your portfolio.
The template requires that your p5 script be linked to a div element in the post body; the simple_sketch example demonstrates the correct structure. Without that link, the canvas will not render.
You can edit files directly through the GitHub interface without installing Jekyll. However, installing Jekyll enables the live-reload development workflow described in the README and is the recommended way to preview changes before pushing them.
