<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Michael's Substack]]></title><description><![CDATA[Michael Campo's personal Substack]]></description><link>https://michaelcampo.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!0PX2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb41da79e-a121-4eda-b258-cf89d14078b6_1344x1344.png</url><title>Michael&apos;s Substack</title><link>https://michaelcampo.substack.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 13 Jul 2026 08:14:07 GMT</lastBuildDate><atom:link href="https://michaelcampo.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Michael Campo]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[michaelcampo@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[michaelcampo@substack.com]]></itunes:email><itunes:name><![CDATA[Michael Campo]]></itunes:name></itunes:owner><itunes:author><![CDATA[Michael Campo]]></itunes:author><googleplay:owner><![CDATA[michaelcampo@substack.com]]></googleplay:owner><googleplay:email><![CDATA[michaelcampo@substack.com]]></googleplay:email><googleplay:author><![CDATA[Michael Campo]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Xteink X4 Tips: Custom Wallpapers, Free Ebooks, and the Backlit X4 Pro That's Coming]]></title><description><![CDATA[Part three of my ongoing love affair with the Xteink X4 &#8212; the little e-reader I can&#8217;t stop customizing &#8212; plus the confirmed backlit Pro I&#8217;m now waiting for.]]></description><link>https://michaelcampo.substack.com/p/xteink-x4-tips-custom-wallpapers</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/xteink-x4-tips-custom-wallpapers</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 07 Jul 2026 14:30:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!VLVO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VLVO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VLVO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!VLVO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!VLVO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!VLVO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VLVO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1969908,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/204517295?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VLVO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!VLVO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!VLVO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!VLVO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F153092e5-d363-454e-9e5b-7a95f08657eb_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><span>I did not expect to still be obsessed with this thing</span></h2><p><span>Almost two weeks in, and the cheap little E-Ink reader I bought on a whim is still sitting on my desk, still getting picked up every day, and still &#8212; this is the part that surprises me &#8212; getting </span><em><span>tinkered with</span></em><span>.</span></p><p><span>If you&#8217;re just joining me: I&#8217;ve written about this device twice already. First, </span><a href="https://michaelcampo.substack.com/p/i-bought-a-55-e-ink-reader-on-prime"><span>the full setup story</span></a><span> &#8212; how I found the Xteink X4, flashed it with the open-source CrossPoint firmware, and built an automated system that delivers my own personalized news digest to it every day. Then </span><a href="https://open.substack.com/pub/michaelcampo/p/the-xteink-x4-bmp-trick-how-to-put?r=hbsn9&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true"><span>the BMP trick</span></a><span> &#8212; how I turned it into an offline &#8220;QR wallet&#8221; for my payment codes after learning the hard way which image format this thing actually likes.</span></p><p><span>This is part three. And it&#8217;s the most </span><em><span>fun</span></em><span> one, because it&#8217;s not about solving a problem &#8212; it&#8217;s about making the device feel like </span><em><span>mine</span></em><span>. Wallpapers, free books, and a look at the rumored version I&#8217;m genuinely excited about.</span></p><p><span>Let&#8217;s get into it.</span></p><div><hr></div><h2><span>Making it beautiful: custom wallpapers and sleep screens</span></h2><p><span>Here&#8217;s something I didn&#8217;t appreciate until I went looking: an e-ink screen makes a </span><em><span>gorgeous</span></em><span> sleep screen. That crisp, paper-like, no-glow display turns a good black-and-white image into something that looks like a framed art print sitting on your desk. When the device sleeps, it holds whatever image you set &#8212; no battery drain, because e-ink only uses power when it </span><em><span>changes</span></em><span>. It just sits there looking like a little piece of art.</span></p><p><span>Two websites have become my go-to for this, and both are free.</span></p><h3><span>1. x4ePapers &#8212; a giant wallpaper library made for this exact device</span></h3><p><strong><a href="https://x4epapers.lowio.xyz/"><span>x4ePapers</span></a></strong><span> is a wallpaper site built specifically for the Xteink X3 and X4 by someone in the enthusiast community. And when I say built for it, I mean it: over </span><strong><span>26,000 images</span></strong><span>, each already sized to the X4&#8217;s screen, with toggles to </span><strong><span>invert</span></strong><span> the colors or apply </span><strong><span>dither</span></strong><span> (a technique that makes gradients look better on a black-and-white display).</span></p><p><span>You just browse, pick one that speaks to you, choose the X4 resolution, and download. No resizing, no guessing. It&#8217;s a labor of love made for the small but passionate community around these readers, and it shows.</span></p><h3><span>2. Wallpaper Converter &#8212; turn </span><em><span>any</span></em><span> image into a device-ready file</span></h3><p><span>Sometimes you don&#8217;t want someone else&#8217;s wallpaper &#8212; you want </span><em><span>your</span></em><span> photo. A shot of your kids, a favorite piece of art, your own photography. That&#8217;s where the </span><strong><a href="https://wallpaperconverter.jakegreen.dev/"><span>Wallpaper Converter</span></a></strong><span> by Jake Green comes in.</span></p><p><span>You drop in any image &#8212; PNG, JPG, whatever &#8212; pick your device (it auto-sets the X4 resolution), and it converts the image to a device-ready </span><strong><span>BMP</span></strong><span> file. It handles the grayscale conversion automatically (since, again, these screens are black and white), lets you crop and align, and even adjust the fit.</span></p><p><span>If you read my last article, that word &#8212; </span><strong><span>BMP</span></strong><span> &#8212; might ring a bell. It&#8217;s the same format that finally cracked my QR wallet project. Turns out BMP is the X4&#8217;s love language: it&#8217;s the format the device handles most natively, and this converter spits out exactly what CrossPoint wants.</span></p><p><strong><span>The sleep-screen trick:</span></strong><span> on CrossPoint, if you rename your converted file to sleep.bmp and drop it in the device&#8217;s root folder, it becomes your sleep screen. Want variety? Make a folder called sleep, fill it with images, and the device will rotate through them randomly. I&#8217;ve got a little rotating gallery of my own photography on mine now, and every time it sleeps it shows me something different. It&#8217;s a small thing that makes the device feel personal.</span></p><div><hr></div><h2><span>Filling it with books (the legit way)</span></h2><p><span>A reader is only as good as what&#8217;s on it. Here&#8217;s where I get my reading material &#8212; all legal, most of it free.</span></p><h3><span>Project Gutenberg &#8212; 75,000 free books</span></h3><p><strong><a href="https://www.gutenberg.org/"><span>Project Gutenberg</span></a></strong><span> is the granddaddy of free ebooks and still the best. Over </span><strong><span>75,000 books</span></strong><span> in the public domain &#8212; the classics, the canon, everything old enough that its copyright has expired. Dickens, Austen, Twain, Verne, Dostoevsky &#8212; all free, all DRM-free, all downloadable as clean EPUB files that drop right onto the X4.</span></p><p><span>No account, no payment, no catch. If you&#8217;ve never really explored it, do yourself a favor. It&#8217;s one of the great free resources on the internet.</span></p><h3><span>Beyond Gutenberg &#8212; more legit sources worth knowing</span></h3><p><span>Once you&#8217;ve raided Gutenberg, there are other above-board ways to keep the device fed:</span></p><ul><li><p><strong><a href="https://standardebooks.org/"><span>Standard Ebooks</span></a></strong><span> &#8212; takes public-domain books and lovingly reformats them into beautiful, modern, carefully typeset editions. Same free classics as Gutenberg, but polished to a shine. Free and DRM-free.</span></p></li><li><p><strong><a href="https://openlibrary.org/"><span>Open Library</span></a></strong><span> &#8212; a project of the Internet Archive that lets you </span><em><span>borrow</span></em><span> digital books, library-style. Huge catalog, legitimate lending model.</span></p></li><li><p><strong><span>Libby / your local library</span></strong><span> &#8212; if you have a library card, the Libby app gives you free access to a massive catalog of current ebooks. (You&#8217;ll need to work through Adobe&#8217;s system to get library EPUBs onto a device like this, but it&#8217;s doable, and it&#8217;s free.)</span></p></li><li><p><strong><a href="https://www.kobo.com/"><span>Kobo</span></a></strong><span> &#8212; when you </span><em><span>do</span></em><span> want to buy a current book, a lot of Kobo&#8217;s catalog is sold </span><strong><span>DRM-free</span></strong><span>, meaning you get a real file you own and can put on any reader. Just check the product details for &#8220;DRM-Free&#8221; before buying.</span></p></li></ul><p><span>As a published author myself, I&#8217;ll put in the honest word here: buying books &#8212; or borrowing them properly through your library &#8212; is what keeps writers writing. The free public-domain stuff is a genuine gift; for everything else, the legit routes above cost little or nothing and keep the whole ecosystem alive.</span></p><div><hr></div><h2><span>The one thing I&#8217;m waiting for: a backlit &#8220;Pro&#8221;</span></h2><p><span>Now for the tease that has me genuinely excited.</span></p><p><span>If you read my first review, you know my single biggest gripe with the X4: </span><strong><span>no backlight.</span></strong><span> You can&#8217;t read it in the dark. Coming from a Kindle Paperwhite &#8212; where I read in bed with the lights off every night &#8212; that&#8217;s been the one real compromise. I keep a book light nearby, but it&#8217;s not the same.</span></p><p><span>Well. It&#8217;s real. XTEINK teased a </span><strong><span>X4 V2 Pro</span></strong><span> (also floating around as the &#8220;X4P&#8221;) back in April, and it&#8217;s built around exactly the two things people keep asking for: </span><strong><span>a front light/back light</span></strong><span> and a </span><strong><span>touchscreen</span></strong><span>. The operating system&#8217;s been rewritten to handle the touch interface. As I write this, it&#8217;s reportedly in production, with a US release confirmed and regulatory clearance in the works &#8212; though there&#8217;s no firm date or price yet.</span></p><p><span>(One heads-up if you go researching: don&#8217;t confuse the X4 V2 Pro with the </span><strong><span>XTEINK S4</span></strong><span>, which is a separate, Android-based reader. The Pro is the non-Android, touchscreen, backlit evolution of the X4 I already own. Different devices.)</span></p><p><span>Here&#8217;s why the Pro has my attention: a lit screen is the </span><em><span>one</span></em><span> thing I said I wanted at the end of my first review. Take everything I love about the X4 &#8212; the openness, the price, the tinker-ability, the pocket size &#8212; and add a screen I can read in the dark, and you&#8217;ve closed the gap with the Paperwhite while keeping the freedom a Kindle will never give me.</span></p><p><span>I&#8217;ll be honest, there&#8217;s a fair debate about whether a frontlight even belongs on a device like this &#8212; plenty of e-ink purists find any glow harsh in the dark and worry about battery life, and for now the workaround is a cheap magnetic clip-on book light (which works fine). But for me personally, a built-in light would move this from &#8220;the reader I recommend to fellow tinkerers&#8221; toward &#8220;the reader I recommend to everyone.&#8221; I&#8217;ll be watching closely &#8212; and you can bet I&#8217;ll write about it when it lands.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Michael's Substack is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><span>Why I&#8217;m still hooked</span></h2><p><span>Here&#8217;s the honest heart of it.</span></p><p><span>I&#8217;ve had gadgets that dazzled me and then vanished into a drawer. This isn&#8217;t that. Almost two weeks in, I keep finding new reasons to pick it up &#8212; a fresh wallpaper of my own photos, a classic novel I finally got around to, my morning news digest waiting for me, a payment code ready to scan. It keeps rewarding the effort.</span></p><p><span>And that&#8217;s the thing about the Xteink X4 that a spec sheet will never capture: it&#8217;s </span><em><span>open</span></em><span>. It invites you to make it yours. Every one of these articles started with me wondering &#8220;can it do </span><em><span>this</span></em><span>?&#8221; &#8212; and so far, with a little tinkering, the answer keeps being yes.</span></p><p><span>For $69, it&#8217;s given me more genuine hobby-joy than gadgets that cost ten times as much. I&#8217;m still tweaking it. I suspect I will be for a while.</span></p><p><span>Part four whenever I break something new. Stay tuned.</span></p><div><hr></div><p><em><span>Catch up on the series: </span><a href="https://michaelcampo.substack.com/p/i-bought-a-55-e-ink-reader-on-prime"><span>the full setup and news-digest build</span></a><span> and </span><a href="https://open.substack.com/pub/michaelcampo/p/the-xteink-x4-bmp-trick-how-to-put?r=hbsn9&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true"><span>the BMP QR-wallet trick</span></a><span>. And if you&#8217;ve got an X4 of your own, tell me what you&#8217;ve done with yours &#8212; I&#8217;m always looking for the next thing to try.</span></em></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/xteink-x4-tips-custom-wallpapers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/xteink-x4-tips-custom-wallpapers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/xteink-x4-tips-custom-wallpapers?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[The XTEINK X4 BMP Trick: How to Put QR Codes (and Any Image) on Your E-Ink Reader]]></title><description><![CDATA[How I turned a $69 distraction-free e-reader into an offline "QR wallet" for Venmo, Zelle, and more &#8212; after three failed attempts.]]></description><link>https://michaelcampo.substack.com/p/the-xteink-x4-bmp-trick-how-to-put</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/the-xteink-x4-bmp-trick-how-to-put</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Thu, 02 Jul 2026 14:31:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tJ7V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tJ7V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tJ7V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tJ7V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tJ7V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tJ7V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tJ7V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg" width="2817" height="3566" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3566,&quot;width&quot;:2817,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1588071,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/204315478?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10e5a40-6cda-4388-8934-9accaea9a593.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tJ7V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tJ7V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tJ7V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tJ7V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b6a4b7-dcef-4a3a-998e-e49775234153_2817x3566.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Like what you&#8217;re reading? Thats my <a href="http://venmo.com/u/michael-campo-3"><span data-color="#0000ff" style="color: rgb(0, 0, 255);">Venmo</span></a> - leave me a tip if this article added value.</p><h2>The idea</h2><p>I&#8217;ve been on a kick lately with my little Xteink X4 &#8212; a cheap, pocket-sized E-Ink reader I&#8217;ve been bending to my will. (I&#8217;ve written about turning it into an automated news machine elsewhere.) This time I had a smaller, weirder idea:</p><p><strong>What if my payment QR codes lived on the e-reader instead of my phone?</strong></p><p>Think about it. When someone wants to pay me &#8212; splitting a dinner, buying something secondhand, tipping for a shoot &#8212; I usually fumble through my phone, open Venmo, dig for the QR screen, and hold it up. Meanwhile my phone is also buzzing with texts and notifications, the screen&#8217;s timing out, all of it.</p><p>A dedicated little device that just <em>shows the code</em> &#8212; no apps, no notifications, no timeout, no distractions &#8212; felt cleaner. Pull it out, flip to Venmo or Zelle, hold it up, done. An offline &#8220;QR wallet.&#8221; And you can even make the QR code your cover if you want to.</p><p>Simple concept. The execution taught me more about e-ink than I expected.</p><div><hr></div><h2>Problem #1: E-ink is black and white</h2><p>The first wall I hit is obvious in hindsight: <strong>E-Ink screens are grayscale.</strong> No color. At all.</p><p>My payment codes were not designed with that in mind:</p><ul><li><p>My <strong>Venmo</strong> code had the classic black dots on white &#8212; but with a <strong>color photo of me</strong> in the center circle.</p></li><li><p>My <strong>Zelle</strong> code was clean black-on-white. (This one was fine.)</p></li><li><p>My third code (a bank payment code) was <strong>white dots on a dark navy background</strong> &#8212; basically inverted.</p></li></ul><p>That last one is the real trap. QR scanners expect <em>dark code on a light background</em>. Flip that &#8212; light code on dark &#8212; and many scanners simply refuse to read it. On a color phone screen the navy version looks slick. On a grayscale e-reader it would&#8217;ve been a muddy, unscannable mess.</p><p>So the codes needed prep before they&#8217;d ever work on e-ink: convert everything to grayscale, crank the contrast to pure black-and-white, and &#8212; critically &#8212; <strong>invert</strong> the navy code so it became dark-on-light like a normal QR. The Venmo photo in the center just becomes a gray blob, but QR codes have built-in error correction, so a small obstruction usually still scans.</p><p>Lesson one: <strong>if you&#8217;re putting QR codes on e-ink, fix the contrast and orientation first, or they won&#8217;t scan.</strong></p><div><hr></div><h2>Problem #2: The format rabbit hole</h2><p>This is where I lost an hour, and it&#8217;s the part actually worth sharing, because every instinct I had was wrong.</p><p>My device runs <strong>CrossPoint</strong>, the excellent open-source community firmware for the X4. It reads EPUB and TXT books and displays images. So I figured: easy. I&#8217;ll bundle the three codes into a little EPUB &#8220;book,&#8221; one code per page with a label, flip through it like any other book.</p><p><strong>Attempt one &#8212; the EPUB.</strong> I built a clean EPUB, one QR per page. It opened perfectly on my computer in Apple Books. I sent it to the reader&#8230; and it landed as a <code>.zip</code> file. Wouldn&#8217;t open. I renamed it to <code>.epub</code> right on the device &#8212; it then <em>showed up</em> in the library, but opening it displayed nothing. Dead end.</p><p><strong>Attempt two &#8212; loose image files.</strong> Fine, I thought, skip the book entirely &#8212; it&#8217;s just three images. I dropped the PNG files straight onto the device. They appeared in the file manager&#8230; but tapping them did nothing. They wouldn&#8217;t open. The reader could <em>see</em> them but not <em>display</em> them.</p><p>At this point I was convinced the device just couldn&#8217;t do what I wanted. But before giving up I did the thing I should&#8217;ve done first: <strong>I actually read CrossPoint&#8217;s documentation.</strong></p><p>And there was the answer, hiding in plain sight. The firmware renders PNG and JPG images <em>only when they&#8217;re embedded inside an EPUB</em> &#8212; not as standalone files. But there&#8217;s <strong>one image format it opens directly</strong> from the file browser, in a dedicated image viewer:</p><p><strong>BMP.</strong></p><p>That&#8217;s it. That&#8217;s the whole secret. Plain old BMP &#8212; the format nobody&#8217;s thought about since Windows 95 &#8212; is the one CrossPoint opens natively as a full-screen image straight from the file list.</p><p><strong>Attempt three &#8212; BMP.</strong> I converted the three cleaned-up codes to BMP, sized to fit the screen, and sent them over. Opened the file browser, selected Venmo, and it filled the screen instantly. Zelle, same. The bank code, same. All three scannable.</p><p>After all the EPUB wrestling, the fix was the dumbest, oldest image format imaginable.</p><div><hr></div><h2>The takeaway for fellow X4 / CrossPoint owners</h2><p>If you want to put a <strong>standalone image</strong> on an Xteink X4 running CrossPoint &#8212; a QR code, a boarding pass, a membership card, a calendar, whatever &#8212; don&#8217;t fight with EPUBs or PNGs. <strong>Make it a BMP.</strong> It opens directly in the device&#8217;s image viewer, no book wrapper required.</p><p>And if you&#8217;re working with anything that needs to <em>scan</em> off the e-ink screen, prep the image first: grayscale, high contrast (push it to pure black and white), and make sure any QR is dark-on-light, not inverted. E-ink has lower contrast than paper, so give your phone&#8217;s camera a steady second and good ambient light &#8212; remember, there&#8217;s no backlight on this thing.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>One more tip I picked up in the docs while I was there: if an EPUB <em>does</em> give you rendering trouble, CrossPoint has a built-in <strong>EPUB Optimizer</strong> you can run on the device to reprocess a problem book. And there&#8217;s a setting under <strong>Display &#8594; Images</strong> that can disable image rendering entirely &#8212; worth checking if your images mysteriously won&#8217;t show.</p><div><hr></div><h2>A word on safety (read this before you do it)</h2><p>Putting payment QR codes on a device deserves a moment of thought.</p><p>These codes link to your payment accounts. Anyone who picks up the device can pull them up. For <strong>receive-money</strong> codes &#8212; the kind people scan <em>to pay you</em> &#8212; that&#8217;s generally low risk; the worst case is someone sees your handle. But I&#8217;d keep it to exactly that: <strong>receive-only codes.</strong> Don&#8217;t put anything on there that authorizes spending, exposes a full account number, or does more than say &#8220;pay me.&#8221; And obviously, don&#8217;t leave the device lying around like loose cash.</p><p>Used sensibly, it&#8217;s a handy little tool. Just be deliberate about <em>which</em> codes earn a spot.</p><div><hr></div><h2>Would I actually use this?</h2><p>Honestly? It&#8217;s a niche trick. Most of the time my phone is right there and it&#8217;s faster to just open the app.</p><p>But there&#8217;s something I like about it anyway &#8212; the same thing I like about the whole distraction-free-device philosophy. When I hand someone this little gray slab to scan, there&#8217;s no notification popping up over the code, no screen dimming, no &#8220;let me just close this real quick.&#8221; It does one thing. It shows the code. That&#8217;s it.</p><p>And figuring out the BMP trick scratched the exact itch that made me buy this weird little device in the first place: it&#8217;s <em>mine</em> to tinker with, and it&#8217;ll do what I want it to do &#8212; even if it makes me read the manual to get there.</p><div><hr></div><p><em>Running an Xteink X4 or thinking about one? I&#8217;ve been turning mine into all sorts of things it wasn&#8217;t really designed for. Drop a comment if you want the details on any of it.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/the-xteink-x4-bmp-trick-how-to-put?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/the-xteink-x4-bmp-trick-how-to-put?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[I Bought a $55 E-Ink Reader on Prime Day Nobody’s Heard Of, Then Used AI to Make It Actually Useful. Here's How.]]></title><description><![CDATA[A hands-on review of the Xteink X4, the CrossPoint firmware, and how I turned a bare-bones e-reader into a distraction-free news machine.]]></description><link>https://michaelcampo.substack.com/p/i-bought-a-55-e-ink-reader-on-prime</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/i-bought-a-55-e-ink-reader-on-prime</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 30 Jun 2026 14:30:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!U00C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U00C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U00C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!U00C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!U00C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!U00C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U00C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4241872,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/203736439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U00C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!U00C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!U00C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!U00C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e8e7a0-4865-4403-9e96-b56587811acb_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The short version</h2><p>A few weeks ago I&#8217;d never heard of the <a href="https://www.amazon.com/dp/B0GPXPK65X?ref=ppx_yo2ov_dt_b_fed_asin_title&amp;th=1"><span data-color="#0000ff" style="color: rgb(0, 0, 255);">Xteink X4</span></a>. Now there&#8217;s a little black slab of E-Ink sitting on my desk that I built a custom news pipeline for, loaded with free classic literature, and use to read first thing in the morning instead of doom-scrolling my phone.</p><p>It cost me <strong>$55 on Amazon during PRIME Week</strong>. It is not a Kindle. In some ways it&#8217;s worse than a Kindle, and I&#8217;ll be honest about those. But in one specific way &#8212; it&#8217;s <em>open</em> &#8212; it does something no Kindle will ever let me do.</p><p>And, the main draw - THIS THING IS TINY!!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yLTX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yLTX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yLTX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yLTX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yLTX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yLTX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg" width="684" height="573.3928571428571" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2535,&quot;width&quot;:3024,&quot;resizeWidth&quot;:684,&quot;bytes&quot;:1642767,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/203736439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d048934-7d06-4d73-b12f-9f912fcf7b01.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yLTX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yLTX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yLTX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yLTX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70940218-f88e-49f3-aeed-37799919c625_3024x2535.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is the full story: how I found it, how I set it up, the working code I used (cleaned up so you can use it too), what I love, what drives me crazy, and the question I still can&#8217;t answer: <strong>am I keeping it?</strong></p><div><hr></div><h2>How I found the Xteink X4</h2><p>I didn&#8217;t find this thing in a Best Buy. There&#8217;s no endcap display, no commercial, no influencer unboxing with a ring light. Well actually there&#8217;s a ton of those if you check LOL.</p><p>I found it the way you find most genuinely interesting gear now: <strong>buried in social media posts and recommendations.</strong> A few people in e-ink and &#8220;digital minimalism&#8221; circles kept mentioning this cheap, pocketable reader you could <em>flash with custom firmware</em>. That last part is what hooked me. I&#8217;m a tinkerer. The idea of a sub-$60 device I could actually modify was more interesting than another sealed-box gadget.</p><p>So I did what I always do when something nags at me: I went down the rabbit hole. And a few days later I had one in my hand.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KtzM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KtzM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png 424w, https://substackcdn.com/image/fetch/$s_!KtzM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png 848w, https://substackcdn.com/image/fetch/$s_!KtzM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png 1272w, https://substackcdn.com/image/fetch/$s_!KtzM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KtzM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png" width="1456" height="1807" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1807,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6844760,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/203736439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KtzM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png 424w, https://substackcdn.com/image/fetch/$s_!KtzM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png 848w, https://substackcdn.com/image/fetch/$s_!KtzM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png 1272w, https://substackcdn.com/image/fetch/$s_!KtzM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddf965b-8175-4e47-957a-b93645090717_1856x2304.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>What you actually get for $69 (at the time of writing this)</h2><p>Let me set expectations, because this is not a premium product and it doesn&#8217;t pretend to be.</p><p>The Xteink X4 is a <strong>pocket-sized E-Ink reader</strong> with a small black-and-white screen, physical page-turn buttons, and a microSD slot. That&#8217;s the whole pitch. It reads EPUB and TXT files. No touchscreen on the model I have. No fancy ecosystem.</p><p>I chose the <strong>black version</strong> (there&#8217;s a white one too, but black felt right for something I wanted to disappear into my pocket).</p><p>One thing worth knowing: <strong>it came with a 16GB microSD card</strong>, which is plenty for thousands of books &#8212; but it&#8217;s slow and I had a spare <strong>32GB microSD</strong> lying around so I swapped it in immediately, because why not. The device doesn&#8217;t care; it reads the card just fine. If you&#8217;re loading it up with a personal library, the bigger card gives you breathing room, though honestly even 16GB would take most people years to fill with text.</p><p>So far, so unremarkable. </p><p>A cheap e-reader. </p><p>But&#8230; Here&#8217;s where it gets interesting.</p><div><hr></div><h2>The justification: why I actually bought it</h2><p>I&#8217;ll be straight about my own psychology here, because I think a lot of you do this too.</p><p>I didn&#8217;t <em>need</em> this device. I have a phone, an iPad, I have a Kindle Paperwhite which I love. But I&#8217;d been looking for a reason to own a small, single-purpose reading device &#8212; something that does <em>one thing</em> and doesn&#8217;t buzz, ping, or tempt me into seventeen other apps. And the biggest selling point for this thing is its size! It&#8217;s pocketable.</p><p>My faith as a church going Catholic, got me thinking and became my justification for buying this. The thought of having a clean, dedicated device for reading the daily readings and Sunday mass readings&#8212; separate from the noise of everything else &#8212; was the push I needed. A device I could pick up that wouldn&#8217;t try to sell me anything or pull me into a feed. <strong>That</strong> was worth $55 to me.</p><p>And once I had that justification, the tinkerer in me took over and turned a simple e-reader into a project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5H7c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5H7c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5H7c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5H7c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5H7c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5H7c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg" width="2563" height="2726" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2726,&quot;width&quot;:2563,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1085274,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/203736439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff995a564-9e10-4ba7-8a9d-6fd20052beaa.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5H7c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5H7c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5H7c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5H7c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02635148-fc21-41f9-9df8-4d3ec65fe862_2563x2726.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Step one: flashing CrossPoint</h2><p>The stock firmware on the X4 is... fine (not really). Functional? (debatable). But the reason enthusiasts buy this device is the community firmware called <strong>CrossPoint</strong>.</p><p><a href="https://www.reddit.com/r/xteinkereader/comments/1plj85s/crosspoint_custom_firmware_for_the_xteink_x4/"><span data-color="#0000ff" style="color: rgb(0, 0, 255);">Flashing CrossPoint onto the X4</span></a> unlocks a much better reading experience &#8212; cleaner fonts, better layouts, and critically, <strong>wireless file transfer</strong> and support for something called OPDS (more on that later, because it&#8217;s the secret weapon).</p><p>&#8220;Flashing&#8221; sounds scary if you&#8217;ve never done it. It isn&#8217;t, really &#8212; it&#8217;s the process of replacing the device&#8217;s operating system with a new one. There are step-by-step video walkthroughs out there; I followed one start to finish. The short version: you put the firmware file on the device, trigger the update, and a few minutes later you&#8217;re running CrossPoint.</p><p>If you&#8217;re coming from a sealed ecosystem like Kindle, this step alone is a mental shift. <strong>You are allowed to modify this thing.</strong> Nobody&#8217;s stopping you. That&#8217;s the entire appeal.</p><div><hr></div><h2>Free books: Project Gutenberg</h2><p>The first thing I did with my newly-flashed reader was load it up with free literature.</p><p><strong><a href="https://www.gutenberg.org/"><span data-color="#0000ff" style="color: rgb(0, 0, 255);">Project Gutenberg</span></a></strong> is the obvious starting point and it&#8217;s wonderful. Over 70,000 books in the public domain &#8212; every classic you were supposed to read in school and never did &#8212; available as free, DRM-free EPUB downloads. No account, no payment, no catch. The works are old enough that their copyright has expired, so they&#8217;re free to download and own forever.</p><p>You download the EPUB, drop it on the device (or send it wirelessly via CrossPoint), and it just works. <em>The Count of Monte Cristo</em>, <em>Moby-Dick</em>, <em>Pride and Prejudice</em> &#8212; all there, all free, all clean.</p><p>This is the e-reader doing exactly what it should: holding a personal library you own outright.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eDIZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eDIZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic 424w, https://substackcdn.com/image/fetch/$s_!eDIZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic 848w, https://substackcdn.com/image/fetch/$s_!eDIZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic 1272w, https://substackcdn.com/image/fetch/$s_!eDIZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eDIZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1184393,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/203736439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eDIZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic 424w, https://substackcdn.com/image/fetch/$s_!eDIZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic 848w, https://substackcdn.com/image/fetch/$s_!eDIZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic 1272w, https://substackcdn.com/image/fetch/$s_!eDIZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b0dab5-cc06-4d61-a15d-431cdf7dcc6c.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Paid books that you actually own: Kobo + the DRM problem</h2><p>Here&#8217;s where most people hit a wall, and where the X4&#8217;s openness pays off.</p><p>You cannot easily put <strong>Kindle</strong> books on this device. Amazon wraps its books in DRM (Digital Rights Management) &#8212; copy protection that locks the file to Amazon&#8217;s own apps and hardware. A book you &#8220;bought&#8221; on Kindle isn&#8217;t really a portable file you own; it&#8217;s a license that works inside Amazon&#8217;s walls. That&#8217;s a deliberate design choice, and it means the X4 can&#8217;t read those files.</p><p>The workaround is to buy <strong>DRM-free</strong> books &#8212; files with no copy protection, that are genuinely yours to put on any device.</p><p><strong><a href="https://www.kobo.com/">Kobo</a></strong> turned out to be a great source for this. A lot of Kobo&#8217;s catalog is sold DRM-free (not all of it &#8212; you have to check each title&#8217;s details). When a book is DRM-free, you download a plain EPUB file you can move to any reader, including the X4.</p><p><strong>How to check if a Kobo book is DRM-free:</strong> on the product page, scroll to the technical details / specifications. Look for a line that explicitly says <strong>&#8220;DRM-Free.&#8221;</strong> If it instead names a scheme like &#8220;Adobe DRM,&#8221; that file is locked and won&#8217;t load cleanly. When in doubt, assume it&#8217;s protected and look for one that&#8217;s clearly labeled free.</p><div><hr></div><h2>When a file won&#8217;t load: Calibre to the rescue</h2><p>Even with a legitimate DRM-free EPUB, I hit a snag &#8212; and this is the most useful troubleshooting lesson in this whole review.</p><p>I bought a DRM-free book on Kobo, copied it to the X4, and <strong>every time the device tried to index it, it crashed.</strong> Hard. Wouldn&#8217;t open.</p><p>My first assumption was that the file was too big. It wasn&#8217;t &#8212; it was only 1.2MB, smaller than some of my other files. The problem wasn&#8217;t <em>size</em>, it was <em>structure</em>: something in the way that particular EPUB was built internally that the X4&#8217;s modest reader software couldn&#8217;t parse.</p><p>The fix was <strong><a href="https://calibre-ebook.com/">Calibre</a></strong>, the free, open-source e-book management app that everyone with an e-reader should have installed.</p><p>I imported the broken file into Calibre and used its <strong>convert</strong> feature to convert the EPUB... back into an EPUB. That sounds pointless, but it isn&#8217;t: the conversion <strong>rebuilds the file from scratch</strong>, stripping out whatever weird internal markup was choking the device and producing a clean, simple version. I loaded the converted file onto the X4 and it opened perfectly.</p><p><strong>If a book crashes your e-reader on indexing, don&#8217;t assume it&#8217;s broken &#8212; run it through a Calibre EPUB-to-EPUB conversion first.</strong> That one trick has saved several files for me now.</p><p>(One related note for the curious: Calibre <em>can</em> also strip DRM with plugins, but that breaks the terms you agreed to when buying from a store like Amazon, and I&#8217;m not going there. Buying DRM-free in the first place is the clean path &#8212; there&#8217;s nothing to strip, and the file is honestly yours.)</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PpRl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PpRl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PpRl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PpRl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PpRl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PpRl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg" width="2933" height="3051" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3051,&quot;width&quot;:2933,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1467861,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/203736439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba1077ac-54ce-4e5d-a99d-e9a383ae9094.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PpRl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PpRl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PpRl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PpRl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f990469-93b5-48c4-be84-da6c6b3e54ed_2933x3051.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The real project: building my own distraction-free news feed</h2><p>This is the part I&#8217;m most proud of, and it&#8217;s where I brought in an AI partner &#8212; <strong>Claude</strong> &#8212; to help me build something genuinely custom.</p><p>Here&#8217;s the problem I wanted to solve: I love the idea of a distraction-free reading device, but I also want to stay current on the things I actually care about &#8212; tech, AI, my New York Knicks, pickleball, local news, and a few others. I didn&#8217;t want to read that on my phone (distractions) or on a website (more distractions). I wanted it delivered to the <em>calm</em> device.</p><p>So, working with Claude, I built a small system that:</p><ol><li><p><strong>Automatically pulls the latest stories</strong> from RSS feeds for the exact topics I choose.</p></li><li><p><strong>Fetches the full article text</strong> for my most important topics (not just headlines).</p></li><li><p><strong>Bundles everything into a single, clean EPUB</strong> with a dated header and a navigable table of contents.</p></li><li><p><strong>Serves that file to the e-reader over my home WiFi</strong>, automatically, every single day.</p></li></ol><p>The result: I wake up, pick up the reader, and there&#8217;s a fresh, personalized &#8220;newspaper&#8221; waiting &#8212; just the topics I care about, no ads, no autoplay video, no infinite scroll. Just text. On e-ink. It genuinely changes how the morning feels.</p><p>Below is the <strong>working code</strong>, cleaned up so there&#8217;s nothing specific to my machine. You can adapt it to your own topics and run it yourself.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Michael's Substack is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>The code: an automated RSS-to-EPUB news digest</h3><p>This is a Python script. You&#8217;ll need Python 3 installed, plus two libraries:</p><pre><code><code>pip3 install feedparser ebooklib
</code></code></pre><p>For full-article fetching (optional but nice), also install:</p><pre><code><code>pip3 install trafilatura lxml_html_clean
</code></code></pre><p>Here&#8217;s the digest builder. Edit the <code>SOURCES</code> section to your own topics and feeds &#8212; almost every news site, blog, and newsletter has an RSS feed:</p><pre><code><code>#!/usr/bin/env python3
"""Morning Digest -&gt; EPUB for an e-ink reader.
Fetches RSS topics, builds one dated EPUB with full text for chosen topics."""
import feedparser, trafilatura
from ebooklib import epub
from datetime import date
import html, os, re, time

