<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>RiverPoint Web &amp; App — Notes</title>
    <link>https://riverpointco.com/blog/</link>
    <atom:link href="https://riverpointco.com/feed.xml" rel="self" type="application/rss+xml" />
    <description>Things that went wrong on a real build, and what it cost to find them.</description>
    <language>en</language>
    <lastBuildDate>Thu, 24 Sep 2026 03:30:00 GMT</lastBuildDate>
    <item>
      <title>Our scroll site looked terrible on phones. The animation was fine.</title>
      <link>https://riverpointco.com/blog/scroll-video-upscale-mobile/</link>
      <guid isPermaLink="true">https://riverpointco.com/blog/scroll-video-upscale-mobile/</guid>
      <description>We replaced a video with a canvas image sequence and it got worse. The cause was two lines of arithmetic sitting inside our own draw function that nobody had run.</description>
      <pubDate>Thu, 24 Sep 2026 03:30:00 GMT</pubDate>
      <author>info@riverpointco.com (RiverPoint Web &amp; App)</author>
      <category>Performance</category>
      <category>GSAP</category>
      <category>Responsive</category>
      <enclosure url="https://riverpointco.com/blog/hero-1.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Never await img.decode()</title>
      <link>https://riverpointco.com/blog/never-await-img-decode/</link>
      <guid isPermaLink="true">https://riverpointco.com/blog/never-await-img-decode/</guid>
      <description>Our page worked perfectly. Unless you opened it in a background tab, where every preload worker stalled on frame one and stayed there.</description>
      <pubDate>Wed, 23 Sep 2026 03:30:00 GMT</pubDate>
      <author>info@riverpointco.com (RiverPoint Web &amp; App)</author>
      <category>JavaScript</category>
      <category>Performance</category>
      <category>Debugging</category>
      <enclosure url="https://riverpointco.com/blog/hero-2.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>A site that could not rank, because of one line</title>
      <link>https://riverpointco.com/blog/canonical-tag-wrong-domain/</link>
      <guid isPermaLink="true">https://riverpointco.com/blog/canonical-tag-wrong-domain/</guid>
      <description>We launched on a new domain. It was indexed and it could not rank. The reason took ten seconds to find and had been there the whole time.</description>
      <pubDate>Tue, 22 Sep 2026 03:30:00 GMT</pubDate>
      <author>info@riverpointco.com (RiverPoint Web &amp; App)</author>
      <category>Technical SEO</category>
      <category>Next.js</category>
      <enclosure url="https://riverpointco.com/blog/hero-3.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Sending email from a Cloudflare Worker, without a third party</title>
      <link>https://riverpointco.com/blog/send-email-cloudflare-workers/</link>
      <guid isPermaLink="true">https://riverpointco.com/blog/send-email-cloudflare-workers/</guid>
      <description>Most results for this still tell you to use MailChannels. It was withdrawn in 2024. Here is what works now, and the two bugs that let curl pass while every real submission failed.</description>
      <pubDate>Wed, 23 Sep 2026 03:30:00 GMT</pubDate>
      <author>info@riverpointco.com (RiverPoint Web &amp; App)</author>
      <category>Cloudflare Workers</category>
      <category>Serverless</category>
      <category>Forms</category>
      <enclosure url="https://riverpointco.com/blog/hero-4.jpg" type="image/jpeg" length="0" />
    </item>
  </channel>
</rss>
