<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://msof.me/</loc>
<lastmod>2026-03-21T14:28:01.428Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://msof.me/projects/</loc>
<lastmod>2026-03-21T14:28:01.428Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://msof.me/blog/</loc>
<lastmod>2026-03-21T14:28:01.428Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://msof.me/contact/</loc>
<lastmod>2026-03-21T14:28:01.428Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://msof.me/privacy-policy/</loc>
<lastmod>2026-03-21T14:28:01.428Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://msof.me/projects/joblister-plugin/</loc>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/projects/sentiero-luxury-villas/</loc>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/projects/next-js-strapi-portfolio-starter/</loc>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/projects/shared-lens-spa/</loc>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/blog/implementing-a-custom-gdpr-compliant-consent-system-on-sentiero-luxury-villas-website/</loc>
<lastmod>2025-05-08T09:40:39.604Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/blog/how-to-self-host-supabase-with-coolify-and-migrate-your-project-from-the-official-supabase-platform/</loc>
<lastmod>2025-05-08T09:41:22.886Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/blog/building-an-interactive-masterplan-for-sentiero-luxury-villas/</loc>
<lastmod>2025-05-08T09:41:45.165Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/blog/how-i-built-the-tenzi-dice-game-in-react/</loc>
<lastmod>2025-07-17T19:15:49.804Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/blog/three-critical-react-lessons-i-learned-building-a-hangman-game/</loc>
<lastmod>2025-07-24T16:05:19.903Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/blog/a-smarter-heading-hierarchy-for-embeddable-react-apps/</loc>
<lastmod>2025-09-18T15:18:30.277Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://msof.me/blog/protecting-api-keys-in-frontend-apps-with-netlify-functions/</loc>
<lastmod>2025-07-28T15:57:25.608Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