# ---- YOUR SOURCES: edit freely. "full": True fetches whole articles. ----
SOURCES = {
    "Tech News": {
        "full": True,
        "feeds": [
            "https://www.theverge.com/rss/index.xml",
            "https://bgr.com/feed/",
            "https://www.macrumors.com/macrumors.xml",
        ],
    },
    "AI News": {
        "full": True,
        "feeds": [
            "https://www.artificialintelligence-news.com/feed/",
        ],
    },
    "Sports": {
        "full": False,
        "feeds": [
            "https://www.espn.com/espn/rss/nba/news",
        ],
    },
    "Local News": {
        "full": False,
        "feeds": [
            "https://www.example-localpaper.com/rss/",  # swap in your city's paper
        ],
    },
    "Crypto News": {
        "full": False,
        "feeds": [
            "https://www.coindesk.com/arc/outboundfeeds/rss/",
            "https://cointelegraph.com/rss",
        ],
    },
}

MAX_PER_TOPIC = 5          # stories per topic
SNIPPET_CHARS = 600        # snippet length for snippet topics
FULLTEXT_MAX_CHARS = 6000  # cap on a single full article
OUTPUT_DIR = os.path.expanduser("~/MorningDigest")

def clean_snippet(text):
    if not text: return ""
    text = re.sub(r"&lt;[^&gt;]+&gt;", "", text)
    text = html.unescape(text)
    text = re.sub(r"\s+", " ", text).strip()
    if len(text) &gt; SNIPPET_CHARS:
        text = text[:SNIPPET_CHARS].rsplit(" ", 1)[0] + "&#8230;"
    return text

