Skip to content

MorrisGlr/creative

Repository files navigation

Morris Aguilar — Creative Portfolio

Deploy License: MIT

View the live portfolio

Live portfolio screenshot

A living archive of creative work across four media: film and digital photography, carved textbook sculptures, algorithmic and generative art, and layered paper works.

There is always a system first. Each medium has its own constraints, and I choose media in which those constraints become the subject. Read the full artist statement →


Why I Built This

I did not want a portfolio that felt like a static list of images. I wanted a system that presents each project as a cohesive body of work with its own visual identity.

I also wanted the site to be maintainable over time. My goal was to make updates simple: I can add a new project folder with media and metadata, and the site assembles the project page and index tile automatically.

How the Portfolio Is Designed

The site is organized around four category entry points: Photos, Textbook, Algo, and Paper.

Each project page is designed with a consistent structure:

  • A hero section that introduces the project title, date, and framing text.
  • A media stream that lets the work unfold sequentially.
  • A shared visual language that keeps the portfolio coherent while allowing each series to feel distinct.

For unreleased work, I use catalog placeholders labeled Held for Submission. These are intentionally designed cards rather than empty pages, so visitors can understand that a project exists in the series even when the full work cannot be published yet.

What "Held for Submission" Means

Some calls for art require work to remain unpublished until decisions are complete. To respect that, I publish a designed placeholder instead of the full media.

Each placeholder includes:

  • Title
  • Year
  • Medium
  • Dimensions

What is intentionally withheld:

  • Final images or videos
  • Full process documentation
  • Complete project media stream

How I Add New Work

My update workflow is designed to be folder-first:

  1. Create a folder at src/content/<section>/<Project-Slug>/.
  2. Add project media into src/content/<section>/<Project-Slug>/media/.
  3. Add a page.json file in src/content/<section>/<Project-Slug>/.
  4. Build the site, and the project appears in the section index and gets its own detail page.

Featured Series

  • Photos: Film and digital photography series focused on repeated encounters in everyday scenes.
  • Textbook: Carved textbook sculptures that reframe educational imagery as standalone visual art.
  • Algo: Generative and algorithmic motion pieces.
  • Paper: Layered paper works inspired by structure, depth, and architecture.

For Technical Readers

This site is a static Astro 5 project with a content-driven architecture:

  • src/scripts/content.ts loads page.json files and resolves media URLs with import.meta.glob.
  • src/content/placeholders.ts defines placeholder projects and their visual tokens.
  • Tailwind is configured through the Vite plugin in astro.config.mjs.
  • Base-aware path helpers are used so links and assets work on GitHub Pages under /creative.

Local Development

Run from the project root:

npm install
npm run dev
npm run build
npm run preview

Content Schema (Quick Reference)

In practice, each project page.json should include:

  • Required fields: title, slug, cover, media
  • Common fields: dateCreated, displayDate, description, tags, options
  • Media item type: image, video, or model

Minimal example:

{
  "title": "Project Title",
  "slug": "Project-Title",
  "dateCreated": "2026-01-15",
  "displayDate": "2026",
  "description": "Short project description.",
  "cover": "cover.jpg",
  "tags": ["tag-one", "tag-two"],
  "media": [
    {
      "type": "image",
      "src": "image-01.jpg",
      "alt": "Alt text",
      "caption": "Caption text"
    },
    {
      "type": "video",
      "src": "clip-01.mp4",
      "caption": "Video caption"
    },
    {
      "type": "model",
      "src": "model.glb",
      "usdz": "model.usdz"
    }
  ],
  "options": {
    "parallax": true,
    "bgFromDominantColor": true
  }
}

Deployment

This site deploys to GitHub Pages through .github/workflows/deploy.yml.

  • Push to main triggers the workflow.
  • Astro is configured for Pages with site and base in astro.config.mjs.
  • Deployment status can be checked in the GitHub Actions tab and Settings -> Pages.

Configured production URL:

  • https://morrisglr.github.io/creative/

Licensing

The code and architecture of this site are available under the MIT License. You are free to fork and adapt the Astro template for your own portfolio.

The artwork and content — all images, videos, the artist statement, and project descriptions — are licensed under CC BY-NC 4.0. They may not be reproduced for commercial purposes. See LICENSE-CONTENT for details.

Notes

This portfolio is intentionally iterative. Some projects appear as placeholders while they are held for submission or still in progress, and then transition into full project pages when publication is appropriate.

Contact

Morris A. Aguilar, Ph.D.
LinkedIn

About

A living archive of my creative work across photography, textbook sculpture, paper layering, and algorithmic art. Built with the Astro 5 framework and deployed as a live GitHub page.

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE-CONTENT

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors