<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>React on Jamie Ede</title>
    <link>https://jamieede.com/tags/react/</link>
    <description>Recent content in React on Jamie Ede</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 23 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://jamieede.com/tags/react/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Building a photography portfolio on Cloudflare&#39;s full stack</title>
      <link>https://jamieede.com/posts/building-a-photography-portfolio-on-cloudflares-full-stack/</link>
      <pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://jamieede.com/posts/building-a-photography-portfolio-on-cloudflares-full-stack/</guid>
      <description>&lt;p&gt;Two photography portfolios, one codebase. The goal: somewhere to host photos that is not Instagram, not Flickr, not a third-party album that disappears when the company pivots. I wanted to learn &lt;a href=&#34;https://developers.cloudflare.com/images/&#34; target=&#34;_blank&#34; &gt;Cloudflare Images&lt;/a&gt;&#xA; properly. The result is two independent portfolio sites built from the same React app, the same &lt;a href=&#34;https://developers.cloudflare.com/pages/functions/&#34; target=&#34;_blank&#34; &gt;Pages Functions&lt;/a&gt;&#xA;, and the same &lt;a href=&#34;https://developers.cloudflare.com/d1/&#34; target=&#34;_blank&#34; &gt;D1&lt;/a&gt;&#xA; schema - with no shared data between them.&lt;/p&gt;&#xA;&lt;p&gt;The two sites live at &lt;a href=&#34;https://alex.edestudio.us&#34; target=&#34;_blank&#34; &gt;alex.edestudio.us&lt;/a&gt;&#xA; and &lt;a href=&#34;https://jamie.edestudio.us&#34; target=&#34;_blank&#34; &gt;jamie.edestudio.us&lt;/a&gt;&#xA;. Same React app, same Pages Functions, same migrations, but two custom domains, two separate D1 databases, two independent photo catalogues, and two admin areas behind &lt;a href=&#34;https://developers.cloudflare.com/cloudflare-one/&#34; target=&#34;_blank&#34; &gt;Cloudflare Access&lt;/a&gt;&#xA;. One codebase, two products.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