def fetch_fulltext(url):
    try:
        downloaded = trafilatura.fetch_url(url)
        if not downloaded: return None
        text = trafilatura.extract(downloaded, include_comments=False,
                                   include_tables=False)
        if not text: return None
        text = text.strip()
        if len(text) &gt; FULLTEXT_MAX_CHARS:
            text = text[:FULLTEXT_MAX_CHARS].rsplit(" ", 1)[0] + "&#8230;"
        return text
    except Exception:
        return None

def fetch_topic(cfg):
    feeds, full = cfg["feeds"], cfg["full"]
    items, seen = [], set()
    for url in feeds:
        try:
            d = feedparser.parse(url, agent="Mozilla/5.0 (MorningDigest)")
            src = d.feed.get("title", "")
            for e in d.entries:
                title = e.get("title", "").strip()
                if not title or title in seen: continue
                seen.add(title)
                snippet = clean_snippet(e.get("summary","") or e.get("description",""))
                ts = e.get("published_parsed") or e.get("updated_parsed")
                items.append({"title": title, "source": src, "snippet": snippet,
                              "link": e.get("link",""), "ts": ts})
        except Exception as ex:
            print(f"  ! feed error ({url}): {ex}")
    items.sort(key=lambda x: x["ts"] or 0, reverse=True)
    items = items[:MAX_PER_TOPIC]
    if full:
        for it in items:
            body = fetch_fulltext(it["link"]) if it["link"] else None
            if body:
                it["body"] = body; it["full_ok"] = True
            else:
                it["body"] = it["snippet"]; it["full_ok"] = False
            time.sleep(1)  # be polite to servers
    else:
        for it in items:
            it["body"] = it["snippet"]; it["full_ok"] = False
    return items

def para_html(body):
    out = []
    for para in body.split("\n"):
        para = para.strip()
        if para: out.append(f'&lt;p class="body"&gt;{html.escape(para)}&lt;/p&gt;')
    return "".join(out)

def build():
    today_str = date.today().strftime("%A, %B %d, %Y").replace(" 0", " ")
    print(f"Building digest for {today_str} ...")
    book = epub.EpubBook()
    book.set_identifier(f"digest-{date.today().isoformat()}")
    book.set_title(f"Daily Digest - {today_str}")
    book.set_language("en")
    book.add_author("Morning Digest")
    css = epub.EpubItem(uid="style", file_name="style/main.css", media_type="text/css",
        content="body{font-family:serif;line-height:1.5;margin:0.6em;}"
        "h1{font-size:1.5em;text-align:center;border-bottom:2px solid #000;padding-bottom:0.3em;margin-bottom:0.6em;}"
        "h2{font-size:1.25em;border-bottom:1px solid #000;margin-top:1.2em;padding-bottom:0.15em;}"
        "h3{font-size:1.1em;margin-bottom:0.1em;margin-top:1em;}"
        ".source{font-size:0.8em;font-style:italic;color:#444;margin:0 0 0.4em 0;}"
        ".body{font-size:0.95em;margin:0.4em 0;}"
        ".empty{font-style:italic;color:#666;}")
    book.add_item(css)
    chapters = []
    for section, cfg in SOURCES.items():
        print(f"  {section} ...")
        items = fetch_topic(cfg)
        safe = re.sub(r"[^A-Za-z0-9]+", "_", section)
        c = epub.EpubHtml(title=section, file_name=f"{safe}.xhtml", lang="en")
        parts = [f"&lt;h1&gt;{today_str}&lt;/h1&gt;", f"&lt;h2&gt;{html.escape(section)}&lt;/h2&gt;"]
        if not items: parts.append('&lt;p class="empty"&gt;No stories fetched today.&lt;/p&gt;')
        for it in items:
            parts.append(f"&lt;h3&gt;{html.escape(it['title'])}&lt;/h3&gt;")
            if it["source"]:
                parts.append(f'&lt;p class="source"&gt;{html.escape(it["source"])}&lt;/p&gt;')
            parts.append(para_html(it["body"]) if it["body"] else "")
        c.content = "".join(parts)
        c.add_item(css)
        book.add_item(c)
        chapters.append(c)
    book.toc = chapters
    book.add_item(epub.EpubNcx())
    book.add_item(epub.EpubNav())
    book.spine = ["nav"] + chapters
    os.makedirs(OUTPUT_DIR, exist_ok=True)
    out = os.path.join(OUTPUT_DIR, f"Digest_{date.today().isoformat()}.epub")
    epub.write_epub(out, book)
    print(f"\nDone -&gt; {out}")
    return out

if __name__ == "__main__":
    build()
</code></code></pre><p>Run it with:</p><pre><code><code>python3 morning_digest.py
</code></code></pre><p>It drops a dated EPUB into a <code>MorningDigest</code> folder in your home directory.</p><div><hr></div><h3>The secret weapon: serving files over OPDS</h3><p>Here&#8217;s the part that makes it feel like magic instead of a chore.</p><p><strong>OPDS</strong> (Open Publication Distribution System) is basically a bookshelf served over the internet that your e-reader can browse on its own. CrossPoint supports it. Instead of plugging in the device or manually uploading files every day, the reader connects to a little server running on your computer, sees the latest digest, and downloads it &#8212; right from the device.</p><p>This tiny Python server (no extra libraries needed &#8212; it uses only what&#8217;s built into Python) serves that <code>MorningDigest</code> folder as an OPDS catalog:</p><pre><code><code>#!/usr/bin/env python3
"""Tiny OPDS server for a folder of EPUBs.
Serves ~/MorningDigest so an e-reader (CrossPoint/OPDS) can browse and download."""
import os, glob, html, datetime
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
from urllib.parse import quote, unquote

DIGEST_DIR = os.path.expanduser("~/MorningDigest")
PORT = 8800

CATALOG_HEADER = '''&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;feed xmlns="http://www.w3.org/2005/Atom" xmlns:opds="http://opds-spec.org/2010/catalog"&gt;
&lt;id&gt;morning-digest-catalog&lt;/id&gt;
&lt;title&gt;Morning Digest&lt;/title&gt;
&lt;updated&gt;{updated}&lt;/updated&gt;
&lt;author&gt;&lt;name&gt;Morning Digest&lt;/name&gt;&lt;/author&gt;
&lt;link rel="self" href="/" type="application/atom+xml;profile=opds-catalog;kind=acquisition"/&gt;
&lt;link rel="start" href="/" type="application/atom+xml;profile=opds-catalog;kind=acquisition"/&gt;
'''

ENTRY = '''&lt;entry&gt;
&lt;title&gt;{title}&lt;/title&gt;
&lt;id&gt;{eid}&lt;/id&gt;
&lt;updated&gt;{updated}&lt;/updated&gt;
&lt;content type="text"&gt;{title}&lt;/content&gt;
&lt;link rel="http://opds-spec.org/acquisition" href="/files/{fname_q}" type="application/epub+zip"/&gt;
&lt;/entry&gt;
'''

def now_iso():
    return datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")

