<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Matt Segar Blog</title>
  <link>https://segar.me/blog/</link>
  <description>Matt Segar's personal blog</description>
  <language>en-us</language>
  <lastBuildDate>Sun, 12 Jul 2026 01:58:57 GMT</lastBuildDate>
  <atom:link href="https://segar.me/feed.xml" rel="self" type="application/rss+xml" />
  <item>
    <title>Benchmarking Five Embedding Models for a Keyword Relevance Filter</title>
    <link>https://segar.me/blog/posts/embedding_model_comparison.html</link>
    <guid>https://segar.me/blog/posts/embedding_model_comparison.html</guid>
    <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
    <description>I compared five open embedding models to filter keyword lists down to a single niche. The top scorer wasn&apos;t the model I shipped, one wrong threshold made the best model look worthless, and the largest gains came from things the encoder never sees.</description>
  </item>
  <item>
    <title>Teaching Claude to Make Slides That Look Like Mine</title>
    <link>https://segar.me/blog/posts/teaching-claude-my-slide-style.html</link>
    <guid>https://segar.me/blog/posts/teaching-claude-my-slide-style.html</guid>
    <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
    <description>There&apos;s a recognizable look to AI-generated conference slides — the rounded teal cards, the icon-in-a-circle, the drop shadows. I took one of my own talks, had Claude reverse-engineer its design system into a reusable skill, and tested whether the skill could regenerate a deck in my style instead of the default one.</description>
  </item>
  <item>
    <title>Fine-Tuning a Local LLM to Write in My Academic Voice</title>
    <link>https://segar.me/blog/posts/fine_tuning_academic_voice.html</link>
    <guid>https://segar.me/blog/posts/fine_tuning_academic_voice.html</guid>
    <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
    <description>How I trained an 8B Llama on my own cardiology papers, from extracting prose out of Word docs, to a first attempt that failed because I trained on single sentences, to a working model that drafts abstracts, methods, and discussions in my style on a Mac.</description>
  </item>
  <item>
    <title>Reconstructing a Mixbook Movie with ffmpeg</title>
    <link>https://segar.me/blog/posts/reconstructing_a_mixbook_movie.html</link>
    <guid>https://segar.me/blog/posts/reconstructing_a_mixbook_movie.html</guid>
    <pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate>
    <description>How I traced Mixbook&apos;s animated Movie feature to its data API, found that the browser builds the video instead of storing it, and rebuilt a downloadable MP4 from the raw photos and music with crossfades, Ken Burns motion, and the original title text</description>
  </item>
  <item>
    <title>Adding Localization and RTL Support to a Next.js App</title>
    <link>https://segar.me/blog/posts/app_localization_rtl.html</link>
    <guid>https://segar.me/blog/posts/app_localization_rtl.html</guid>
    <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
    <description>Notes on adding multiple languages and right-to-left support to a Next.js app, covering logical CSS properties, locale formatting tags, LLM-assisted translation, and two hydration bugs to watch for</description>
  </item>
  <item>
    <title>Keeping Claude Code in Sync with Your Supabase Schema</title>
    <link>https://segar.me/blog/posts/supabase_schema_workflow.html</link>
    <guid>https://segar.me/blog/posts/supabase_schema_workflow.html</guid>
    <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
    <description>AI coding agents write a new migration file every time they change a table. Here&apos;s how a single pg_dump snapshot in the repo keeps Claude Code in sync with the current Supabase schema.</description>
  </item>
  <item>
    <title>Using Supabase MCP with Multiple Organizations in Claude Code</title>
    <link>https://segar.me/blog/posts/supabase_multiple_orgs.html</link>
    <guid>https://segar.me/blog/posts/supabase_multiple_orgs.html</guid>
    <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
    <description>How to configure multiple Supabase MCP servers in Claude Code so you can work across different organizations and projects without constantly logging in and out</description>
  </item>
  <item>
    <title>How I Boosted My Next.js Landing Page from 76 to 96 on Lighthouse</title>
    <link>https://segar.me/blog/posts/nextjs_optimization.html</link>
    <guid>https://segar.me/blog/posts/nextjs_optimization.html</guid>
    <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
    <description>A 50KB animation library was blocking my landing page render. Here&apos;s how I replaced it with CSS and gained 20 Lighthouse points in the process.</description>
  </item>
  <item>
    <title>PDF Text Extraction in Next.js Standalone Builds</title>
    <link>https://segar.me/blog/posts/pdf_extraction.html</link>
    <guid>https://segar.me/blog/posts/pdf_extraction.html</guid>
    <pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate>
    <description>How a simple PDF upload feature turned into a multi-day debugging session across browser polyfills, build tracing, and Docker containers.</description>
  </item>
  <item>
    <title>Migrating Static Sites to Dokploy with Traefik and Let&apos;s Encrypt</title>
    <link>https://segar.me/blog/posts/dokploy.html</link>
    <guid>https://segar.me/blog/posts/dokploy.html</guid>
    <pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate>
    <description>A practical guide to hosting static sites on Dokploy, including React SPAs, SSL certificates, and the networking gotchas that will save you hours.</description>
  </item>
</channel>
</rss>