<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://maraellison.dev/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://maraellison.dev/"/>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://maraellison.dev/zh"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://maraellison.dev/"/>
    <image:image><image:loc>https://maraellison.dev/images/og/mara-ellison-portfolio-og.jpg</image:loc><image:title>Mara Ellison — creative frontend developer</image:title></image:image>
  </url>
  <url>
    <loc>https://maraellison.dev/zh</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://maraellison.dev/"/>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://maraellison.dev/zh"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://maraellison.dev/"/>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/accessible-custom-cursors/</loc>
    <lastmod>2026-01-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image><image:loc>https://maraellison.dev/images/blog/accessible-custom-cursors-1600.webp</image:loc><image:title>A small coral dot inside a larger ring cursor, surrounded by fading particle trails</image:title></image:image>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/archive/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/archive/2/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/archive/3/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/astro-or-nextjs-for-content-sites/</loc>
    <lastmod>2026-05-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image><image:loc>https://maraellison.dev/images/blog/astro-or-nextjs-for-content-sites-1600.webp</image:loc><image:title>Two stylised planets, one orange and one indigo, orbiting a shared sun</image:title></image:image>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/core-web-vitals-for-creative-websites/</loc>
    <lastmod>2026-08-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image><image:loc>https://maraellison.dev/images/blog/core-web-vitals-for-creative-websites-1600.webp</image:loc><image:title>Three circular gauges in green, amber and red representing Core Web Vitals scores</image:title></image:image>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/designing-a-motion-system/</loc>
    <lastmod>2026-09-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image><image:loc>https://maraellison.dev/images/blog/designing-a-motion-system-1600.webp</image:loc><image:title>Colourful easing curves drawn on a grid with dots travelling along them</image:title></image:image>
    <video:video><video:thumbnail_loc>https://maraellison.dev/media/motion-system-breakdown-poster.jpg</video:thumbnail_loc><video:title>Motion system breakdown — easing, choreography and restraint</video:title><video:description>A 16-second breakdown of the three principles behind this portfolio's motion system.</video:description><video:content_loc>https://maraellison.dev/media/motion-system-breakdown.mp4</video:content_loc><video:duration>16</video:duration><video:publication_date>2026-06-30</video:publication_date></video:video>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/generative-music-with-the-web-audio-api/</loc>
    <lastmod>2026-04-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image><image:loc>https://maraellison.dev/images/blog/generative-music-with-the-web-audio-api-1600.webp</image:loc><image:title>Layered sine waves in violet and coral forming a soft sound wave pattern</image:title></image:image>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/json-ld-structured-data-recipes/</loc>
    <lastmod>2026-03-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image><image:loc>https://maraellison.dev/images/blog/json-ld-structured-data-recipes-1600.webp</image:loc><image:title>Curly braces connected by lines into a network of nodes on a dark background</image:title></image:image>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/accessibility/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/animation/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/architecture/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/astro/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/creative-coding/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/css/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/design/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/javascript/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/json-ld/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/motion/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/nextjs/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/performance/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/react/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/seo/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/threejs/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/web-audio/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/tags/webgl/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://maraellison.dev/blog/webgl-page-transitions-with-threejs/</loc>
    <lastmod>2026-09-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image><image:loc>https://maraellison.dev/images/blog/webgl-page-transitions-with-threejs-1600.webp</image:loc><image:title>Two abstract gradient images dissolving into each other through a noisy displacement pattern</image:title></image:image>
  </url>
</urlset>