def build_catalog():
    files = sorted(glob.glob(os.path.join(DIGEST_DIR, "*.epub")), reverse=True)
    parts = [CATALOG_HEADER.format(updated=now_iso())]
    for f in files:
        fname = os.path.basename(f)
        title = fname.replace("Digest_", "Digest ").replace(".epub", "")
        ts = datetime.datetime.fromtimestamp(os.path.getmtime(f),
                                             datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
        parts.append(ENTRY.format(
            title=html.escape(title),
            eid="urn:digest:" + quote(fname),
            updated=ts,
            fname_q=quote(fname),
        ))
    parts.append("&lt;/feed&gt;\n")
    return "".join(parts).encode("utf-8")

class Handler(BaseHTTPRequestHandler):
    def log_message(self, *a): pass
    def do_GET(self):
        path = unquote(self.path.split("?")[0])
        if path in ("/", "/index", "/catalog"):
            body = build_catalog()
            self.send_response(200)
            self.send_header("Content-Type", "application/atom+xml;profile=opds-catalog;kind=acquisition")
            self.send_header("Content-Length", str(len(body)))
            self.end_headers()
            self.wfile.write(body)
        elif path.startswith("/files/"):
            fname = os.path.basename(path[len("/files/"):])
            full = os.path.join(DIGEST_DIR, fname)
            if os.path.isfile(full):
                self.send_response(200)
                self.send_header("Content-Type", "application/epub+zip")
                self.send_header("Content-Length", str(os.path.getsize(full)))
                self.end_headers()
                with open(full, "rb") as fh:
                    self.wfile.write(fh.read())
            else:
                self.send_error(404, "Not found")
        else:
            self.send_error(404, "Not found")

if __name__ == "__main__":
    print(f"Serving OPDS catalog of {DIGEST_DIR} on port {PORT}")
    print(f"On this computer: http://localhost:{PORT}/")
    print(f"From the reader, use:  http://YOUR_COMPUTER_IP:{PORT}/")
    ThreadingHTTPServer(("0.0.0.0", PORT), Handler).serve_forever()
</code></code></pre><p>Start it with:</p><pre><code><code>python3 opds_server.py
</code></code></pre><p>Then on the e-reader, you add a new OPDS server pointing at </p><p>http://YOUR_COMPUTER_IP:8800/</p><p> (find your computer&#8217;s local IP in your network settings). Open the catalog on the device, and the day&#8217;s digest is right there to download. No cables, no fuss.</p><div><hr></div><h3>Making it fully automatic</h3><p>The last touch: I set the digest to <strong>build itself automatically every afternoon</strong>, and set the OPDS server to <strong>run quietly in the background</strong> all the time. On a Mac this is done with <code>launchd</code> (the Mac&#8217;s built-in task scheduler); on Windows you&#8217;d use Task Scheduler; on Linux, cron.</p><p>The principle is the same everywhere: schedule the digest script to run once a day, and keep the little server alive so the reader can always reach it. Once that&#8217;s in place, the whole thing is hands-off &#8212; the news just <em>appears</em>, and I pull it onto the device whenever I want it.</p><p>I picked an afternoon build time on purpose: my computer is reliably on then, so the file is always fresh and waiting by evening or the next morning. No babysitting.</p><div><hr></div><h2>What I love about it</h2><ul><li><p><strong>It&#8217;s genuinely distraction-free.</strong> This is the big one. No notifications, no color, no apps, no temptation. Just words. I read <em>more</em> and read <em>better</em> on it.</p></li><li><p><strong>It&#8217;s open.</strong> I own my files. I can flash it, script it, and load it with anything I want. Try doing that with a Kindle.</p></li><li><p><strong>It&#8217;s tiny and cheap.</strong> $55. Fits in a pocket. If I lost it, I&#8217;d be annoyed, not devastated.</p></li><li><p><strong>The custom news feed is a game-changer for my mornings.</strong> A personalized, ad-free newspaper of only the things I care about is something no commercial product gives me. I built it exactly to my taste.</p></li><li><p><strong>Free books forever.</strong> Between Project Gutenberg and DRM-free stores, I&#8217;ll never run out.</p></li></ul><div><hr></div><h2>What I don&#8217;t love about it</h2><p>I promised honesty, so here it is.</p><ul><li><p><strong>No backlight (no frontlight).</strong> This is the biggest one. You cannot read this in the dark. Coming from a Kindle Paperwhite &#8212; where I read in bed with the lights off every night &#8212; this is a real adjustment. The X4 needs ambient light, like a paper book. Some will see that as a feature (better for sleep!). For me, it&#8217;s a genuine limitation.</p></li><li><p><strong>There are extra steps to get going.</strong> Flashing firmware, finding DRM-free files, converting things in Calibre, building scripts &#8212; I <em>enjoy</em> this, but I&#8217;m aware most people don&#8217;t want a project. A Kindle works out of the box. The X4 rewards effort; it doesn&#8217;t eliminate it.</p></li><li><p><strong>Coming from a Paperwhite, you feel the downgrade in polish.</strong> The hardware is cheaper. The software is simpler. The screen is smaller and unlit. You&#8217;re trading refinement for freedom.</p></li></ul><p>Here&#8217;s the thought I keep coming back to: <strong>if Kindle made a Paperwhite-style version of this</strong> &#8212; the open, scriptable, file-it-yourself freedom of the X4, with the build quality and the glorious front-lit screen of a Paperwhite and in this size &#8212; <em>that</em> would be a game-changer. I&#8217;d buy it in a heartbeat. Right now you have to choose: polish <em>or</em> freedom. I want both.</p><div><hr></div><h2>So&#8230; will I keep it?</h2><p>Honestly? <strong>I don&#8217;t know yet.</strong></p><p>I&#8217;ve only had it a few days. I&#8217;m still in the honeymoon phase where the novelty of having built my own news pipeline is carrying a lot of the enthusiasm. The real test is whether I&#8217;m still reaching for it in a month, or whether it ends up in a drawer next to every other gadget that seemed cool for a week.</p><p>The no-backlight thing nags at me. The extra setup steps mean I can&#8217;t really recommend it to my non-tinkerer friends. And the Paperwhite is <em>right there</em>, lit up, ready, easy.</p><p>But there&#8217;s something about this little black slab that the Kindle can&#8217;t touch: it&#8217;s <em>mine</em>. Completely. No ecosystem, no account required to read my own files, no company deciding what I&#8217;m allowed to put on it. I flashed it, I scripted it, I filled it with exactly what I want and nothing I don&#8217;t.</p><p>And did I mention the size? I mean putting this little tiny reader in your pocket or sticking it to the back of your phone (its MagSafe) or putting it in a fields notebook. I mean the size is just so small and it makes it easy and something you&#8217;d want to carry. And if you&#8217;re carrying it, hopefully you&#8217;re reading.</p><p>I don&#8217;t know. Ask me again in thirty days.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/i-bought-a-55-e-ink-reader-on-prime?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/i-bought-a-55-e-ink-reader-on-prime?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/i-bought-a-55-e-ink-reader-on-prime?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p><div><hr></div><p><em>Have one of these, or thinking about it? I&#8217;d love to hear what you&#8217;d build for it. And if you want the full setup details on any of the code above, drop a comment &#8212; happy to go deeper.</em></p>]]></content:encoded></item><item><title><![CDATA[What's Your Excuse?]]></title><description><![CDATA[Filmmakers, Creatives, Storytellers... WAKE THE F**K UP!]]></description><link>https://michaelcampo.substack.com/p/whats-your-excuse</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/whats-your-excuse</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Wed, 24 Jun 2026 16:37:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AuMD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For sixteen years, I had good reasons.</p><p>Not excuses &#8212; reasons. There&#8217;s a difference, and anyone who&#8217;s tried to make something real knows it in their bones. The story always cost more than the budget allowed. The footage I couldn&#8217;t afford. The edit that needed a crew I couldn&#8217;t pay. The idea that sat in a notebook for two years because turning it into something real meant time and money that a guy with a full-time job and three kids simply did not have lying around.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AuMD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AuMD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!AuMD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!AuMD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!AuMD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AuMD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7418875,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/203428570?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AuMD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!AuMD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!AuMD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!AuMD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9744c624-3ba9-498b-a3f2-e4f3e53d5d1e_2048x2048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I don&#8217;t say that with bitterness. Those reasons were honest. Most people carry a version of them. The screenplay in the drawer, the podcast that never got past episode one, the business idea that lived and died in the Notes app. We tell ourselves we&#8217;ll get to it &#8220;when things slow down&#8221; or &#8220;when we can afford it&#8221; &#8212; and we mean it. We&#8217;re not lazy. We&#8217;re just doing the math, and the math keeps coming back the same way.</p><p>Here&#8217;s what changed.</p><p>The math is different now.</p><p>The tools that used to require a studio, a budget, and a team are sitting in your pocket. The thing that would have cost five thousand dollars and three weekends of favors can be started tonight, on the couch, after the kids are asleep. I&#8217;m not exaggerating to make a point. I&#8217;ve watched it happen in my own work &#8212; ideas that would have stayed in the notebook are now finished pieces, because the wall between &#8220;I have an idea&#8221; and &#8220;I made the thing&#8221; got a lot shorter. I even published my first Novel on Amazon this year! Check out <a href="https://a.co/d/0ihTWmtz"><span data-color="#0000ff" style="color: rgb(0, 0, 255);">THE MASTER PROTOCOL</span></a> if you&#8217;d like.</p><p>And that&#8217;s the uncomfortable part.</p><p>When the barrier was money or access, the reason held. It was true. But when the barrier comes down &#8212; when the gear is free, the distribution is free, the blank page is genuinely waiting on nothing but you &#8212; the reason quietly turns into something else. It becomes the excuse. And the only honest answer to &#8220;why haven&#8217;t I made it yet&#8221; stops being <em>I can&#8217;t</em> and starts being <em>I haven&#8217;t.</em></p><p>I&#8217;m not writing this to shame anyone. I&#8217;ve lived the years where the obstacle was real, and I have nothing but compassion for the person staring at a blank page wondering if their idea is worth the cost. I know that feeling intimately. I&#8217;m writing this because the cost finally changed, and most of us haven&#8217;t updated our story about what&#8217;s possible.</p><p>So I&#8217;ll ask it the way I&#8217;ve had to ask myself:</p><p>What&#8217;s the idea you keep putting off?</p><p>Not the one you&#8217;ll get to someday. The specific one. The one you&#8217;ve described to a friend more than once. The one you can already see finished in your head.</p><p>You have the tools to tell that story now. The blank page isn&#8217;t waiting on a budget anymore.</p><p>It&#8217;s waiting on you.</p><p>Go make it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/whats-your-excuse?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/whats-your-excuse?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[After 16 Years in Premiere, This Is the First AI Tool That Earned a Spot on My Timeline]]></title><description><![CDATA[Why the future of editing isn&#8217;t about replacing the editor &#8212; it&#8217;s about removing the friction between the idea and the cut.]]></description><link>https://michaelcampo.substack.com/p/after-16-years-in-premiere-this-is</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/after-16-years-in-premiere-this-is</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Fri, 12 Jun 2026 14:30:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NrBn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NrBn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NrBn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic 424w, https://substackcdn.com/image/fetch/$s_!NrBn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic 848w, https://substackcdn.com/image/fetch/$s_!NrBn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic 1272w, https://substackcdn.com/image/fetch/$s_!NrBn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NrBn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:84458,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/201499833?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NrBn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic 424w, https://substackcdn.com/image/fetch/$s_!NrBn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic 848w, https://substackcdn.com/image/fetch/$s_!NrBn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic 1272w, https://substackcdn.com/image/fetch/$s_!NrBn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d36427-12b5-4ad6-b60c-98e475045675_1376x768.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve been editing in Adobe Premiere for more than sixteen years.</p><p>Long enough to remember when &#8220;non-linear editing&#8221; still felt like a luxury. Long enough to have cut documentaries that screened at festivals, films that played in theaters, and content that&#8217;s reached audiences in more than two dozen countries. Long enough to know &#8212; in my hands, without thinking about it &#8212; exactly where the time goes in a project.</p><p>And here&#8217;s the thing most people get wrong about that: <strong>the time doesn&#8217;t go into the creative work.</strong></p><p>The creative work is the part I love. The pacing. The rhythm of a cut. Deciding when to hold a shot one extra beat because the emotion needs room to land. That part has never been the bottleneck.</p><p>The bottleneck is everything <em>around</em> it. The friction.</p><h2>The friction tax</h2><p>Every editor pays a friction tax they&#8217;ve stopped noticing.</p><p>You&#8217;re in the zone, building a sequence, and you need a piece of B-roll. So you leave Premiere. You open a browser. You hunt through stock sites. You download, re-import, drop it in, realize it&#8217;s the wrong aspect ratio, and go find another one. By the time you&#8217;re back, the creative momentum you had is gone.</p><p>Then there&#8217;s reframing a finished horizontal edit into vertical for social &#8212; an hour of keyframing pan-and-scan so nobody&#8217;s head gets cut off. Rotoscoping a subject off its background without a green screen. Cleaning up an object that snuck into frame.</p><p>None of that is editing. It&#8217;s plumbing. And for sixteen years, plumbing has quietly eaten a third of every project.</p><h2>What changed</h2><p>A couple of weeks ago, Higgsfield released a suite of AI plugins that live <strong>directly inside the Premiere Pro timeline.</strong> No exports. No tab-switching. No round-tripping to a web app and back.</p><p>I&#8217;ve been actively testing them in my own workflow, and I want to be clear about what&#8217;s actually impressive here &#8212; because it isn&#8217;t the novelty of &#8220;AI in your editor.&#8221; It&#8217;s <em>where</em> the AI sits.</p><p>Three tools have earned their spot so far:</p><p><strong>Reframe.</strong> Auto-crops a horizontal edit to vertical, square, or any common social ratio while keeping the subject centered. The pan-and-scan work that used to take an hour now takes a couple of minutes.</p><p><strong>Remove / Change Background.</strong> Clean subject isolation, no green screen, right on the clip.</p><p><strong>Generate.</strong> I describe a B-roll shot or scene element in plain language and it drops onto the timeline where I need it.</p><p>There are more in the suite &#8212; upscaling footage to 4K/8K on export, and a &#8220;draw to edit&#8221; inpainting tool where you sketch a change directly on a frame. I&#8217;m still putting those through their paces.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>The part that matters</h2><p>Here&#8217;s the takeaway after years of doing this:</p><p><strong>AI doesn&#8217;t replace the editor&#8217;s eye. It removes the friction between the idea and the cut.</strong></p><p>The taste, the pacing, the story instinct &#8212; none of that came from a tool. It came from the reps. From thousands of hours of deciding what works and what doesn&#8217;t, and slowly building judgment you can&#8217;t download. That&#8217;s still the job. That&#8217;s still entirely human.</p><p>What the tool does is collapse the distance between <em>I need this</em> and <em>it&#8217;s on the timeline.</em> It hands me back the third of every project I was losing to plumbing, so I can spend it on the part that actually moves an audience.</p><p>That&#8217;s not a threat to the craft. It&#8217;s a multiplier for the people who already have it.</p><h2>Where I&#8217;m landing</h2><p>I&#8217;m still in the exploration phase. There are real trade-offs to map &#8212; the credit costs can compound on high-volume work, and some tools want a minimum clip length that doesn&#8217;t always fit a tight cut. I&#8217;m not here to sell anyone a tool. I&#8217;m here to think out loud about what it means.</p><p>And what it means, I think, is this: the editors who learn to <em>direct</em> AI inside their existing pipeline are going to out-produce the ones who treat it as either a magic button or an enemy. Not because the AI is smart, but because it frees up the one thing experience can&#8217;t manufacture &#8212; time to think.</p><p>Sixteen years taught me where the time goes. For the first time, I&#8217;ve got a tool that gives some of it back.</p><p>I&#8217;m curious what other editors and filmmakers are seeing. What&#8217;s earning a spot in your workflow &#8212; and what&#8217;s still all hype?</p><div><hr></div><p><em>If you found this useful, subscribe for more on filmmaking, AI in creative work, and building a craft that lasts.</em></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/after-16-years-in-premiere-this-is?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/after-16-years-in-premiere-this-is?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/after-16-years-in-premiere-this-is?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[They’re One Win Away. I’ve Been Waiting 30 Years for This.]]></title><description><![CDATA[Game 4. Knicks 107, Spurs 106. The largest comeback in NBA Finals history. And I watched every impossible second of it next to my son.]]></description><link>https://michaelcampo.substack.com/p/theyre-one-win-away-ive-been-waiting</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/theyre-one-win-away-ive-been-waiting</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Thu, 11 Jun 2026 12:22:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HeHv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;3d0cf0ed-631a-4d1d-84e8-82ed3b1e580a&quot;,&quot;duration&quot;:null}"></div><p>I wrote a few weeks ago about watching the Knicks from a lonely couch in the 90s. About Patrick Ewing and John Starks and all the years of learning to love heartbreak because that was the only way to stay a fan.</p><p>Last night, I sat next to my son and watched the New York Knicks come back from 29 points down to win Game 4 of the NBA Finals by a single point.</p><p>Twenty-nine points. The biggest comeback in the history of the Finals. I&#8217;m still not sure I believe it, and I watched it happen.</p><div><hr></div><p>For a half, it was the old familiar ache. The Spurs led 76-49 at the break. Wembanyama looked unstoppable. The Garden was silent in that specific way I remembered from childhood &#8212; the quiet of a building bracing for disappointment. The kid in me knew that feeling cold. I almost reached over to start managing my son&#8217;s expectations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HeHv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HeHv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic 424w, https://substackcdn.com/image/fetch/$s_!HeHv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic 848w, https://substackcdn.com/image/fetch/$s_!HeHv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic 1272w, https://substackcdn.com/image/fetch/$s_!HeHv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HeHv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic" width="982" height="1228" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1228,&quot;width&quot;:982,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114400,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/201587976?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HeHv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic 424w, https://substackcdn.com/image/fetch/$s_!HeHv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic 848w, https://substackcdn.com/image/fetch/$s_!HeHv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic 1272w, https://substackcdn.com/image/fetch/$s_!HeHv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e28b879-29a3-48be-a079-59fb85fb9c66_982x1228.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Because then the impossible started, one stone at a time.</p><p>Brunson rose up and buried a three straight over Wembanyama&#8217;s outstretched arm with 2:21 left, and the Garden turned into a jet engine. He finished with 36.</p><p>Then the part that still makes my heart stop. Josh Hart picked off a Fox pass, had a clear, uncontested lane to the rim &#8212; and <em>missed the layup</em>. Just smoked it. In the 90s, that&#8217;s the moment. That&#8217;s where the dagger goes in. Hart said afterward he&#8217;d have carried a lifetime of regret if the night had ended there.</p><p>It didn&#8217;t end there. Up one with the game on the line, Fox drove for a layup he never should&#8217;ve taken &#8212; and OG Anunoby met it at the rim and <em>blocked it.</em> Swatted the season into the Knicks&#8217; hands.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>And then, off a missed Brunson three with 1.2 seconds left, Anunoby crashed the glass and tipped it home. Game over. 107-106. OG finished with 33 and a block that&#8217;s going straight into New York basketball legend.</p><p>Miss, block, dagger over Wemby, tip-in. Four heartbeats. A championship lead.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uyRI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uyRI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic 424w, https://substackcdn.com/image/fetch/$s_!uyRI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic 848w, https://substackcdn.com/image/fetch/$s_!uyRI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic 1272w, https://substackcdn.com/image/fetch/$s_!uyRI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uyRI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic" width="1206" height="1075" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1075,&quot;width&quot;:1206,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:122256,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/201587976?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uyRI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic 424w, https://substackcdn.com/image/fetch/$s_!uyRI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic 848w, https://substackcdn.com/image/fetch/$s_!uyRI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic 1272w, https://substackcdn.com/image/fetch/$s_!uyRI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738c9f36-3857-4c36-add5-a2c55bec8ee7_1206x1075.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is the part I keep coming back to. In 1999, we were the miracle &#8212; the eight seed that caught fire and ran out of magic when the legs gave out. That run was beautiful and borrowed.</p><p>This is different. This team <em>earned</em> it. They swept Philly. They swept Cleveland. And last night they pulled off something no Finals team in history had ever done. This isn&#8217;t lightning in a bottle. This is a team that refuses to die.</p><div><hr></div><p>Now here&#8217;s where it gets personal for me.</p><p>Game 5 is Saturday night in San Antonio. The Knicks are one win away from their first championship in 53 years.</p><p>And it falls the day after my surgery. Yay?</p><p>I&#8217;ve written before about the road I&#8217;ve been on with the heart attack &#8212; the recovery, the procedure ahead. I&#8217;ll be coming out of one of the harder days of my year, and the next night my team could win a title I&#8217;ve waited my entire life to see. I don&#8217;t know how I&#8217;ll be feeling Saturday. But I know exactly where I&#8217;ll be: on the couch, healing, and I know who&#8217;ll be sitting there right next to me.</p><p>Thirty years ago I learned to love this team through the ache. Saturday, I get to find out if all that ache was building toward something.</p><p>One win. One night. And I get to experience it not just with my son, but the whole Campo family!!</p><p>Let&#8217;s go, New York.</p><div><hr></div><p><em>Game 5 &#8212; Saturday, in San Antonio. They finish it there, or they bring it home to the Garden. I&#8217;ll be recovering, my son will be beside me, and we&#8217;ll find out how this story ends together.</em></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/theyre-one-win-away-ive-been-waiting?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/theyre-one-win-away-ive-been-waiting?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/theyre-one-win-away-ive-been-waiting?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Heart Keeps Going]]></title><description><![CDATA[Ten months ago, I almost didn't make it.]]></description><link>https://michaelcampo.substack.com/p/the-heart-keeps-going</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/the-heart-keeps-going</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 09 Jun 2026 14:31:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!U0Bz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U0Bz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U0Bz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic 424w, https://substackcdn.com/image/fetch/$s_!U0Bz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic 848w, https://substackcdn.com/image/fetch/$s_!U0Bz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic 1272w, https://substackcdn.com/image/fetch/$s_!U0Bz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U0Bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic" width="1456" height="618" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:618,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:814052,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/201162679?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U0Bz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic 424w, https://substackcdn.com/image/fetch/$s_!U0Bz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic 848w, https://substackcdn.com/image/fetch/$s_!U0Bz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic 1272w, https://substackcdn.com/image/fetch/$s_!U0Bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff733f3ab-4ca0-4a37-9ca6-71803ce53a91_3168x1344.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m not being dramatic. I&#8217;m being literal. A major heart attack dropped me, and for a window of time that I still can&#8217;t fully wrap my head around, the version of me that&#8217;s typing this was not a guarantee. My wife almost lost a husband. My three kids almost lost their dad. And I almost lost everything I&#8217;ve spent my whole life building toward &#8212; not the career, not the awards, not the company. Them. The people in my house, the ones I love.</p><p>I&#8217;m still here. So let me tell you what I&#8217;ve learned on the way back.</p><h2>The slow climb</h2><p>Surviving the event was step one. What nobody fully prepares you for is everything that comes after.</p><p>The rebuild has been three jobs running at once:</p><ul><li><p><strong>Physical</strong> &#8212; relearning what my body can do, and being patient with what it can&#8217;t yet.</p></li><li><p><strong>Emotional</strong> &#8212; sitting with the fear, the gratitude, the survivor&#8217;s strange quiet, and not running from any of it.</p></li><li><p><strong>Mental</strong> &#8212; rewiring how I think about time, work, ambition, and what actually matters when you&#8217;ve stared down the alternative.</p></li></ul><p>Ten months of small wins. A little more stamina. A little more peace. A lot more presence with the people I almost left behind. If you&#8217;ve ever rebuilt anything from the studs up &#8212; a business, a body, a marriage, a faith &#8212; you know it doesn&#8217;t happen in a montage. It happens in a thousand unglamorous Tuesdays.</p><h2>The plot twist</h2><p>Here&#8217;s the part I didn&#8217;t see coming.</p><p>My heart muscle hasn&#8217;t fully returned to &#8220;normal.&#8221; The damage left its mark, and the data is what the data is. So my next chapter is one I never imagined for myself: I&#8217;m getting a defibrillator implanted.</p><p>A few months ago, that sentence would have leveled me. Today, I see it differently.</p><p>That little device isn&#8217;t a sign that I&#8217;m broken. It&#8217;s a guardian. It&#8217;s a second set of hands on the wheel. It&#8217;s technology and faith doing the same job &#8212; standing watch over a life I get to keep living. I&#8217;ve spent my whole career building systems that catch problems before they become disasters. Turns out I&#8217;m about to carry one inside my own chest.</p><p>I can make peace with that. Honestly? I can be grateful for it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>What I actually believe now</h2><p>I&#8217;ve always been a builder. Films, companies, stories, brands. But the thing I&#8217;m building now is simpler and bigger than all of it: a life lived wide awake.</p><p>Here&#8217;s what almost dying taught me that no business book ever could:</p><ul><li><p><strong>Time is the only currency that doesn&#8217;t refund.</strong> I stopped treating it like it does.</p></li><li><p><strong>Faith isn&#8217;t a backup plan.</strong> When the floor drops out, it&#8217;s the thing that was holding you the whole time.</p></li><li><p><strong>The people in your house are the win.</strong> Everything else is just how you provide for the win.</p></li><li><p><strong>A second chance isn&#8217;t a feeling. It&#8217;s a job.</strong> You don&#8217;t get one and coast. You get one and you go.</p></li></ul><h2>To you, reading this</h2><p>Maybe you&#8217;re in your own rebuild right now. Maybe your &#8220;defibrillator&#8221; is a different kind of hard news &#8212; a diagnosis, a setback, a door that closed. I want you to hear this from someone who got the worst kind of wake-up call and is still standing:</p><p>You are not behind. You are not finished. The thing that knocked you down is not the end of your story &#8212; it&#8217;s the reason the rest of it is going to mean so much more.</p><p>My heart isn&#8217;t the same as it was. It&#8217;s scarred, it&#8217;s monitored, and soon it&#8217;ll have a little electronic guardian angel keeping watch.</p><p>But it keeps going.</p><p>And so do I.</p><p>And you will to!</p><p>&#8212; Michael</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/the-heart-keeps-going?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/the-heart-keeps-going?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/the-heart-keeps-going?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[From a Lonely Couch in the 90s to Watching the Knicks Chase a Title With My Son]]></title><description><![CDATA[Go New York!]]></description><link>https://michaelcampo.substack.com/p/from-a-lonely-couch-in-the-90s-to</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/from-a-lonely-couch-in-the-90s-to</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Wed, 03 Jun 2026 12:03:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oIry!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oIry!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oIry!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic 424w, https://substackcdn.com/image/fetch/$s_!oIry!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic 848w, https://substackcdn.com/image/fetch/$s_!oIry!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic 1272w, https://substackcdn.com/image/fetch/$s_!oIry!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oIry!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic" width="1206" height="1491" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1491,&quot;width&quot;:1206,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:342405,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/200308174?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oIry!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic 424w, https://substackcdn.com/image/fetch/$s_!oIry!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic 848w, https://substackcdn.com/image/fetch/$s_!oIry!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic 1272w, https://substackcdn.com/image/fetch/$s_!oIry!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9afbcd-67c6-427e-8b74-958fb4505596_1206x1491.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I grew up a New York Knicks fan the way you grow up with a last name &#8212; not by choosing it, but by inheriting it and learning to carry it. And for a long stretch of my childhood, carrying it meant carrying disappointment.</p><p>I was a kid in New York in the 1990s, parked in front of the television by myself, watching a team that played basketball like a street fight. Patrick Ewing grimacing through double-teams. Charles Oakley throwing his body around like rent was due. John Starks launching shots that either broke your heart or briefly made you believe in God. I watched most of it alone. My friends were Bulls fans, Lakers fans, or worse &#8212; they didn&#8217;t care about basketball at all. So it was just me and the Knicks, and the Knicks kept finding new ways to lose.</p><p>If you were a Knicks fan back then, you know the specific ache. We were always good enough to hope and never good enough to win. We ran into Michael Jordan over and over like a wall that kept getting taller. And in 1994, we got to the Finals and watched Game 7 slip away against Houston. I remember being a kid and feeling something close to grief over a basketball game. That probably tells you everything about how seriously I took it.</p><h2>1999: The Year That Almost Was</h2><p>Then came 1999. The lockout season. The weird, shortened, electric spring when the eighth-seeded Knicks decided the rules of reality no longer applied to them.</p><p>If you lived it, you don&#8217;t need me to recap it. Allan Houston&#8217;s runner against Miami that hung on the rim for a thousand years before dropping. Larry Johnson&#8217;s four-point play against Indiana with the building shaking. Marcus Camby and Latrell Sprewell playing with a chip on their shoulders the size of the Garden itself. The Knicks became the first eight seed in NBA history to reach the Finals.</p><p>And then Ewing got hurt. And then the Spurs &#8212; David Robinson and a young Tim Duncan &#8212; were simply better. We lost in five. But for a few weeks that spring, the whole city believed, and I believed with it, still mostly alone on my couch, a teenager who had finally seen his team get close enough to touch it.</p><p>That was twenty-six years ago. I was a kid then. I&#8217;m a father now.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>Tampa, 2019, and a Knicks Fan in Exile</h2><p>I moved my family to Tampa in 2019. I love it here &#8212; the weather, the pace, the life we&#8217;ve built. But there&#8217;s a particular loneliness to being a New York sports fan in Florida. Nobody around you carries the same scars. You bring up Starks or Ewing and you get a polite nod. You&#8217;re an exile, keeping a flame lit for a city a thousand miles north.</p><p>What I didn&#8217;t expect was that my son would catch it. Not because I forced it on him &#8212; you can&#8217;t force this stuff, it doesn&#8217;t take &#8212; but because he sat next to me one night while a game was on, asked a few questions, and somewhere along the way it got into his blood the same way it got into mine.</p><p>The difference is staggering when I sit with it. I watched the 90s alone, suffering. He&#8217;s watching the Knicks next to his dad, <em>winning</em>.</p><h2>The Knicks Are Actually Good Again &#8212; and It&#8217;s Surreal</h2><p>Here&#8217;s the part that still doesn&#8217;t feel real. This Knicks team is 53-29. They are a genuine contender. Not a cute story, not a plucky underdog &#8212; a team that opponents are afraid of. I spent the bulk of my life conditioned to expect heartbreak from this franchise, and now I&#8217;m watching them play like the building belongs to them again.</p><p>When I tell my son about 1999, I can see him doing the math. To him, a good Knicks team is normal. To me, it&#8217;s a small miracle every single night. He doesn&#8217;t carry the scar tissue. He just gets to enjoy it. And honestly? Good. That&#8217;s the whole point of doing the suffering &#8212; so the next kid doesn&#8217;t have to.</p><h2>What&#8217;s the Same, and What&#8217;s Different</h2><p>The similarities to 1999 are everywhere, and they&#8217;re not subtle. The Garden is loud again in that specific way &#8212; that <em>desperate, hungry</em> way that only happens when New York thinks something real is on the table. The defense has teeth. The team plays with the kind of edge that made me fall in love with them in the first place. There&#8217;s a toughness to this group that any 90s Knicks fan recognizes instantly. It rhymes.</p><p>But the differences are what give me hope. The 1999 run was a beautiful accident &#8212; an eight seed catching fire, riding emotion and a few impossible shots all the way to a place they had no business reaching. It was lightning in a bottle, and it ran out. This team isn&#8217;t an accident. They&#8217;re built. They have depth, structure, and a roster that doesn&#8217;t need a miracle to win a series. In 1999 we were hanging on. In 2026 we&#8217;re the ones people are hanging on against.</p><p>In other words: 1999 was the dream. This might be the plan.</p><h2>Why I&#8217;m Writing This Down</h2><p>I&#8217;m writing this because I want to remember the moment before we know how it ends. Maybe this is the year. Maybe it isn&#8217;t. Maybe my son gets to grow up with a championship banner I never had, or maybe he learns the same lesson I did &#8212; that loving a team means loving the ache too.</p><p>Either way, I already won something the 90s never gave me. I&#8217;m not on that couch alone anymore. There&#8217;s a kid next to me who loves this team because his dad loves this team, and we get to find out how the story ends together.</p><p>To every Knicks fan out there, the lifers and the exiles and the new converts &#8212; this is our year to feel it again. I waited my whole life to watch this team matter in June. Now I get to watch it with my son.</p><p>Let&#8217;s go, New York.</p><div><hr></div><p><em>Are you a Knicks fan who lived through the 90s, or did you catch the fever recently? Drop a comment and tell me where you were in 1999.</em></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/from-a-lonely-couch-in-the-90s-to?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/from-a-lonely-couch-in-the-90s-to?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/from-a-lonely-couch-in-the-90s-to?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[I Replaced My Marketing Team With AI Agents — Here’s Exactly How]]></title><description><![CDATA[What are AI Agents and How do they work?]]></description><link>https://michaelcampo.substack.com/p/i-replaced-my-marketing-team-with</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/i-replaced-my-marketing-team-with</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 02 Jun 2026 14:31:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Vrf9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b395118-2d0e-43ac-9546-d5e402781941_584x380.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>By Michael Campo</em></p><div><hr></div><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b395118-2d0e-43ac-9546-d5e402781941_584x380.png&quot;}],&quot;caption&quot;:&quot;Campo Command Center&quot;,&quot;alt&quot;:&quot;Claude, AI, Agents, Skills&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b395118-2d0e-43ac-9546-d5e402781941_584x380.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>I run two creative businesses on the side of my full-time job. I have three kids. I play competitive pickleball. I published a novel this year. And I manage content across six different brands.</p><p>I don&#8217;t have a team. I have Claude. </p><p>Not as a chatbot I ask questions to. As a system of AI agents that actually <em>do the work</em> &#8212; finding leads, drafting outreach, planning social content, generating visuals, and reporting back to me for approval. I call it the Campo Command Center, and it changed how I think about what a solo operator can actually accomplish.</p><p>And I am learning as fast as I can!!!</p><p>Let me break down what I learned, how it works, and why I think this is the most important shift happening in small business right now.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>What an AI Agent Actually Is (No Hype)</h2><p>Forget everything you&#8217;ve read about AI &#8220;agents&#8221; that sounds like science fiction. Here&#8217;s the simple version:</p><p>A chatbot answers questions. An agent does jobs.</p><p>You give an agent three things: a role, a set of tools it can access, and a task. It figures out the steps, executes them, checks its own work, and keeps going until the job is done. You review and approve before anything goes live.</p><p>Think of it like hiring a contractor. You don&#8217;t tell a plumber which wrench to use &#8212; you say &#8220;fix the leak.&#8221; Agents work the same way. You describe the outcome you want, and the agent figures out the path.</p><h2>How Multiple Agents Work Together</h2><p>This is where it gets powerful. A single agent can handle one job. But when you connect multiple agents under a lead agent, you get something that resembles an actual team.</p><p>I think about it like a film set &#8212; because that&#8217;s my world. A director doesn&#8217;t operate the camera, edit the footage, and mix the sound. The director coordinates specialists. That&#8217;s exactly how multi-agent systems work. A lead agent breaks a big task into pieces and delegates each piece to a specialist agent with its own expertise and tools.</p><p>For my photography business, that looks like this: a Scout agent finds prospects and scores them. A Writer agent takes the top leads and drafts personalized outreach &#8212; email, LinkedIn message, Instagram DM, and a follow-up sequence. Each agent has its own instructions, its own access to the tools it needs, and its own output format. I review the final package, tweak what needs tweaking, and send.</p><p>The entire pipeline runs in minutes. Doing it manually used to take me a full evening.</p><h2>What I Actually Built</h2><p>I started with one agent &#8212; a lead generation pipeline for my photography business, Michael Salvatore Photography. It searches for local businesses with weak visual presence (stock photos on their website, no professional headshots, inactive social media), scores them on urgency, and drafts outreach messages.</p><p>That worked so well that I built a second system: a social media agent that plans content across all six of my brands &#8212; my personal brand, my photography business, my film production company, my podcast, my pickleball brand, and my novel. It researches what&#8217;s trending in each niche, then generates a full week of daily posts with captions, hashtags, and visual direction. Fourteen posts a day. Ninety-eight a week. All organized by brand so I can review one at a time.</p><p>I even added a content recycling engine &#8212; when a post performs well, the system automatically queues it for reformatting 30 to 60 days later. A carousel that crushed it on Instagram becomes a TikTok talking-head video. A popular LinkedIn post gets broken into three standalone follow-ups. Nothing good dies after one impression.</p><p>The whole system &#8212; lead gen, social content, visual generation, competitor monitoring &#8212; runs under what I call the Campo Command Center. It&#8217;s modular. Every agent is its own file. I can add new agents whenever a new need comes up, or remove ones that aren&#8217;t pulling their weight.</p><h2>The Business Model Nobody&#8217;s Talking About</h2><p>Here&#8217;s what I realized about halfway through building this: if I can run these agents for my own businesses, I can run them for other people&#8217;s businesses and charge for it.</p><p>A restaurant owner in Tampa doesn&#8217;t need to understand AI agents. They need someone to handle their marketing. So instead of pitching &#8220;AI-powered content,&#8221; I pitch a monthly retainer: weekly social content with professional-grade visuals, lead generation for catering prospects, and a monthly content calendar. Behind the scenes, it&#8217;s the same agent system I built for myself &#8212; customized with their brand voice, their industry, their audience.</p><p>My cost to deliver? My existing subscriptions and a couple hours a week reviewing output. Their perception? I have a team.</p><p>That&#8217;s a productized service. Build once, sell repeatedly, customize per client. It scales without scaling my hours.</p><h2>What I&#8217;d Tell You If You&#8217;re Starting From Zero</h2><p>You don&#8217;t need to code. I&#8217;m a filmmaker, not an engineer. The agents I built are described in plain English &#8212; markdown files that tell Claude what role to play, what tools to use, and what output to produce.</p><p>Start with the problem that&#8217;s eating your time. For me, it was prospecting. I hated doing it, so I never did it, which meant my pipeline was always empty. That pain point became my first agent. Once it worked, I had the confidence and the pattern to build the next one.</p><p>Don&#8217;t try to automate everything at once. Build one agent. Use it for two weeks. Learn what you&#8217;d change. Then build the next one. The progression is: learn the tools, build systems, then automate. Skip a step and you&#8217;ll build something fragile.</p><p>And the most important thing: an agent is only as good as the instructions you give it. Vague instructions produce vague output. When I told my social media agent to &#8220;write engaging content,&#8221; I got generic motivational quotes. When I told it my exact voice for each brand, gave it content pillars, and specified caption length per platform &#8212; suddenly the output sounded like me. Specificity is everything.</p><h2>This Isn&#8217;t Coming. It&#8217;s Here.</h2><p>I&#8217;m not speculating about what AI agents could do someday. I&#8217;m telling you what they&#8217;re doing for me right now, today, while I work a full-time job and raise a family. The barrier to entry has never been lower, and the gap between people who build these systems and people who don&#8217;t is going to widen fast.</p><p>If you&#8217;re a freelancer, a small business owner, or anyone running a side venture with limited hours &#8212; this is your unfair advantage. Not AI as a novelty. AI as infrastructure.</p><p>The Campo Command Center started as an experiment. Now it&#8217;s how I run everything.</p><div><hr></div><p><em>Michael Campo is a filmmaker, photographer, and author based in Tampa, FL. He&#8217;s the founder of Arkos Creative and Michael Salvatore Photography, and the author of The Master Protocol, available on Amazon. Connect with him on <a href="https://linkedin.com/in/mcampo1/">LinkedIn</a> or read more on his <a href="https://substack.com/@michaelcampo">Substack</a>.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/i-replaced-my-marketing-team-with?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/i-replaced-my-marketing-team-with?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Portraits That Feel Like Paintings]]></title><description><![CDATA[I like taking photos here in Tampa Florida.]]></description><link>https://michaelcampo.substack.com/p/the-portraits-that-feel-like-paintings</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/the-portraits-that-feel-like-paintings</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Thu, 28 May 2026 02:03:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9RbL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every once in a while, I get an idea I can&#8217;t shake.</p><p>Not because a client asked for it.<br>Not because it&#8217;s trending.<br>Not because it&#8217;ll perform well on social media.</p><p>Just because creatively&#8230; it pulls at me.</p><p>Recently, I wanted to experiment with something that sat somewhere between modern portrait photography and classical oil paintings. Not a gimmick. Not an AI filter. But a real portrait &#8212; crafted with lighting, texture, color, mood, and expression in a way that feels timeless.</p><p>The challenge was simple:</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>How do you create an image that feels current while also looking like it could hang framed on a wall for decades?</p><p>That&#8217;s what led to this portrait session.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9RbL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9RbL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic 424w, https://substackcdn.com/image/fetch/$s_!9RbL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic 848w, https://substackcdn.com/image/fetch/$s_!9RbL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic 1272w, https://substackcdn.com/image/fetch/$s_!9RbL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9RbL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic" width="1456" height="1950" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1950,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:336776,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/199545230?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9RbL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic 424w, https://substackcdn.com/image/fetch/$s_!9RbL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic 848w, https://substackcdn.com/image/fetch/$s_!9RbL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic 1272w, https://substackcdn.com/image/fetch/$s_!9RbL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c4286f-c2fe-410b-a361-2b6fd4d27785_1792x2400.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What I love about this style is that it slows everything down. In a world where most photos are taken, posted, and forgotten within seconds, these kinds of portraits feel intentional. They feel personal. They make you stop and look a little longer.</p><p>For me, photography has never been about just &#8220;taking pictures.&#8221; Anyone can point a camera at someone.</p><p>What matters is creating a feeling.</p><p>Sometimes that feeling is cinematic.<br>Sometimes it&#8217;s raw and emotional.<br>Sometimes it&#8217;s polished and commercial.</p><p>And sometimes it feels like art you&#8217;d expect to see painted by hand.</p><p>That&#8217;s the direction I&#8217;ve been exploring more lately with Michael Salvatore Photography &#8212; creating portraits that blend storytelling, modern photography, and painterly aesthetics into something unique to the person in front of the camera.</p><p>The best portraits aren&#8217;t always the perfect ones.</p><p>They&#8217;re the ones that feel like <em>you</em>.</p><p>The lighting. The wardrobe. The expression. The mood. All of it matters. Every detail contributes to the story the image tells.</p><p>And honestly, these are the kinds of creative projects that remind me why I started doing this in the first place.</p><p>Not for the algorithms.<br>Not for the trends.<br>But for the art of creating something meaningful.</p><p>If you&#8217;ve ever wanted portraits that feel a little more cinematic, artistic, or timeless than the standard headshot or social media photo, I&#8217;d love to create something together.</p><p>Visit <a href="http://www.Michaelsalvatorepix.com">Michael Salvatore Photography </a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/the-portraits-that-feel-like-paintings?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/the-portraits-that-feel-like-paintings?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Shot That Reminded Me Why I Love Photography]]></title><description><![CDATA["One more" shot.]]></description><link>https://michaelcampo.substack.com/p/the-shot-that-reminded-me-why-i-love</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/the-shot-that-reminded-me-why-i-love</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 19 May 2026 23:03:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jt4r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There are certain photos you take as a photographer that stay with you.<br>Not because they were the most planned out.<br>Not because they were taken with the most expensive gear.<br>But because everything came together in a way you couldn&#8217;t have fully scripted.</p><p>Over the years, I&#8217;ve taken thousands of photos professionally. Different clients, different locations, different lighting situations, different stories. But I can honestly say this image is still one of my favorites.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jt4r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jt4r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic 424w, https://substackcdn.com/image/fetch/$s_!Jt4r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic 848w, https://substackcdn.com/image/fetch/$s_!Jt4r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic 1272w, https://substackcdn.com/image/fetch/$s_!Jt4r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jt4r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:205767,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/197393287?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jt4r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic 424w, https://substackcdn.com/image/fetch/$s_!Jt4r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic 848w, https://substackcdn.com/image/fetch/$s_!Jt4r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic 1272w, https://substackcdn.com/image/fetch/$s_!Jt4r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefc66e8-0553-40e0-a3ce-175a31f344f4_1376x768.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This was taken during a lifestyle shoot at Fred Howard Park in Tarpon Springs. We had already captured most of the shots my client originally wanted, and the sun was beginning to dip lower toward the horizon. The session could have easily ended there.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>But as photographers know, sometimes the best moments happen after the &#8220;planned&#8221; shoot is technically over.</p><p>I asked if she&#8217;d be willing to try a few more poses before we wrapped up. Her husband jumped in to help by holding my off-camera flash, the clouds started building in just the right way, and suddenly everything aligned &#8212; the light, the mood, the movement, the atmosphere.</p><p>And then&#8230; this happened.</p><p>What I love most about photography is that it freezes a moment that will never exist again in exactly the same way. The sky will never look identical. The waves won&#8217;t hit the shore the same way. The light won&#8217;t break through the clouds at that exact second again.</p><p>Photography, to me, has never just been about taking pictures. It&#8217;s about noticing moments. Feeling timing. Chasing emotion, atmosphere, and story all at once.</p><p>This image reminds me why I fell in love with photography in the first place.</p><p>Not every favorite photo comes from a massive production. Sometimes it comes from staying five minutes longer, trying one more idea, and being ready when the moment shows up.</p><p>If you enjoy photography, storytelling, cinematic imagery, or behind-the-scenes moments like this, I&#8217;d love for you to follow my photography journey.</p><p><a href="http://www.MichaelSalvatorePIX.com">www.MichaelSalvatorePIX.com</a></p><p>@MichaelSalvatorePIX on most Social Platforms</p><p>#Photography #PortraitPhotography #LifestylePhotography #FloridaPhotographer #SunsetPhotography #OffCameraFlash #CreativePhotography #PhotographerLife #TarponSprings #FredHowardPark #VisualStorytelling</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[I Just Published a Book. AI Was My Editor, Designer, and Publishing Consultant.]]></title><description><![CDATA[I am a self published author]]></description><link>https://michaelcampo.substack.com/p/i-just-published-a-book-ai-was-my</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/i-just-published-a-book-ai-was-my</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 12 May 2026 12:26:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SN1v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Fourteen years ago, I set out to write <em><a href="https://a.co/d/046v8CHl">The Master Protocol</a></em><a href="https://a.co/d/046v8CHl">.</a> I had the ideas, the framework, the drive, and over 150 pages written. What I didn&#8217;t have was a team &#8212; no editor, no cover designer, no publishing consultant. So I built one, using a variety of AI tools.</p><p>I want to share how that process worked, because I think it changes the game for anyone sitting on a book idea right now.</p><p><strong>The Writing Was Mine. The Polish Was AI.</strong></p><p>Let me be clear: AI didn&#8217;t write my book. The concepts, the structure, the voice &#8212; that&#8217;s all me. But once the raw material was down, I used AI as a grammar and editing partner. I&#8217;d feed in chapters and ask it to flag awkward phrasing, inconsistencies, passive voice, and readability issues. It caught things I&#8217;d been staring at for too long to see. The kind of stuff you&#8217;d normally pay a developmental editor and a copy editor separately to handle? I got both passes in a fraction of the time.</p><p>Was it perfect? No. I still had to make judgment calls. AI doesn&#8217;t know your voice the way you do. But it dramatically shortened the editing cycle and raised the floor on quality.</p><p><strong>The Cover Was AI-Generated</strong></p><p>This one surprises people. I used AI image generation tools to create the cover for <em>The Master Protocol</em>. I iterated on concepts, styles, and compositions until I landed on something that looked professional and matched the tone of the book. No graphic designer. No stock photo subscriptions. No back-and-forth revision rounds over email.</p><p>If you&#8217;re self-publishing and cover design has been a barrier &#8212; financially or logistically &#8212; that barrier is gone.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SN1v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SN1v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic 424w, https://substackcdn.com/image/fetch/$s_!SN1v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic 848w, https://substackcdn.com/image/fetch/$s_!SN1v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic 1272w, https://substackcdn.com/image/fetch/$s_!SN1v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SN1v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic" width="848" height="1264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1264,&quot;width&quot;:848,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:141035,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/196560919?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SN1v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic 424w, https://substackcdn.com/image/fetch/$s_!SN1v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic 848w, https://substackcdn.com/image/fetch/$s_!SN1v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic 1272w, https://substackcdn.com/image/fetch/$s_!SN1v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5441bf13-ceb8-4833-8331-822ab46017ae_848x1264.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>I Turned Claude Into a KDP Expert</strong></p><p>This was probably the most valuable piece. I took Claude and essentially made it my Amazon KDP publishing consultant. I asked it to walk me through the entire Kindle Direct Publishing process: formatting requirements, category selection strategy, keyword optimization, pricing models, enrollment decisions like KDP Select, and distribution options.</p><p>Instead of spending hours reading forum threads and conflicting blog posts, I had a single conversation that gave me a clear, actionable publishing plan. When I had follow-up questions about royalty structures or expanded distribution, I just asked. It was like having a consultant on retainer who actually knew the platform inside and out.</p><p><strong>I Created a Book Trailer</strong></p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;fbe845bc-b6f9-4661-b839-6692684cb4ce&quot;,&quot;duration&quot;:null}"></div><p><strong>What This Means for Anyone With a Book Inside Them</strong></p><p>The traditional barriers to publishing &#8212; editing costs, design costs, publishing knowledge &#8212; have collapsed. Not lowered. Collapsed.</p><p>You still need the ideas. You still need the discipline to sit down and write. AI doesn&#8217;t replace that, and I&#8217;d be skeptical of anyone who tells you it does. But everything that used to sit between a finished manuscript and a published book? AI handles it credibly now.</p><p>If you&#8217;ve been waiting for the right time, the right budget, or the right team to publish your book &#8212; you already have what you need.</p><p><em>The Master Protocol</em> is available now. And the process of bringing it to life taught me almost as much as writing it did.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Beginner's Guide to CLAUDE Code.]]></title><description><![CDATA[Everything you need to know, No Coding Required]]></description><link>https://michaelcampo.substack.com/p/the-beginners-guide-to-claude-code</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/the-beginners-guide-to-claude-code</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Thu, 07 May 2026 14:43:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b90ee2ab-08ed-4bdc-841d-79c861035dd4_1200x675.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Created: May 2026</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UolU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UolU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UolU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UolU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UolU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UolU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:25812,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/196787014?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6618ea-e77f-4776-9c76-d72c7d065b36_1200x675.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UolU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UolU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UolU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UolU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56e37145-dfe5-45b5-a935-f3fa0bcd52ec.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p></p><p><strong>1. What Is Claude Code?</strong></p><p><strong>Claude Code is a tool built by Anthropic that lets you give instructions to your computer using plain English. Unlike regular chatbots where you type a question and get a text answer, Claude Code actually does things on your machine. It can read your files, create documents, search through folders, build websites, and automate repetitive tasks.</strong></p><p><strong>Think of the difference this way: a regular AI chatbot is like texting a smart friend for advice. Claude Code is like hiring a digital assistant who sits at your computer and does the work for you &#8212; with your permission for every action it takes.</strong></p><p><strong>What Can It Actually Do?</strong></p><p><strong>Here are real examples of things Claude Code can handle, even if you have zero coding experience:</strong></p><ul><li><p>Read documents on your computer and summarize them</p></li><li><p>Organize hundreds of messy files into neat folders</p></li><li><p>Build a simple website or web app from a description you give it</p></li><li><p>Create presentations, spreadsheets, or reports</p></li><li><p>Clean up and format data in CSV files</p></li><li><p>Connect to external tools like Google Drive, Slack, or social media</p></li><li><p>Build games, calculators, and interactive tools</p></li><li><p>Automate social media posting and content creation</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>&#9989;<strong> Key Insight</strong></p><p>Claude Code is NOT just for programmers. It is a general-purpose productivity tool that happens to work through a text interface. If you can describe what you want done, Claude Code can likely do it.</p><p><strong>2. Where to Use Claude Code</strong></p><p><strong>There are two main ways to access Claude Code, plus a third option coming soon:</strong></p><p><strong>Option A: Claude Desktop App (Easiest for Beginners)</strong></p><p><strong>Download the Claude desktop app from claude.com/download. Once installed, you can open Claude Code directly from within the app. This is the simplest way to get started &#8212; no extra software needed.</strong></p><p><strong>Option B: VS Code Extension (Recommended)</strong></p><p><strong>Visual Studio Code (VS Code) is a free code editor from Microsoft. Even though it is called a code editor, you do not need to write code to use it. Think of it as a workspace where Claude Code lives. Install VS Code, then add the official Claude Code extension from the sidebar. This gives you a clean interface to interact with Claude Code.</strong></p><p><strong>Option C: Terminal (Advanced)</strong></p><p><strong>If you are comfortable with a command line, you can type &#8220;claude&#8221; directly in your terminal after installing it with npm. This offers the most features but has a steeper learning curve. For beginners, stick with Option A or B.</strong></p><p>&#9888;&#65039;<strong> Installation Note</strong></p><p>Claude Code requires Node.js version 18 or higher installed on your computer. If you are using the desktop app, this is handled for you. For VS Code or terminal use, you may need to install Node.js first from nodejs.org.</p><p><strong>3. Subscriptions and Cost</strong></p><p><strong>Claude Code is available on several subscription tiers. Here is a simplified breakdown of what matters for beginners:</strong></p><p><strong>Plan</strong></p><p><strong>Price/Month</strong></p><p><strong>What You Get</strong></p><p>Pro</p><p>$20</p><p>Access to Claude Code with moderate usage limits. Good for getting started and learning.</p><p>Max (5x)</p><p>$100</p><p>5x more usage than Pro. Good for regular use and building projects.</p><p>Max (20x)</p><p>$200</p><p>20x more usage than Pro. Best for heavy daily use and complex projects.</p><p>&#9989;<strong> Cost Tip</strong></p><p>Start with the Pro plan ($20/month) while you are learning. You can always upgrade later if you hit usage limits. Most beginners will not need more than Pro for their first few weeks.</p><p><strong>4. Key Concepts You Need to Understand</strong></p><p><strong>Before you start building, there are a handful of concepts that will make everything click. These are explained in plain language below.</strong></p><p><strong>4a. The Context Window (Claude&#8217;s Memory)</strong></p><p><strong>Think of Claude&#8217;s memory as a whiteboard. Everything you say, every file it reads, and every response it gives goes on the whiteboard. The whiteboard is large (around 200,000 tokens, which is roughly the length of a long novel) but it is not infinite.</strong></p><p><strong>When the whiteboard fills up, older information gets compressed &#8212; like taking a photo of the whiteboard before erasing part of it. This is why Claude sometimes seems to forget what you said earlier in a long conversation.</strong></p><p><strong>What this means for you: Keep your conversations focused. When you finish one task and start another, begin a new session so Claude has a clean whiteboard. Long, rambling conversations fill the whiteboard fast and reduce quality.</strong></p><p><strong>4b. Plan Mode vs. Auto Mode</strong></p><p><strong>Claude Code has different modes that control how much freedom Claude has:</strong></p><p><strong>Plan Mode: Claude thinks through the problem first and shows you its plan before doing anything. You review the plan and approve it before Claude takes action. This is the safest and best mode for beginners.</strong></p><p><strong>Auto-Edit Mode: Claude makes changes without asking for approval on each step. Use this only after you have reviewed and approved a plan. It lets Claude move fast once you have agreed on the approach.</strong></p><p>&#9989;<strong> Beginner Strategy</strong></p><p>Spend most of your time in Plan Mode. Read what Claude proposes, discuss changes, and only switch to Auto-Edit once you are happy with the plan. This is how experienced users work too &#8212; about 90% planning, 10% executing.</p><p><strong>4c. CLAUDE.md (Your Project Memory File)</strong></p><p><strong>CLAUDE.md is a special file that Claude reads every time it starts a new session in your project. Think of it as a set of standing instructions &#8212; your preferences, your project details, your rules.</strong></p><p><strong>For example, your CLAUDE.md might say things like: what the project is about, what tools to use, your preferred writing style, what files are important, or any rules Claude should follow. Without this file, you would need to re-explain everything at the start of each conversation.</strong></p><p><strong>Where it lives: Create a file called CLAUDE.md in the root folder of your project. Claude picks it up automatically.</strong></p><p><strong>4d. Model Selection</strong></p><p><strong>Claude Code can use different AI models. The two main ones you need to know:</strong></p><p><strong>Opus 4.6: The most powerful and capable model. Best for complex tasks, planning, building skills, and anything that requires deep reasoning. Use this for important work.</strong></p><p><strong>Sonnet 4.6: Faster and cheaper but slightly less capable. Good for simple, routine tasks like formatting files or making small edits.</strong></p><p><strong>As a beginner, use Opus for everything until you develop a feel for which tasks are simple enough for Sonnet.</strong></p><p><strong>4e. Permissions (Staying Safe)</strong></p><p><strong>Claude Code asks for your permission before it runs commands on your computer. Every time it wants to do something &#8212; read a file, create a folder, run a script &#8212; it tells you what it wants to do and waits for you to say yes.</strong></p><p><strong>This is a safety feature. You are always in control. You can review every action before it happens. Over time, you can pre-approve safe commands (like listing files or reading documents) so Claude does not ask every time. But it will always ask before doing anything potentially risky like deleting files or installing software.</strong></p><p><strong>5. How to Talk to Claude Code (Prompting)</strong></p><p><strong>The quality of your results depends heavily on how you communicate with Claude Code. Here are the most important rules:</strong></p><p><strong>5a. Be Specific, Not Vague</strong></p><p><strong>Bad (Vague)</strong></p><p><strong>Good (Specific)</strong></p><p>&#8220;Make the code better&#8221;</p><p>&#8220;Refactor the login function to handle failed attempts and retry up to 3 times&#8221;</p><p>&#8220;Build me a website&#8221;</p><p>&#8220;Build a single-page portfolio website with my name, a bio section, and links to my social profiles&#8221;</p><p>&#8220;Fix this file&#8221;</p><p>&#8220;The header on row 5 is misspelled. Change &#8216;Reveune&#8217; to &#8216;Revenue&#8217;&#8221;</p><p><strong>5b. Use the &#8220;Ask Until Confident&#8221; Pattern</strong></p><p><strong>One of the most powerful techniques is to end your prompt with: &#8220;Ask me clarifying questions, one at a time, until you are 95% confident you can complete the task successfully.&#8221;</strong></p><p><strong>This lets Claude interview you to fill in the gaps. You do not need to have everything figured out in advance. Let Claude ask the right questions and you simply answer them. The result will be much better than trying to write the perfect prompt on your first try.</strong></p><p><strong>5c. Start Small, Then Iterate</strong></p><p><strong>Never try to build everything at once. Start with the simplest possible version, verify it works, then add features one at a time. For example, if you want a social media manager that posts to four platforms, start by posting to one platform first. Get that working. Then expand.</strong></p><p>&#9989;<strong> The Iterate Mindset</strong></p><p>Building with Claude Code is a conversation, not a single command. Expect to go back and forth. Ask for changes. Try things. Adjust. This is normal and how all experts work with it.</p><p><strong>6. Your First Project: Step-by-Step</strong></p><p><strong>Both tutorials walk through real projects. Here is a simplified version of the workflow you should follow for any project, based on what was demonstrated:</strong></p><ol><li><p>Create a folder on your computer for your project. Open that folder in VS Code or the Claude desktop app.</p></li><li><p>Start Claude Code and tell it what you want to build. Be specific. Use the &#8220;ask me clarifying questions&#8221; pattern.</p></li><li><p>Review the plan. Claude will outline what it intends to do. Read it carefully. Suggest changes if needed.</p></li><li><p>Let Claude execute. Once you approve the plan, switch to Auto-Edit mode and let Claude build.</p></li><li><p>Test the result. Try using what Claude built. Does it work? Does it look right? Note any issues.</p></li><li><p>Iterate. Tell Claude what to fix or improve. Repeat steps 3&#8211;5 until you are happy.</p></li><li><p>Save your work. Connect to GitHub (a free service for storing your projects) so you never lose your files.</p></li></ol><p><strong>7. Skills: Building Reusable Workflows</strong></p><p><strong>A skill is a custom command you create for Claude Code. Once built, you type a slash command (like /post or /weekly-recap) and Claude follows the instructions you defined. Skills persist across sessions &#8212; build them once, use them forever.</strong></p><p><strong>How Skills Work</strong></p><p><strong>Skills live in your project as a folder with a SKILL.md file inside it. The folder name becomes the command. For example, a folder called &#8220;post&#8221; inside .claude/skills/ becomes the /post command.</strong></p><p><strong>You do not need to create these files manually. Just tell Claude to create a skill and describe what you want it to do. Claude builds everything for you.</strong></p><p><strong>Starter Skill Ideas for Beginners</strong></p><ul><li><p>/weekly-recap &#8212; Reads all files modified in the last 7 days and drafts a summary email</p></li><li><p>/fact-check &#8212; Reads your content and searches the web for supporting sources</p></li><li><p>/organize &#8212; Scans a folder of messy files, renames them logically, and sorts into subfolders</p></li><li><p>/meeting-notes &#8212; Takes raw meeting notes and formats them into action items and key decisions</p></li></ul><p>&#9989;<strong> Skill Improvement Tip</strong></p><p>If a skill produces output that is not quite right, tell Claude exactly what was wrong and ask it to update the skill itself. Over time, your skills get better and more tailored to your needs.</p><p><strong>8. MCPs: Connecting Claude to External Tools</strong></p><p><strong>MCP stands for Model Context Protocol. In simple terms, MCPs are plugins that let Claude Code talk to external services like Google Drive, Slack, GitHub, social media platforms, and many more.</strong></p><p><strong>Without MCPs, Claude can only work with files on your computer. With MCPs, Claude can read your emails, post to social media, manage your calendar, search the web, and interact with dozens of other services.</strong></p><p><strong>How to Add an MCP</strong></p><p><strong>The easiest way is to tell Claude Code what service you want to connect. For example, say: &#8220;Connect to Google Drive using MCP&#8221; or &#8220;Set up an MCP for Slack.&#8221; Claude will walk you through the setup, which usually involves installing a small package and adding an API key.</strong></p><p><strong>Popular MCPs for Beginners</strong></p><ul><li><p>Web search &#8212; Lets Claude search the internet for current information</p></li><li><p>Google Drive &#8212; Read, create, and organize files in your Drive</p></li><li><p>Slack &#8212; Send messages and read channels</p></li><li><p>GitHub &#8212; Manage code repositories and deploy projects</p></li><li><p>Social media platforms &#8212; Post content directly from Claude Code</p></li></ul><p><strong>9. Hooks: Automatic Quality Checks</strong></p><p><strong>Hooks are automatic actions that run at specific points in Claude&#8217;s workflow. Think of them as quality gates &#8212; checkpoints that ensure the output meets your standards before it goes anywhere.</strong></p><p><strong>For example, you can create a hook that automatically checks every social media post before it publishes, ensuring it matches your brand voice and does not contain common AI-sounding phrases. If the post fails the check, Claude revises it before continuing.</strong></p><p>&#9989;<strong> Hook Example</strong></p><p>A quality gate hook for content might check: Does the post avoid em dashes? Is it under the character limit? Does it match the brand voice samples? Does it include a visual? If any check fails, Claude rewrites until it passes.</p><p><strong>10. Sharing Your Projects with the World</strong></p><p><strong>Once you build something you are proud of, you may want to put it on the internet so others can see it. Both tutorials cover this process:</strong></p><p><strong>GitHub: Saving Your Project</strong></p><p><strong>GitHub is a free service that stores your project files online. Think of it as a cloud backup for your work. Claude Code can connect to GitHub and push your files there with a few simple commands. Create a free account at github.com.</strong></p><p><strong>Vercel: Putting It on the Web</strong></p><p><strong>Vercel is a free service that takes your project and makes it available as a real website with a URL you can share. Claude Code can deploy to Vercel directly. Create a free account at vercel.com, connect it to your GitHub, and Claude can handle the rest.</strong></p><p><strong>11. Essential Commands Quick Reference</strong></p><p><strong>Command / Action</strong></p><p><strong>What It Does</strong></p><p>/status</p><p>Shows how full your context window is and what model you are using</p><p>/compact</p><p>Compresses your conversation history to free up context space</p><p>/model</p><p>Switch between Opus and Sonnet models</p><p>Shift+Tab (x2)</p><p>Toggle Plan Mode on or off</p><p>/clear</p><p>Starts a fresh conversation with a clean context window</p><p>/skill-name</p><p>Runs any custom skill you have created</p><p>Ctrl+C or Esc</p><p>Stops Claude mid-action if something seems wrong</p><p><strong>12. Common Beginner Mistakes to Avoid</strong></p><ol><li><p>Writing one giant prompt instead of having a conversation. Start simple and iterate.</p></li><li><p>Running in Auto-Edit mode from the start. Always plan first, then execute.</p></li><li><p>Never clearing the context. Start fresh sessions for new tasks.</p></li><li><p>Ignoring the permission prompts. Read what Claude wants to do before approving.</p></li><li><p>Trying to build everything in one session. Break projects into small, testable pieces.</p></li><li><p>Not creating a CLAUDE.md file. This is the single biggest productivity boost for repeat projects.</p></li><li><p>Being too vague with instructions. Specific prompts produce dramatically better results.</p></li></ol><p><strong>13. Your Roadmap: Beginner to Expert</strong></p><p><strong>Here is a practical path to follow as you grow with Claude Code:</strong></p><p><strong>Week 1&#8211;2: Foundations</strong></p><ul><li><p>Install Claude Code and explore the interface</p></li><li><p>Ask Claude simple questions: &#8220;What can you do?&#8221; and &#8220;What files are in this folder?&#8221;</p></li><li><p>Build your first small project (a simple webpage, a file organizer, a text formatter)</p></li><li><p>Practice the plan-then-execute workflow</p></li></ul><p><strong>Week 3&#8211;4: Building Confidence</strong></p><ul><li><p>Create your first CLAUDE.md file with project instructions</p></li><li><p>Build your first skill (start with /weekly-recap or /organize)</p></li><li><p>Learn to use /compact when conversations get long</p></li><li><p>Try connecting one MCP (web search is a great first choice)</p></li></ul><p><strong>Month 2&#8211;3: Intermediate</strong></p><ul><li><p>Build more complex projects with multiple steps</p></li><li><p>Create skills that connect to external services via MCPs</p></li><li><p>Add hooks for automatic quality checks</p></li><li><p>Push projects to GitHub and deploy to Vercel</p></li><li><p>Experiment with parallel sessions for multi-part tasks</p></li></ul><p><strong>Month 4+: Advanced</strong></p><ul><li><p>Build complete automation workflows (like the AI social media manager from the tutorials)</p></li><li><p>Use subagents to run multiple tasks in parallel</p></li><li><p>Create sophisticated skill chains where one skill triggers another</p></li><li><p>Contribute your own skills and plugins to the community</p></li><li><p>Teach others what you have learned</p></li></ul><p><strong>14. Resources and Next Steps</strong></p><p><strong>Video Sources for This Guide</strong></p><ul><li><p>&#8220;The Ultimate Non-Technical Guide to Claude Code&#8221; by Futurepedia (youtube.com/watch?v=bqJzIWAEn40)</p></li><li><p>&#8220;Claude Code Tutorial for Beginners&#8221; by Sabrina Ramonov (youtu.be/3HVH2Iuplqo)</p></li></ul><p><strong>Official Documentation</strong></p><ul><li><p>Claude Code Docs: docs.claude.com/en/docs/claude-code/overview</p></li><li><p>Claude Desktop App Download: claude.com/download</p></li><li><p>Sabrina Ramonov written companion guide: sabrina.dev/p/claude-code-full-course-for-beginners</p></li></ul><p><strong>Free Tools You Will Need</strong></p><ul><li><p>VS Code (code editor): code.visualstudio.com</p></li><li><p>GitHub (project storage): github.com</p></li><li><p>Vercel (web deployment): vercel.com</p></li><li><p>Node.js (required for installation): nodejs.org</p></li></ul><p><strong>You have everything you need to get started.</strong></p><p>Open Claude Code, describe what you want to build, and start the conversation.</p><p><em>The best way to learn is to build. Start today.</em></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/the-beginners-guide-to-claude-code?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/the-beginners-guide-to-claude-code?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/the-beginners-guide-to-claude-code?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Master Protocol - PROLOGUE]]></title><description><![CDATA[Author reads the prologue from self published book now available on Amazon.]]></description><link>https://michaelcampo.substack.com/p/the-master-protocol-prologue</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/the-master-protocol-prologue</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 05 May 2026 16:13:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0PX2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb41da79e-a121-4eda-b258-cf89d14078b6_1344x1344.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;881ee9cc-7c45-4b9b-a876-0cd4d57a89a4&quot;,&quot;duration&quot;:null}"></div><p>The Master Protocol is now available - on AMAZON &#8212;&#8212;&gt;  <a href="https://a.co/d/0aA3ezX9">BOOK</a></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AI-Generated Video Is Here — And It’s More Convincing Than You Think]]></title><description><![CDATA[Scroll through your feed right now and I guarantee you can&#8217;t tell what&#8217;s real anymore.]]></description><link>https://michaelcampo.substack.com/p/ai-generated-video-is-here-and-its</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/ai-generated-video-is-here-and-its</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 28 Apr 2026 21:39:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0PX2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb41da79e-a121-4eda-b258-cf89d14078b6_1344x1344.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Scroll through your feed right now and I guarantee you can&#8217;t tell what&#8217;s real anymore.</p><p>Ninjas throwing kicks in a Japanese courtyard. A boxing match in a packed arena. A pickleball rally with the crowd going wild. They all look cinematic. They all look produced. And none of them required a camera crew, a location scout, or a six-figure production budget.</p><p>That&#8217;s the state of AI video in 2026.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;f0f7dc92-737f-496d-9ddd-d636e48ab126&quot;,&quot;duration&quot;:null}"></div><p>As a content creator, this is the conversation I keep coming back to: AI-generated video isn&#8217;t some far-off future tech &#8212; it&#8217;s already being woven into the content we consume every single day. The clips look polished. The motion is fluid. The environments feel lived-in. We&#8217;ve crossed the uncanny valley, and most people scrolling on their phones don&#8217;t even notice.</p><p>Here&#8217;s what this means for creators and marketers:</p><p><strong>The barrier to &#8220;cinematic&#8221; just collapsed.</strong> You no longer need a film crew to produce visually stunning content. A single creator with the right AI tools can generate B-roll, action sequences, and atmospheric footage that would have cost thousands just two years ago.</p><p><strong>Storytelling still wins.</strong> The tools are powerful, but they&#8217;re still just tools. The creators who thrive won&#8217;t be the ones generating the most clips &#8212; they&#8217;ll be the ones with the best ideas, the sharpest hooks, and the most compelling narratives wrapped around that footage.</p><p><strong>Authenticity becomes your differentiator.</strong> When anyone can generate movie-quality visuals, the thing that can&#8217;t be faked is <em>you</em> &#8212; your voice, your perspective, your face on camera being real. The combination of authentic personality with AI-enhanced production is where the magic lives.</p><p>We&#8217;re at an inflection point. The creators who learn to blend AI tools with their authentic voice are going to build something the purely AI-generated accounts never can: trust.</p><p>The question isn&#8217;t whether AI video is good enough. It already is. The question is: what are you going to <em>do</em> with it?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Fourteen Years. One Decision. Here We Go.]]></title><description><![CDATA[The Master Protocol - A Psychological Conspiracy Thriller]]></description><link>https://michaelcampo.substack.com/p/fourteen-years-one-decision-here</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/fourteen-years-one-decision-here</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Mon, 27 Apr 2026 14:26:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eSkv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eSkv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eSkv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic 424w, https://substackcdn.com/image/fetch/$s_!eSkv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic 848w, https://substackcdn.com/image/fetch/$s_!eSkv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic 1272w, https://substackcdn.com/image/fetch/$s_!eSkv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eSkv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic" width="848" height="1264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1264,&quot;width&quot;:848,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:141035,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/195249053?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eSkv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic 424w, https://substackcdn.com/image/fetch/$s_!eSkv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic 848w, https://substackcdn.com/image/fetch/$s_!eSkv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic 1272w, https://substackcdn.com/image/fetch/$s_!eSkv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e6bbf9-013e-47c3-b2ad-051f4fd37e4c_848x1264.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I started writing this book in my thirties.</p><p>I&#8217;m not in my thirties anymore.</p><p>For fourteen years, <em>The Master Protocol</em> lived in folders, hard drives, and the back of my mind at 2am when I couldn&#8217;t sleep. It got rewritten. Shelved. Reopened. Rewritten again. There were stretches of months &#8212; maybe years honestly &#8212; where I told myself it wasn&#8217;t ready. That I wasn&#8217;t ready.</p><p>The truth is, I was waiting for a version of confidence that was never going to arrive on its own.</p><p>So a few months ago after my heart attack, I made a decision: finish it, polish it until it&#8217;s something I&#8217;m genuinely proud of, and put it out into the world. Not because I stopped being nervous. But because fourteen years is long enough.</p><div><hr></div><p><strong>The book is called </strong><em><strong>The Master Protocol: A Psychological Conspiracy Thriller.</strong></em></p><p>It&#8217;s the story of Edward Avdel &#8212; a man who believes he&#8217;s built his own life from scratch. His career, his relationships, the city he calls home. Then a document surfaces. And he begins to realize that every choice he thought he made freely was already decided &#8212; before he was born.</p><p>It&#8217;s starts in the 1980s in New York. It&#8217;s about identity, control, and the specific kind of dread that comes from realizing the people you trusted most were operating on a completely different set of instructions than you were.</p><p>And underneath all of it, it&#8217;s about whether love can survive the discovery that nothing about your life was accidental.</p><div><hr></div><p>I&#8217;m proud of it. That part is true and I want to say it plainly, because I think writers don&#8217;t say it enough.</p><p>I&#8217;m also nervous in a way I didn&#8217;t fully anticipate. Putting something out that you&#8217;ve carried privately for fourteen years is a strange feeling. It&#8217;s not just a book anymore &#8212; it&#8217;s proof that I actually did it.</p><p>Is it good enough? Is it great? I hope the market will answer that question. Either way I am grateful!</p><p>If you&#8217;re a fan of psychological thrillers &#8212; Flynn, le Carr&#233;, slow-burn conspiracies where the danger lives in conversations rather than car chases &#8212; I think you&#8217;ll find something here that stays with you.</p><p>It&#8217;s available now on Amazon Kindle.</p><p>I&#8217;d love for you to read it. And if you do, an honest review means more than I can tell you &#8212; it&#8217;s everything for a first-time author trying to find his readers.</p><p>Here&#8217;s the link:<a href="https://a.co/d/0388J6KU">AMAZON</a> </p><p>Thank you for being here. Fourteen years in the making. Let&#8217;s see what happens next.</p><p>&#8212; Michael</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[iChoose - Gear used for creating the Pilot]]></title><description><![CDATA[Film Gear Post - What we used to film the iChoose Series pilot #iChooseHope]]></description><link>https://michaelcampo.substack.com/p/ichoose-gear-used-for-creating-the</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/ichoose-gear-used-for-creating-the</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 21 Apr 2026 18:25:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0PX2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb41da79e-a121-4eda-b258-cf89d14078b6_1344x1344.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;252cff55-bc16-43a6-ae96-eeb3b7a0a538&quot;,&quot;duration&quot;:null}"></div><p>So people are always asking me about the gear we used when filming the pilot <a href="https://youtu.be/wxCr-MLfHYk">iChooseHope</a> which is available for FREE on YouTube if you haven&#8217;t had a chance to check it out yet.</p><p>The gear is just a tool people. And the tools in the right hands def make a difference but just cause you own a stove, it doesn&#8217;t make you a chef LOL.</p><p>You get it.</p><p>For the pilot I was shooting on a Sony A7SII with some Rokinon lenses and the guy supporting me (his name is Ryan and he&#8217;s a brilliant filmmaker out on Long Island) brought his Black magic camera, lights and a mic. </p><p>Now that&#8217;s out of the way.</p><p>It always comes down to intention and story.</p><p>If your intentions are pure and you have a good story then does the gear really matter?</p><p>Yes and no.</p><p>To an extent if you gave a child an ARRI and a true artist an iPhone to tel their story where would you place your bets?</p><p>I&#8217;m a STORY driven filmmaker so for me #iChoose Story over gear every day of the week.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Hopeless Individuals]]></title><description><![CDATA[A piece from #iChooseHope that made me stop in my tracks]]></description><link>https://michaelcampo.substack.com/p/hopeless-individuals</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/hopeless-individuals</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Thu, 16 Apr 2026 19:20:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0PX2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb41da79e-a121-4eda-b258-cf89d14078b6_1344x1344.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;34b15a21-ee12-4f8b-8cdf-80b1e9ca9e1a&quot;,&quot;duration&quot;:null}"></div><p>I&#8217;ve worked as a content creator, and specialized in documentary filmmaking for over 15 years. I have interviewed so many people from so many different avenues of life. From CEO&#8217;s of large corporations, to over 100 kids who last a parent in the 911 terror attacks on the World Trade Center. </p><p>And each interview affects you in some way or another. </p><p>My interview with Eddie from March in 2018 was one that made me take my headphones off, and it was something he said here that really stopped me in my tracks.</p><p>You can check out the entire short film for FREE via Youtube. </p><p>The name of the film is <a href="https://youtu.be/wxCr-MLfHYk?si=tJzO16YE1PznjYhi">#iChooseHope</a>.</p><p>Tell a friend.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/hopeless-individuals?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/p/hopeless-individuals?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://michaelcampo.substack.com/p/hopeless-individuals?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[He chose sobriety every morning. I made a film about it. Here's what happened next.]]></title><description><![CDATA[Introducing #iChooseHope &#8212; the pilot episode of the iChoose Series, and the story of what this project is really trying to become.]]></description><link>https://michaelcampo.substack.com/p/he-chose-sobriety-every-morning-i</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/he-chose-sobriety-every-morning-i</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 14 Apr 2026 16:02:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KJP5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There&#8217;s a moment in every documentary interview where the subject stops performing.</p><p>It doesn&#8217;t happen at the beginning. At the beginning they&#8217;re self-conscious &#8212; aware of the camera, aware of how they&#8217;re coming across, aware that their story is being recorded and will outlive the conversation. They answer questions like they&#8217;re rehearsing. They choose words carefully. They give you the version of themselves they&#8217;ve already made peace with.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>And then something shifts.</p><p>A question lands differently than they expected. Or they say something and hear it out loud for the first time. Or they look past the lens for just a second and forget it&#8217;s there.</p><p>That&#8217;s the moment I wait for. Every time.</p><p>With Eddie, it happened about eleven minutes into the interview.</p><p>He was talking about his son. About the morning routine. About how he makes the coffee and stands at the window and thinks about using &#8212; and then doesn&#8217;t. He said he doesn&#8217;t think of himself as someone who conquered addiction. He thinks of himself as someone who chooses, every single morning, not to.</p><p>&#8220;Not once,&#8221; he said. &#8220;Every day.&#8221;</p><p>I put down my notes. I didn&#8217;t pick them up again for the rest of the interview.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KJP5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KJP5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!KJP5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!KJP5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!KJP5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KJP5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic" width="768" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:768,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85544,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/193364022?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KJP5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!KJP5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!KJP5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!KJP5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2806c599-4b17-4eda-a0cb-14dd6cb343b8_768x1024.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Why I made this film</h2><p>I&#8217;ve been a documentary filmmaker for sixteen years.</p><p>My credits include The Human Experience &#8212; an internationally screened documentary that went to 25+ countries and earned 30 film festival honors, including a Grand Jury Award. I wrote A Brave Heart: The Lizzie Velasquez Story, which won Audience Choice at SXSW in 2015. I&#8217;ve spent my career making films about people whose lives contain something worth witnessing.</p><p>A few years ago, I moved from New York to Tampa. I&#8217;ve since taken a corporate job for the stability which has been a true answer to my prayers. I was good at it. I am still good at it. But the part of me that knows how to sit across from a stranger and pull out the story they&#8217;ve never told anyone &#8212; that part doesn&#8217;t go quiet just because your life gets sensible.</p><p>iChoose started as a question: what if I made a series of short documentary films &#8212; 8 to 10 minutes each &#8212; about real people who made one choice that changed everything? Not celebrities. Not people with publicists. Real people. The kind who live on your street and carry something remarkable in them that nobody has ever pointed a camera at.</p><p>What if I could take the craft I&#8217;d spent sixteen years developing and put it in service of stories that needed to be told &#8212; and distribute them for free, directly to the people who need them most?</p><p>Eddie was the first person I called.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dy78!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dy78!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic 424w, https://substackcdn.com/image/fetch/$s_!Dy78!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic 848w, https://substackcdn.com/image/fetch/$s_!Dy78!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic 1272w, https://substackcdn.com/image/fetch/$s_!Dy78!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dy78!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic" width="1024" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140424,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/193364022?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Dy78!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic 424w, https://substackcdn.com/image/fetch/$s_!Dy78!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic 848w, https://substackcdn.com/image/fetch/$s_!Dy78!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic 1272w, https://substackcdn.com/image/fetch/$s_!Dy78!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c763da-a5a5-4750-a54a-e9117400b798_1024x768.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The film</h2><p><strong>#iChooseHope</strong> is the pilot episode of the iChoose Series.</p><p>It&#8217;s the story of a man who struggled with heroin addiction, went to prison, came home, got clean, built a business, married the woman he loves, became a father, and starts each day making the same choice he made yesterday.</p><p>It&#8217;s about 8 minutes long.</p><p>It was shot on a small crew in a single day with no paid distribution, no marketing budget, and no promotion strategy beyond posting it to the iChoose Facebook page and hoping.</p><p>It reached 30,000 people organically. It was shared over 600 times. It was selected as an Official Selection at the Justice Film Festival. A certified addiction counselor who had spent years working with people in recovery watched it and called it the best short film on the recovery process she had ever seen.</p><p>I am not telling you this to impress you. I am telling you this because those numbers came from a film that cost almost nothing to distribute &#8212; and it reached the people it needed to reach anyway. Because when a story is true enough, it finds its way.</p><p><strong>Watch it here:</strong> </p><div id="youtube2-wxCr-MLfHYk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;wxCr-MLfHYk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/wxCr-MLfHYk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>What iChoose is trying to become</h2><p>The pilot is proof of concept. But the vision is larger.</p><p>The iChoose Series is planned as twelve short documentary films &#8212; each one following a different person, a different adversity, a different choice. Each film ends with a hashtag that becomes the story&#8217;s identity: #iChooseHope. #iChooseUs. #iChooseHealth. #iChooseFreedom.</p><p>The goal is to build something that sits at the intersection of documentary filmmaking, community, and positive human transformation. Not a motivational brand. Not a wellness account. Something with more weight than that &#8212; cinematic, real, and built on the belief that the most powerful thing one person can do for another is say: <em>I see what you went through. And I see what you chose. And I want the world to see it too.</em></p><p>We&#8217;re developing brand partnerships to fund the series. We&#8217;re building a community around the #iChoose hashtag where real people share their own moments of choice. We&#8217;re developing merchandise, a membership, and eventually live events &#8212; the iChoose Experience &#8212; where this community can gather in person around the stories that moved them.</p><p>It&#8217;s a media company built around one idea: you are the lead in your life story.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1JdB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1JdB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic 424w, https://substackcdn.com/image/fetch/$s_!1JdB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic 848w, https://substackcdn.com/image/fetch/$s_!1JdB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic 1272w, https://substackcdn.com/image/fetch/$s_!1JdB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1JdB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic" width="886" height="886" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:886,&quot;width&quot;:886,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:111258,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/193364022?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1JdB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic 424w, https://substackcdn.com/image/fetch/$s_!1JdB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic 848w, https://substackcdn.com/image/fetch/$s_!1JdB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic 1272w, https://substackcdn.com/image/fetch/$s_!1JdB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9353085b-d424-449d-bb95-95b390a3c2a4_886x886.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What&#8217;s coming next</h2><p>The film I&#8217;m most excited to make is called <strong>#iChooseForgiveness</strong>.</p><p>I&#8217;ve been sitting with this concept for a long time. It will follow someone who survived something that left a mark &#8212; abuse, betrayal, abandonment, profound loss &#8212; and eventually made the choice to forgive. Not the performative kind of forgiveness. Not the kind that pretends nothing happened. The kind that is made slowly, privately, and entirely for yourself.</p><p>Forgiveness as a choice is one of the most radical, counterintuitive, and life-altering things a human being can do. And almost nobody talks about what it actually looks like from the inside.</p><p>I want to make that film.</p><p>If you know someone whose story of forgiveness deserves to be told &#8212; or if that story is yours &#8212; I&#8217;d like to hear from you.</p><h2>Watch the pilot</h2><p>Eight minutes. Free. No algorithm needed.</p><p>Watch Eddie choose. and SHARE with someone who needs a little hope!</p><div id="youtube2-wxCr-MLfHYk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;wxCr-MLfHYk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/wxCr-MLfHYk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Then tell me: what are you choosing today?</p><p>Use #iChoose wherever you share it. That hashtag belongs to everyone who&#8217;s ever had to make a hard choice and made it anyway.</p><div><hr></div><p><em>Michael Campo is a documentary filmmaker, writer, and director based in Tampa, Florida. He is the creator of the iChoose Series and the founder of Arkos Creative. His previous work includes A Brave Heart: The Lizzie Velasquez Story (SXSW Audience Choice Award, 2015) and The Human Experience (30+ film festival honors, screened in 25+ countries).</em></p><p><em>To follow the iChoose Series: Instagram &#183; Facebook &#183; TikTok @iChooseSeries</em> <em>To inquire about sponsorship or story submissions: <a href="mailto:michael.campo@me.com">michael.campo@me.com</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The iChoose Series]]></title><description><![CDATA[A series of short doc-style films that promote human transformation through the power of choice.]]></description><link>https://michaelcampo.substack.com/p/the-ichoose-series</link><guid isPermaLink="false">https://michaelcampo.substack.com/p/the-ichoose-series</guid><dc:creator><![CDATA[Michael Campo]]></dc:creator><pubDate>Tue, 07 Apr 2026 16:37:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!e6E8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>iChoose: The Power of One Decision</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e6E8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e6E8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic 424w, https://substackcdn.com/image/fetch/$s_!e6E8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic 848w, https://substackcdn.com/image/fetch/$s_!e6E8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic 1272w, https://substackcdn.com/image/fetch/$s_!e6E8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e6E8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic" width="1080" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51040,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/192750429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e6E8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic 424w, https://substackcdn.com/image/fetch/$s_!e6E8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic 848w, https://substackcdn.com/image/fetch/$s_!e6E8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic 1272w, https://substackcdn.com/image/fetch/$s_!e6E8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ed9ef5-ec14-404f-acc4-0e3cdd0ee764_1080x1080.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>There&#8217;s a moment in every person&#8217;s life&#8212;sometimes quiet, sometimes explosive&#8212;where everything changes.</p><p>Not because of luck.<br>Not because of circumstance.<br>But because of a choice.</p><p>That&#8217;s what <em>iChoose</em> is about.</p><p>And after years of development, real stories, and proof of impact&#8212;I&#8217;m bringing it back to life.</p><div><hr></div><h2>Why iChoose Exists</h2><p>At its core, <strong>iChoose</strong> is a documentary series built on a simple but powerful truth:</p><blockquote><p>You are always one choice away from changing your life forever.</p></blockquote><p>We live in a world that often tells people they&#8217;re stuck&#8212;defined by their past, their pain, or their current situation. iChoose exists to challenge that narrative.</p><p>This series is about transformation. Real transformation. The kind that happens when someone decides&#8212;sometimes against all odds&#8212;to choose something different.</p><ul><li><p>To choose hope over addiction</p></li><li><p>To choose forgiveness over resentment</p></li><li><p>To choose courage over fear</p></li><li><p>To choose themselves when no one else will</p></li></ul><div><hr></div><h2>The Vision</h2><p>The iChoose Series is a collection of<strong> short, cinematic documentary films</strong>, each 5&#8211;10 minutes long, designed for today&#8217;s platforms&#8212;Instagram, Facebook, YouTube, TikTok.</p><p>Each film captures a raw, human story behind a life-changing decision.</p><p>The goal is simple, but ambitious:</p><ul><li><p>Remind people that even in their darkest moments, they&#8217;re one choice away from transformation</p></li><li><p>Promote healthier thinking and positive decision-making</p></li><li><p>Build a global movement through storytelling and user participation (#iChoose)</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3xzR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3xzR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic 424w, https://substackcdn.com/image/fetch/$s_!3xzR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic 848w, https://substackcdn.com/image/fetch/$s_!3xzR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic 1272w, https://substackcdn.com/image/fetch/$s_!3xzR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3xzR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic" width="1080" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234807,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelcampo.substack.com/i/192750429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3xzR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic 424w, https://substackcdn.com/image/fetch/$s_!3xzR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic 848w, https://substackcdn.com/image/fetch/$s_!3xzR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic 1272w, https://substackcdn.com/image/fetch/$s_!3xzR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29c855e7-fbbb-4596-82d6-089343cd4e08_1080x1080.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>Proof That It Works</h2><p>This isn&#8217;t just an idea&#8212;it&#8217;s already working.</p><ul><li><p>The pilot episode, <strong>iChoose Hope</strong>, has reached <strong>30,000+ views</strong> and <strong>600+ shares</strong></p></li><li><p>The project has already built an audience of <strong>1.7K+ followers</strong></p></li><li><p>The iChoose podcast has produced <strong>30 episodes with 1.9K downloads</strong></p></li><li><p>The film was an <strong>Official Selection at the Justice Film Festival (2018)</strong></p></li><li><p>It was also featured in <em>SCENES Media</em></p></li></ul><p>More importantly, it&#8217;s sparked real conversations:</p><ul><li><p>Mental health</p></li><li><p>Addiction recovery</p></li><li><p>Shame and identity</p></li><li><p>Abuse and healing</p></li></ul><p>This is content that doesn&#8217;t just get watched&#8212;it gets felt.</p><div><hr></div><h2>The Stories We Tell</h2><p>Every iChoose film ends with a declaration. A decision.</p><p>One of our first stories follows a man who battled addiction, went to prison, rebuilt his life, and now faces the same choice every single day:</p><blockquote><p>To use&#8212;or not to use.</p></blockquote><p>His answer:<br><strong>#iChooseHope</strong></p><p>Other stories in development include:</p><ul><li><p>A man choosing forgiveness after being abandoned by his father (<strong>#iChooseForgiveness</strong>)</p></li><li><p>A mother choosing to leave a toxic relationship to protect her children (<strong>#iChooseUs</strong>)</p></li></ul><p>These aren&#8217;t perfect people.<br>They&#8217;re real people.</p><p>And that&#8217;s why it connects.</p><div><hr></div><h2>Where We&#8217;re Going</h2><p>We&#8217;re now developing a full season&#8212; with goal being <strong>12 films released monthly</strong> across 2026&#8211;2027.</p><p>The vision is to combine:</p><ul><li><p>Everyday individuals with powerful stories</p></li><li><p>Influential voices (athletes, creators, public figures)</p></li><li><p>Strategic brand partnerships that align with the message</p></li></ul><p>Because this isn&#8217;t just a series&#8212;it&#8217;s a movement.</p><p>A movement built on a hashtag people can actually live:</p><p><strong>#iChoose</strong></p><div><hr></div><h2>Why This Matters Right Now</h2><p>We&#8217;re living in a time where people are overwhelmed, distracted, and often disconnected from purpose.</p><p>What cuts through that noise isn&#8217;t more content&#8212;it&#8217;s <em>honest</em> content.</p><p>Stories that remind people:</p><ul><li><p>They&#8217;re not alone</p></li><li><p>Change is possible</p></li><li><p>Their next decision matters</p></li></ul><p>That&#8217;s what iChoose delivers.</p><p>Every episode is designed to leave the viewer with one thought:</p><blockquote><p>&#8220;Maybe I can choose differently too.&#8221;</p></blockquote><div><hr></div><h2>An Invitation to Founding Partners</h2><p>To bring this to life at the level it deserves, we&#8217;re currently looking for <strong>founding partners</strong>.</p><p>Brands, organizations, and individuals who believe in the power of storytelling&#8212;not just to entertain, but to transform.</p><p>This could look like:</p><ul><li><p>Funding individual episodes or the full season</p></li><li><p>Providing locations or logistical support</p></li><li><p>Aligning your brand with a message of growth, resilience, and human potential</p></li></ul><p>The integration is organic, intentional, and story-first.</p><p>The return isn&#8217;t just visibility&#8212;it&#8217;s <em>meaningful connection</em>.</p><div><hr></div><h2>Let&#8217;s Build This Together</h2><p>I&#8217;ve spent over 16 years telling stories across film, television, and branded content.</p><p>But projects like this are different.</p><p>They&#8217;re not just creative&#8212;they&#8217;re personal.</p><p>Because at the end of the day, this isn&#8217;t about a series.</p><p>It&#8217;s about people.</p><p>It&#8217;s about that moment&#8230; where someone decides:</p><blockquote><p>&#8220;This is not how my story ends.&#8221;</p></blockquote><div><hr></div><p>If this resonates with you&#8212;whether as a viewer, collaborator, or potential partner&#8212;I&#8217;d love for you to be part of it.</p><p>Follow the journey: <strong>@iChooseSeries</strong><br>(Instagram &amp; Facebook)</p><p>And if you believe in what we&#8217;re building, reach out.</p><p>Because the truth is&#8212;</p><p>We&#8217;re all just one choice away.</p><p><strong>#iChoose</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://michaelcampo.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Michael's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>