<?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:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Brandon Corbin]]></title><description><![CDATA[Chasing focus, creativity, and success as a solo entrepreneur. Powered by ADHD. ]]></description><link>https://brandons.app/</link><image><url>https://brandons.app/favicon.png</url><title>Brandon Corbin</title><link>https://brandons.app/</link></image><generator>Ghost 5.100</generator><lastBuildDate>Fri, 20 Mar 2026 17:29:59 GMT</lastBuildDate><atom:link href="https://brandons.app/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[I hate self hosting blogs, like this one.]]></title><description><![CDATA[<p>I get super excited each time I launch a new blog platform. Like this one using Ghost. Then I get bored, rarely update it, and then ultiately let it die on the vine. </p><p>I really need to come up with a solution that will use Amazon s3 and that&apos;</p>]]></description><link>https://brandons.app/i-hate-self-hosting-blogs-like-this-one/</link><guid isPermaLink="false">68d2fb9df9799700014f6fda</guid><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Tue, 23 Sep 2025 20:00:42 GMT</pubDate><media:content url="https://brandons.app/content/images/2025/09/ChatGPT-Image-Sep-23--2025--04_04_29-PM.png" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2025/09/ChatGPT-Image-Sep-23--2025--04_04_29-PM.png" alt="I hate self hosting blogs, like this one."><p>I get super excited each time I launch a new blog platform. Like this one using Ghost. Then I get bored, rarely update it, and then ultiately let it die on the vine. </p><p>I really need to come up with a solution that will use Amazon s3 and that&apos;s it. I&apos;ve have websites that are hosted on S3 for the last 14 years, no updates, no deployes, nothing fancy, just websites that last. <br><br>This platform (ghost) needs a dedicated server and a database to deliver this pointless content, all of which costs money and needs continual baby sitting. I&apos;m tired of baby sitting self hosted shit. So now I need a better alternative. <br><br>What should I do?! </p>]]></content:encoded></item><item><title><![CDATA[Tabs Still Open: Unleash Coding Autonomy & Organic AI Memory]]></title><description><![CDATA[This week's 'Tabs Still Open' is a wild ride through cutting-edge tech. Delve into the Damn Vulnerable MCP Server's security risks, uncover the autonomous coding power of Apex-CodeGenesis for VS Code, and explore Neuroca's organic memory for AI agents. Plus, power up your Mac workflow with AI-enhanc]]></description><link>https://brandons.app/tabs-still-open-unleash-coding-autonomy-organic-ai-memory/</link><guid isPermaLink="false">6802881b1fa8f70001ea0696</guid><category><![CDATA[Tabs Still Open]]></category><category><![CDATA[Link Roundup]]></category><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Fri, 18 Apr 2025 17:14:07 GMT</pubDate><media:content url="https://brandons.app/content/images/2025/03/Tabs-Still-Open-Artwork-Mar-28-2025.webp" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2025/03/Tabs-Still-Open-Artwork-Mar-28-2025.webp" alt="Tabs Still Open: Unleash Coding Autonomy &amp; Organic AI Memory"><p>This week&apos;s &apos;Tabs Still Open&apos; is a wild ride through cutting-edge tech. Delve into the Damn Vulnerable MCP Server&apos;s security risks, uncover the autonomous coding power of Apex-CodeGenesis for VS Code, and explore Neuroca&apos;s organic memory for AI agents. Plus, power up your Mac workflow with AI-enhanced apps that&apos;ll turbocharge your productivity. If you crave innovation, security insights, or efficiency boosts, this roundup is your jam.</p>
<h2 id="damn-vulnerable-mcp-server-dive-into-model-context-protocol-risks"><a href="https://github.com/harishsg993010/damn-vulnerable-MCP-server?ref=brandons.app">Damn Vulnerable MCP Server: Dive into Model Context Protocol Risks</a></h2>
<p>Explore the deliberately vulnerable Damn Vulnerable MCP Server, showcasing 10 challenges revealing security vulnerabilities in Model Context Protocol (MCP) implementations. Learn about MCP&apos;s structured context provision for Large Language Models (LLMs) and the recommended CLINE MCP client. Dive into security risks like prompt injection and more.</p>
<p><em>Tags: Vulnerable, MCP, Server, Model Context Protocol, Security Risks, CLINE</em></p>
<hr>
<h2 id="apex-codegenesis-for-vs-code-coding-autonomy-unleashed"><a href="https://github.com/justinlietz93/Apex-CodeGenesis-VSCode?ref=brandons.app">Apex-CodeGenesis for VS Code: Coding Autonomy Unleashed</a></h2>
<p>Discover Apex-CodeGenesis, an advanced autonomous coding agent for VS Code with unique features like recursive reasoning, self-critique, and dynamic personas. Dive into its total autonomy modes and extensive tool capabilities.</p>
<p><em>Tags: Apex-CodeGenesis, VS Code, autonomous coding, advanced tools, dynamic personas, recursive reasoning</em></p>
<hr>
<h2 id="neuroca-organic-memory-for-ai-agents"><a href="https://github.com/Modern-Prometheus-AI/Neuroca?ref=brandons.app">Neuroca: Organic Memory for AI Agents</a></h2>
<p>Discover Neuroca, a sophisticated biologically inspired memory system offering high-quality, persistent memory with self-maintenance strategies. Dive into the MIT-licensed project at docs.neuroca.dev for a deep memory experience.</p>
<p><em>Tags: AI, memory system, organic, MIT license, self-maintenance</em></p>
<hr>
<h2 id="power-up-your-mac-workflow-with-ai-powered-apps"><a href="https://www.reddit.com/r/macapps/s/TElXQxg4La?ref=brandons.app">Power Up Your Mac Workflow with AI-Powered Apps</a></h2>
<p>Discover top MacOS apps enhanced with APIs from openAI and more for boosted productivity. Users recommend Kerlig for quick actions, Chatwise for MCP support, and RewriteBar as a cost-effective alternative to Kerlig.</p>
<p><em>Tags: MacOS, apps, AI, Kerlig, Chatwise, RewriteBar</em></p>
]]></content:encoded></item><item><title><![CDATA[Tabs Still Open: Unleash sync power, liberate devs, AI language tease]]></title><description><![CDATA[Get ready to dive into a lineup that's all about power and liberation. From unleashing offline sync capabilities with Turso to exploring Nue's Rust-powered web dev revolution, this roundup is for tech rebels looking to break free from constraints. OpenAI's tease of a new language model and a concise]]></description><link>https://brandons.app/tabs-still-open-unleash-sync-power-liberate-devs-ai-language-tease/</link><guid isPermaLink="false">67f577981fa8f70001ea0664</guid><category><![CDATA[Tabs Still Open]]></category><category><![CDATA[Link Roundup]]></category><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Tue, 08 Apr 2025 19:25:44 GMT</pubDate><media:content url="https://brandons.app/content/images/2025/03/Tabs-Still-Open-Artwork-Mar-28-2025.webp" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2025/03/Tabs-Still-Open-Artwork-Mar-28-2025.webp" alt="Tabs Still Open: Unleash sync power, liberate devs, AI language tease"><p>Get ready to dive into a lineup that&apos;s all about power and liberation. From unleashing offline sync capabilities with Turso to exploring Nue&apos;s Rust-powered web dev revolution, this roundup is for tech rebels looking to break free from constraints. OpenAI&apos;s tease of a new language model and a concise list of MCP servers add the perfect mix of innovation and practicality for developers, designers, and AI enthusiasts. Buckle up for a ride through the latest in tech evolution and discovery.</p>
<h2 id="turso-offline-sync-unleash-offline-capabilities-now"><a href="https://turso.tech/blog/turso-offline-sync-public-beta?ref=brandons.app">Turso Offline Sync: Unleash Offline Capabilities Now!</a></h2>
<p>Discover the power of Turso Offline Sync in public beta! Seamlessly sync local databases with Turso Cloud, enabling fast, offline-capable applications for mobile, IoT, and more. Explore bi-directional sync, remote write support, and simplified use cases.</p>
<p><em>Tags: Turso, Offline Sync, Public Beta, Local Databases, Mobile Apps, IoT</em></p>
<hr>
<h2 id="nue-lighter-apps-liberated-engineers-joyful-web-dev"><a href="https://nuejs.org/blog/large-scale-apps/?ref=brandons.app">Nue: Lighter Apps, Liberated Engineers, Joyful Web Dev</a></h2>
<p>Discover Nue&apos;s cutting-edge approach to web development with Rust computation, Event Sourcing, and immediate feedback tools. Engineers break free from React constraints, design engineers simplify systems, and UX engineers elevate user experiences with ultra-light applications. Uncover the revolution in web standards and cleaner architectures with Nue.</p>
<p><em>Tags: Nue, web development, Rust, Event Sourcing, design, UX, React</em></p>
<hr>
<h2 id="openai-teases-release-of-new-open-language-model"><a href="https://techcrunch.com/2025/03/31/openai-plans-to-release-a-new-open-language-model-in-the-coming-months/?utm_source=theaireport.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=openai-goes-partly-open&amp;guccounter=1">OpenAI Teases Release of New Open Language Model</a></h2>
<p>OpenAI hints at launching a new &apos;open&apos; language model, seeking input from developers and researchers. Facing competition from &apos;open&apos; model rivals, OpenAI plans to host developer events worldwide to gather feedback and demo prototypes.</p>
<p><em>Tags: OpenAI, language model, developers, researchers, AI, competition</em></p>
<hr>
<h2 id="concise-list-for-mcp-servers-awesome-finds"><a href="https://github.com/MobinX/awesome-mcp-list?ref=brandons.app">Concise List for MCP Servers: Awesome Finds</a></h2>
<p>Discover a curated list of MCP servers spanning browser control, art, cloud platforms, command line, and communication. Dive into innovative projects integrating AI, web browsing, cloud services, and more. Stay updated with this continuously evolving and star-worthy repository.</p>
<p><em>Tags: MCP servers, browser control, art, cloud platforms, command line, communication</em></p>
]]></content:encoded></item><item><title><![CDATA[Tabs Still Open: Tech Upgrades, Coding Vibes, and Design Revolutions]]></title><description><![CDATA[Get ready to level up your tech game with this week's 'Tabs Still Open' roundup. Anthropic's Claude 3.7 Sonnet upgrade promises a 500K token power surge, challenging data processing norms. Bytedance is sparking a coding revolution on TikTok, diving into programming and tech innovations. Explore how ]]></description><link>https://brandons.app/tabs-still-open-tech-upgrades-coding-vibes-and-design-revolutions/</link><guid isPermaLink="false">67e6dfee1fa8f70001ea061d</guid><category><![CDATA[Tabs Still Open]]></category><category><![CDATA[Link Roundup]]></category><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Fri, 28 Mar 2025 17:44:48 GMT</pubDate><media:content url="https://brandons.app/content/images/2025/03/Tabs-Still-Open-Artwork-Mar-28-2025.webp" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2025/03/Tabs-Still-Open-Artwork-Mar-28-2025.webp" alt="Tabs Still Open: Tech Upgrades, Coding Vibes, and Design Revolutions"><p>Get ready to level up your tech game with this week&apos;s &apos;Tabs Still Open&apos; roundup. Anthropic&apos;s Claude 3.7 Sonnet upgrade promises a 500K token power surge, challenging data processing norms. Bytedance is sparking a coding revolution on TikTok, diving into programming and tech innovations. Explore how participatory design in Norway is transforming communities and visual identities. Plus, craft your own macOS status bar experience with SketchyBar&apos;s highly customizable features. Tech enthusiasts, coders, designers, and macOS users, these links are for you!</p>
<h2 id="anthropics-claude-37-upgrade-500k-token-power-surge"><a href="https://www.testingcatalog.com/anthropic-may-soon-launch-claude-3-7-sonnet-with-500k-token-context-window/?ref=brandons.app">Anthropic&apos;s Claude 3.7 Upgrade: 500K Token Power Surge</a></h2>
<p>Anthropic teases a massive boost to Claude 3.7 Sonnet with a jaw-dropping 500K token context window, aiming to revolutionize data processing and coding workflows. The upgrade hints at game-changing potential in processing huge datasets and codebases, challenging conventional context limitations and paving the way for vibe coding&apos;s rise.</p>
<p><em>Tags: Anthropic, Claude 3.7, AI, data processing, coding, vibe coding, technology</em></p>
<hr>
<h2 id="bytedances-coding-revolution-on-tiktok"><a href="https://www.tiktok.com/t/ZT27pxokB/?ref=brandons.app">Bytedance&apos;s Coding Revolution on TikTok</a></h2>
<p>Discover how Bytedance is shaking up coding on TikTok with innovative content. Dive into programming, tech, and more. #coding #programming #tech</p>
<p><em>Tags: coding, programming, tech, Bytedance, TikTok</em></p>
<hr>
<h2 id="transforming-communities-with-participatory-design-in-norway"><a href="https://www.tiktok.com/t/ZT2W6btAC/?ref=brandons.app">Transforming Communities with Participatory Design in Norway</a></h2>
<p>Explore how Kulturhavn in Norway uses participatory design to reshape community spaces, merging visual identity and user input. Dive into brand design, graphic design, and community engagement strategies.</p>
<p><em>Tags: participatory design, brand design, graphic design, community, branding, cultural spaces, Norway</em></p>
<hr>
<h2 id="sketchybar-highly-customizable-macos-status-bar-replacement"><a href="https://github.com/FelixKratz/SketchyBar?ref=brandons.app">SketchyBar: Highly Customizable macOS Status Bar Replacement</a></h2>
<p>Create a customizable macOS status bar replacement with dynamic animation, powerful scripting, efficient performance, mouse support, and more. Easily configure elements dynamically with an event-driven scripting system. Explore installation and customization options to personalize your status bar experience.</p>
<p><em>Tags: macOS, status bar, customization, scripting, efficiency, installation, configuration</em></p>
]]></content:encoded></item><item><title><![CDATA[GPT 4.5 vs 4o]]></title><description><![CDATA[<p>ChatGPT 4.5 just dropped as the new preview release, promising better deep research and creative content generation. So, I put it to the test - alongside 4o. I asked both models the exact same thing:</p><blockquote>&#x201C;Write a story about the open-source app Nomie by Brandon Corbin.&#x201D;</blockquote><p>No</p>]]></description><link>https://brandons.app/gpt-4-5-vs-4o/</link><guid isPermaLink="false">67ccaabd8fbb300001e9aeed</guid><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Sat, 08 Mar 2025 20:53:36 GMT</pubDate><media:content url="https://brandons.app/content/images/2025/03/A928B61E-05F8-48E5-B96C-FFE621C8189D.png" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2025/03/A928B61E-05F8-48E5-B96C-FFE621C8189D.png" alt="GPT 4.5 vs 4o"><p>ChatGPT 4.5 just dropped as the new preview release, promising better deep research and creative content generation. So, I put it to the test - alongside 4o. I asked both models the exact same thing:</p><blockquote>&#x201C;Write a story about the open-source app Nomie by Brandon Corbin.&#x201D;</blockquote><p>No extra context. No special prompts. Just that. Safe to say&#x2026; <strong>4o absolutely killed it</strong>. Check out the results and tell me what you think. Who&#x2019;s the real winner here?</p><h1 id="45">4.5</h1><p>Nomie began in 2014 as an experiment by Brandon Corbin, a designer and developer who loved tinkering with personal data but was frustrated by existing life-tracking apps. Brandon envisioned a personal, intuitive tracker&#x2014;one without the clutter, complexity, or invasive practices of traditional apps.</p><p>Originally launched under his creative entity, Happy Data, Nomie aimed to empower users to privately track aspects of their lives&#x2014;from moods and habits to health and productivity metrics. Unlike other apps hungry for data, Nomie championed privacy: your data belonged to you, stored locally or synced securely only if you chose.</p><p>As Nomie evolved, Brandon released it fully open source in 2019, inviting the community to collaborate, adapt, and expand its capabilities. This decision made Nomie not just an app, but a movement&#x2014;users now had the freedom to customize and extend it according to their unique needs, spawning a passionate, diverse community.</p><p>Despite its loyal following, Nomie faced challenges. Maintaining and supporting an open-source project required effort, but its community grew, sharing modifications, supporting one another, and keeping the original vision alive: user-owned data, private tracking, and tools that genuinely helped people understand themselves better.</p><p>Nomie still lives on today as a symbol of Brandon&#x2019;s vision for technology that respects its users, proving that design can be human-centered without sacrificing privacy or usability.</p><h1 id="4o">4o</h1><p>Alright, let&#x2019;s talk about Nomie&#x2014;the open-source life tracker that came straight from the mind of Brandon Corbin.</p><h2 id="the-birth-of-nomie-2014">The Birth of Nomie (2014)</h2><p>Back in 2014, Brandon launched Nomie under Happy Data. It started as a simple but powerful life-tracking app designed for people who wanted to collect and analyze their own data without handing it over to big corporations. The idea was that you should be able to track anything&#x2014;moods, habits, medications, workouts, caffeine intake&#x2014;without your data being stored on some random server where it could be exploited.</p><p>At its core, Nomie was built on privacy, simplicity, and flexibility. It wasn&#x2019;t just about tracking for the sake of it; it was about helping people identify patterns, improve their lives, and make decisions based on real personal data.</p><h2 id="the-nomie-experience">The Nomie Experience</h2><p>Nomie allowed users to create custom trackers for anything they wanted. Feeling stressed? Tap a button. Drank a coffee? Log it. Over time, this data turned into insights&#x2014;trends, correlations, and a better understanding of what was driving behaviors.</p><p>Unlike other tracking apps that required sign-ups and stored everything in the cloud, Nomie was built to be completely private. Users could store their data locally or on their own storage solutions, like CouchDB, which was pretty rare for an app of its kind. It was about your data being yours&#x2014;not locked behind some subscription or analytics-driven business model.</p><h2 id="the-open-source-evolution">The Open-Source Evolution</h2><p>Brandon made Nomie open source, which meant anyone could tweak, improve, or even self-host it. This move reinforced the idea that life tracking should be for the people, by the people, not another avenue for corporate data mining.</p><p>As an open-source project, Nomie gained a loyal community of users who appreciated its privacy-first approach. It became one of the first real life tracker applications that wasn&#x2019;t tied to a walled garden, attracting indie developers, quantified-self enthusiasts, and privacy advocates.</p><h2 id="the-challenges-the-sunset">The Challenges &amp; The Sunset</h2><p>Of course, as with any independent project, keeping Nomie running and evolving was a massive undertaking. While people loved it, life tracking isn&#x2019;t exactly a cash cow, and maintaining an app&#x2014;especially one as flexible and feature-rich as Nomie&#x2014;takes time and effort.</p><p>At some point, it became clear that continuing to develop Nomie at scale wasn&#x2019;t sustainable. Eventually, Brandon had to step away from active development, but not before leaving behind a powerful open-source foundation that people could still build on.</p><h2 id="the-legacy-of-nomie">The Legacy of Nomie</h2><p>Even though Nomie is no longer actively developed, its DNA lives on. The core ideas&#x2014;privacy-first tracking, full control over personal data, and user-driven customization&#x2014;are still influencing other tracking apps today.</p><p>For Brandon, Nomie was more than just an app. It was an experiment in giving people the tools to understand themselves better without selling their data in the process. It was ahead of its time, offering something that mainstream apps still struggle to deliver&#x2014;a truly user-controlled experience.</p><p>Would Nomie make a comeback? Who knows. But one thing&#x2019;s for sure: it left a mark on the quantified-self space and showed that life tracking can be personal, private, and open.</p><p>So who won?</p>]]></content:encoded></item><item><title><![CDATA[AI isn't replacing developers anytime soon.]]></title><description><![CDATA[<figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/cegw8gkH0Fc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Cursing with Cursor: Building a Deno Markdown Server #nsfw"></iframe></figure><p><strong><em>But developers who use AI will replace developers who don&apos;t</em></strong></p><p>I needed a simple service that takes a bunch of URLs, scrapes the content, and spits it out as a single Markdown file. Sounds easy enough. I was building a custom GPT for <a href="https://bigcheese.ai/?ref=brandons.app" rel="noreferrer"><em>The Big Cheese AI Podcast</em></a></p>]]></description><link>https://brandons.app/cursing-with-cursor-lets-build-a-deno-markdown-server-with-cursor-ai/</link><guid isPermaLink="false">67ba17e78fbb300001e9aec6</guid><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Sat, 22 Feb 2025 18:54:59 GMT</pubDate><media:content url="https://brandons.app/content/images/2025/02/DALL-E-Frustrated-Programmer-Scene--1-.webp" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/cegw8gkH0Fc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Cursing with Cursor: Building a Deno Markdown Server #nsfw"></iframe></figure><img src="https://brandons.app/content/images/2025/02/DALL-E-Frustrated-Programmer-Scene--1-.webp" alt="AI isn&apos;t replacing developers anytime soon."><p><strong><em>But developers who use AI will replace developers who don&apos;t</em></strong></p><p>I needed a simple service that takes a bunch of URLs, scrapes the content, and spits it out as a single Markdown file. Sounds easy enough. I was building a custom GPT for <a href="https://bigcheese.ai/?ref=brandons.app" rel="noreferrer"><em>The Big Cheese AI Podcast</em></a> and needed a way to quickly extract meaningful headlines from various news sources. So I thought, &quot;Let&#x2019;s build a quick and dirty <a href="https://deno.com/?ref=brandons.app" rel="noreferrer">Deno</a> project with <a href="https://www.cursor.com/en?ref=brandons.app" rel="noreferrer">Cursor AI</a> to do just that!&quot; and while I&apos;m at it &quot;Let&#x2019;s record it!&quot;</p><p>What followed was an adventure in frustration, laughter, and a whole lot of cursing.</p><hr><h3 id="step-1-the-setup-before-the-screaming-started">Step 1: The Setup (Before the Screaming Started)</h3><p>I started up fresh Deno project, ready to roll. First step - create a server that:</p><ol><li>Takes a list of URLs.</li><li>Fetches the raw HTML.</li><li>Strips out all the useless crap (styles, JavaScript, tracking pixels).</li><li>Converts the cleaned content into Markdown.</li><li>Returns a single Markdown file containing everything.</li></ol><p>Sounds like a solid plan. But plans and reality rarely get along.</p><hr><h3 id="step-2-enter-cursor-aithe-junior-dev-from-hell">Step 2: Enter Cursor AI - The Junior Dev from Hell</h3><p>If you haven&#x2019;t used Cursor AI before, let me explain: imagine an overeager junior developer who gets <em>most</em> things right but occasionally decides to rewrite your entire function because it <em>thought</em> you wanted something different.</p><p>So I start feeding Cursor my requirements, and  then&#x2026;</p><hr><h3 id="step-3-ai-stop-gaslighting-me">Step 3: AI, Stop Gaslighting Me</h3><p>The moment I hit &#x201C;run,&#x201D; things took a turn.</p><ul><li>It spits out an error.</li><li>I fix it.</li><li>It suggests something <em>I literally just told it to do</em>.</li><li>I fix that too.</li><li>It apologizes</li><li>It spits out another error.</li></ul><p>And this cycle just keeps going.</p><p>At one point, I had to literally tell it, <strong>&#x201C;Stop recommending to fucking run the Deno command! We have a watch process!&#x201D;</strong> But no - Cursor just <em>had</em> to keep telling me to manually restart things.</p><p>Then came the <strong>ultimate betrayal</strong>:</p><p>It wrote a function.<br>It <strong>forgot</strong> it wrote the function.<br>It asked <strong>me</strong> if I wanted to write that function.</p><p>I  lost my damn mind.</p><hr><h3 id="step-4-debugging-like-a-caveman">Step 4: Debugging Like a Caveman</h3><p>At this point, the service was half-working. It was fetching URLs, but the Markdown was a mess. So I did what any sane developer does when AI keeps failing - I copied errors into Cursor and screamed at it to fix its own mess.</p><p>The funniest part? It started matching my <em>energy</em>.</p><ul><li>I yell: <strong>&#x201C;You [___] idiot! Strip out the JavaScript first!&#x201D;</strong></li><li>Cursor: <em>&#x201C;Oh [___], I see the issue. Let me clean that up.&#x201D;</em></li><li>I yell: <strong>&#x201C;No, that&#x2019;s still wrong, you useless [___]!&#x201D;</strong></li><li>Cursor: <em>&#x201C;Oops, sorry, totally [___] that up. Here&#x2019;s a fix.&#x201D;</em></li></ul><p>I swear, AI is developing Stockholm Syndrome at this point.</p><hr><h3 id="step-5-victory-kind-of">Step 5: Victory... Kind Of</h3><p>After fighting and fighting, the Markdown finally looked right. Cursor had stopped gaslighting me (mostly), and I had a working Deno service. It wasn&#x2019;t pretty, but it did the job:</p><ol><li>Take a list of URLs.</li><li>Scrape the useful content.</li><li>Strip out all the tracking junk.</li><li>Convert to Markdown.</li><li>Return it in a single, beautiful, AI-readable file.</li></ol><p>I threw in some quick refinements, tested it with a few URLs, and BAM - success. The damn thing worked.</p><hr><h3 id="final-thoughts-ai-is-useful-but-it%E2%80%99s-also-a-troll">Final Thoughts: AI Is Useful, but It&#x2019;s Also a Troll</h3><p>Look, I love AI. It speeds up my workflow like crazy. But it&#x2019;s also like that intern who needs constant babysitting. You can&#x2019;t trust it blindly, and you <strong>will</strong> need to yell at it from time to time.</p><p>Would I use Cursor AI again? Absolutely.<br>Would I scream at it the entire time? Also yes.</p><p>Moral of the story? AI coding assistants are great - just don&#x2019;t expect them to actually <em>listen</em> to you.</p><hr><p>Now if you&#x2019;ll excuse me, I need a drink. </p>]]></content:encoded></item><item><title><![CDATA[I built a native iOS app with AI, and it was a f*cking nightmare.]]></title><description><![CDATA[I built a native iOS application using AI – and it was an absolute disaster. But before we get into the nitty-gritty of why this entire ordeal had me flipping tables and questioning my life choices...]]></description><link>https://brandons.app/i-build-a-native-ios-app-with-ai-and-it-was-a-f-cking-nightmare/</link><guid isPermaLink="false">6796a8c08fbb300001e9ae6b</guid><category><![CDATA[AI]]></category><category><![CDATA[Code]]></category><category><![CDATA[Design]]></category><category><![CDATA[Dev]]></category><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Sun, 26 Jan 2025 21:32:35 GMT</pubDate><media:content url="https://brandons.app/content/images/2025/01/DALL-E-iOS-Developer-Scene-Jan-26-2025.webp" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/Jm2Ms5PLLLQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="I build a native iOS app with AI. It was a f*cking nightmare. Let me tell you why."></iframe></figure><img src="https://brandons.app/content/images/2025/01/DALL-E-iOS-Developer-Scene-Jan-26-2025.webp" alt="I built a native iOS app with AI, and it was a f*cking nightmare."><p>Alright, let&#x2019;s get straight into it. I built a <a href="https://apps.apple.com/us/app/paper-keeper/id6740634117?platform=iphone&amp;ref=brandons.app" rel="noreferrer">native iOS application</a> using AI &#x2013; and it was an absolute disaster. But before we get into the nitty-gritty of why this entire ordeal had me flipping tables and questioning my life choices, let&#x2019;s address the elephant in the room. People are out here screaming from their rooftops that AI is going to replace developers. I&#x2019;m here to tell you that&#x2019;s bullshit. If anything, AI has made it crystal clear that senior developers are safe, junior developers are on the chopping block, and everyone else better buckle up because it&#x2019;s a bumpy ride.</p><figure class="kg-card kg-image-card"><img src="https://brandons.app/content/images/2025/01/image.png" class="kg-image" alt="I built a native iOS app with AI, and it was a f*cking nightmare." loading="lazy" width="2000" height="1038" srcset="https://brandons.app/content/images/size/w600/2025/01/image.png 600w, https://brandons.app/content/images/size/w1000/2025/01/image.png 1000w, https://brandons.app/content/images/size/w1600/2025/01/image.png 1600w, https://brandons.app/content/images/size/w2400/2025/01/image.png 2400w" sizes="(min-width: 720px) 720px"></figure><h3 id="the-problem-that-started-it-all">The Problem That Started It All</h3><p>Picture this. My car needed some work &#x2013; recall situation. I go to get a loaner, and the guy asks for my insurance. No problem, right? Wrong. I left my wallet at home. Thankfully, I knew I had a photo of my insurance card somewhere in the abyss that is my camera roll. I started scrolling, searching, and swiping like a maniac until I finally found it. That&#x2019;s when it hit me &#x2013; this is a god-awful way to organize important documents.</p><p>So I had this genius idea: what if I made an app where I could just take photos of my documents, organize them neatly, and have them instantly accessible? Maybe even import PDFs or sync it all across my devices. Boom &#x2013; idea born. And because I&#x2019;m a masochist, I decided to build it as a <a href="https://apps.apple.com/us/app/paper-keeper/id6740634117?platform=iphone&amp;ref=brandons.app" rel="noreferrer">completely native iOS app</a>. Oh, and let&#x2019;s let AI do all the heavy lifting. What could go wrong?</p><h3 id="the-first-attempt-show-me-your-papers-horrible-name-i-know">The First Attempt: Show Me Your Papers (Horrible Name, I Know)</h3><p>I fire up Xcode, start a new project, and name it &quot;Show Me Your Papers&quot; &#x2013; a name so bad, I&#x2019;m embarrassed to even type it. Then I open Cursor, my AI co-buddy, and feed it a list of requirements. I tell Cursor what I want the app to do, and it starts generating files and writing code like it&#x2019;s auditioning for &quot;America&#x2019;s Got Talent.&quot;</p><p>Here&#x2019;s how it went:</p><ol><li>Cursor writes some code.</li><li>I run the app.</li><li>Errors. Copy errors. Paste errors into Cursor.</li><li>Repeat.</li></ol><p>I quickly realized I wasn&#x2019;t a developer anymore &#x2013; I was an orchestrator. The AI was my chaotic little intern, and I was its stressed-out manager. At first, it was magical. I even went on LinkedIn to preach about how this was the future of development. But then I hit a wall. I needed data to sync across devices, and Cursor decided to use Core Data &#x2013; Apple&#x2019;s clunky, outdated data storage framework. Migrating to Swift Data (the newer, better option) turned the entire project into a flaming dumpster fire. After two days of fighting errors, I flipped my desk and walked away.</p><h3 id="attempt-two-the-pink-binder-disaster">Attempt Two: The Pink Binder Disaster</h3><p>Determined to make this work, I started fresh. This time, I renamed the app &quot;Pink Binder,&quot; inspired by a friend who kept her parents&#x2019; important documents in a literal pink binder. The name felt right, and I thought maybe a clean slate would solve all my problems.</p><p>I asked Cursor to generate a massive document with all the app&#x2019;s requirements, features, and data models. Then I fed it back into Cursor and told it to build the app. It started cranking out files and creating a directory structure that actually looked decent. I thought, &quot;Alright, maybe this time it&#x2019;ll work.&quot;</p><p>Spoiler: It didn&#x2019;t.</p><p>For three straight days, I played the same game. Run the app. Errors. Copy. Paste. Fix. Repeat. Three. Damn. Days. The app never ran on my device. Not once. By the end, I was so furious I almost threw my MacBook out the window.</p><h3 id="the-final-attempt-paper-keeper">The Final Attempt: <a href="https://apps.apple.com/us/app/paper-keeper/id6740634117?platform=iphone&amp;ref=brandons.app" rel="noreferrer">Paper Keeper</a></h3><p>By now, I was battle-hardened and ready for war. I started over again, this time with a clearer plan. The app was now called &quot;Paper Keeper,&quot; and I approached it differently. Instead of letting Cursor run wild, I took control. I defined all the features, laid out the directory structure, and even created stub files with comments explaining what each part of the app was supposed to do. Then I let Cursor build small pieces, one step at a time.</p><p>This process was tedious as hell. I had to babysit the AI, correct its mistakes, and constantly remind it to stay within the lines. But it worked. After weeks of pain and suffering, I finally had a working app. Paper Keeper was alive, and it was actually pretty awesome.</p><h3 id="what-i-learned">What I Learned</h3><p>Here&#x2019;s the cold, hard truth: AI isn&#x2019;t ready to replace developers. Not even close. It&#x2019;s a tool, and if you don&#x2019;t know how to use it, it&#x2019;ll burn you. AI can replace junior developers because it&#x2019;s great at handling repetitive, straightforward tasks. But here&#x2019;s the problem &#x2013; where do senior developers come from? They start as juniors. If we cut off that pipeline, we&#x2019;re screwed in the long run.</p><p>For now, AI is a powerful assistant. It can help you build faster and make your life easier, but it&#x2019;s not a magic wand. If you&#x2019;re not a developer and think AI will let you build a killer app solo, good luck. You&#x2019;ll either end up with a half-baked app or a full-blown mental breakdown.</p><h3 id="how-to-use-get-it">How to Use Get It</h3><p><a href="https://apps.apple.com/us/app/paper-keeper/id6740634117?platform=iphone&amp;ref=brandons.app" rel="noreferrer">Paper Keeper is live and ready for action</a>. It&#x2019;s an iOS app that keeps your important documents organized, secure, and instantly accessible. If you&#x2019;re tired of digging through your camera roll for insurance cards or warranty PDFs, check it out at <a href="https://paperkeeper.app/?ref=brandons.app">paperkeeper.app</a> or <a href="https://apps.apple.com/us/app/paper-keeper/id6740634117?platform=iphone&amp;ref=brandons.app" rel="noreferrer">install it from the AppStore</a></p><p>As for AI? Use it. Embrace it. But don&#x2019;t let it fool you into thinking it&#x2019;s the second coming of developer Jesus. We&#x2019;re not there yet &#x2013; and we probably won&#x2019;t be for a while.</p>]]></content:encoded></item><item><title><![CDATA[Breaking Down Silos - How Developers and Designers Can Work Better Together]]></title><description><![CDATA[How many project have you been on where developers and designers seemed to be speaking different languages? It’s way too common for these two crucial teams to be working in silos, leading to miscommunication, delays, and a product that doesn’t quite hit the mark. But it doesn’t have to be that way.
]]></description><link>https://brandons.app/breaking-down-silos-how-developers-and-designers-can-work-better-together-2/</link><guid isPermaLink="false">67433cdd8fbb300001e9ac7a</guid><category><![CDATA[UX]]></category><category><![CDATA[Dev]]></category><category><![CDATA[Product]]></category><category><![CDATA[Tips]]></category><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Sat, 21 Dec 2024 03:09:13 GMT</pubDate><media:content url="https://brandons.app/content/images/2024/11/5E01C261-A4ED-4455-9F8E-5429C5C1FAF7.webp" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2024/11/5E01C261-A4ED-4455-9F8E-5429C5C1FAF7.webp" alt="Breaking Down Silos - How Developers and Designers Can Work Better Together"><p>How many project have you been on where developers and designers seemed to be speaking different languages? It&#x2019;s way too common for these two crucial teams to be working in silos, leading to miscommunication, delays, and a product that doesn&#x2019;t quite hit the mark. But it doesn&#x2019;t have to be that way.</p><p>Breaking down these silos is a practical step toward better products, happier teams, and smoother processes. Let&#x2019;s dive into how developers and designers can work better together.</p><h2 id="the-cost-of-working-in-silos"><strong>The Cost of Working in Silos</strong></h2><p>When developers and designers stay in their separate bubbles, things can go sideways pretty quickly. Maybe the design team hands off a mockup that&#x2019;s missing key elements, or the developers implement something that doesn&#x2019;t match the intended user experience. The result? Misaligned designs, last-minute changes, and frustration all around.</p><p>This doesn&#x2019;t just impact the teams - it affects the final product. Poor UX/UI quality, extended timelines, and higher costs become the norm. And let&#x2019;s face it, an &#x201C;us vs. them&#x201D; mentality helps no one.</p><h1 id="understanding-each-other%E2%80%99s-roles"><strong>Understanding Each Other&#x2019;s Roles</strong></h1><h2 id="what-developers-wish-designers-knew"><strong>What Developers Wish Designers Knew</strong></h2><ul><li><strong>Design Decisions Have Technical Implications</strong>: That cool animation or intricate layout might look fantastic, but it could be a challenge to implement efficiently. Developers appreciate when designers consider the technical side of things.</li><li><strong>&#x201C;Just Make It Work&#x201D; Isn&#x2019;t Always Realistic</strong>: Constraints like browser compatibility, performance issues, and existing tech stacks can limit what&#x2019;s possible. Open dialogue about these constraints helps set realistic expectations.</li><li><strong>Clear, Complete Designs Are Essential</strong>: Missing responsive layouts, personas, or accessibility considerations make development harder and can lead to guesswork. The more detailed the design, the smoother the build.</li></ul><h2 id="what-designers-wish-developers-knew"><strong>What Designers Wish Developers Knew</strong></h2><ul><li><strong>Designs Are Carefully Crafted</strong>: Every element has a purpose. They&#x2019;re not just suggestions but are based on user research and best practices. Skipping or altering them can diminish the user experience.</li><li><strong>Micro-Interactions Matter</strong>: Those subtle animations and transitions enhance the product&#x2019;s feel. Ignoring them can make the interface seem flat or unpolished.</li><li><strong>Ask Questions Early</strong>: If something isn&#x2019;t clear, bringing it up sooner prevents bigger issues down the line. Designers appreciate proactive communication.</li></ul><h1 id="building-bridges-between-developers-and-designers"><strong>Building Bridges Between Developers and Designers</strong></h1><h2 id="1-start-with-shared-goals"><strong>1. Start with Shared Goals</strong></h2><p>Kick off projects by aligning on the purpose and objectives. Use <strong>user stories</strong> to create a shared contract that everyone agrees on. This ensures both teams are on the same page from day one.</p><h2 id="2-encourage-regular-collaboration"><strong>2. Encourage Regular Collaboration</strong></h2><p>Hold cross-functional meetings and design reviews. Regular check-ins prevent surprises later on. Use shared tools like <strong>Figma</strong> to allow developers to provide early feedback on designs.</p><h2 id="3-clarify-roles-and-expectations"><strong>3. Clarify Roles and Expectations</strong></h2><p>Define who is responsible for what. Who handles micro-interactions? Who writes error states? Documenting this avoids confusion and overlaps.</p><h2 id="4-establish-a-feedback-loop"><strong>4. Establish a Feedback Loop</strong></h2><p>Create channels for continuous feedback during and after development. Encourage mutual respect and constructive criticism. Remember, you&#x2019;re all working toward the same goal.</p><h1 id="practical-tips-for-collaboration"><strong>Practical Tips for Collaboration</strong></h1><h2 id="for-developers"><strong>For Developers</strong></h2><ul><li><strong>Ask Questions Early and Often</strong>: Don&#x2019;t wait until the last minute to clarify uncertainties. It&#x2019;s better to over-communicate than to assume.</li><li><strong>Push Back When Necessary</strong>: If designs lack critical details like responsive views or realistic placeholder content, speak up. It&#x2019;s not about being difficult - it&#x2019;s about ensuring the best possible product.</li><li><strong>Use Design Systems</strong>: Staying consistent with established design guidelines helps maintain a cohesive product and speeds up development.</li></ul><h2 id="for-designers"><strong>For Designers</strong></h2><ul><li><strong>Provide Clear Documentation</strong>: Ensure that handoffs include all necessary details, from assets to specifications. The more information, the better.</li><li><strong>Consider Technical Constraints</strong>: Collaborate with developers to understand what&#x2019;s feasible. This doesn&#x2019;t mean limiting creativity but finding the best way to bring ideas to life.</li><li><strong>Stay Involved During Development</strong>: Regular check-ins help ensure the vision is executed properly and allows for adjustments if needed.</li></ul><h2 id="tools-and-practices-that-bring-teams-together"><strong>Tools and Practices That Bring Teams Together</strong><br></h2><ul><li><strong>Use Collaborative Tools</strong>: Platforms like <a href="https://figma.com/?ref=brandons.app" rel="noreferrer">Figma</a>, <a href="https://notion.so/?ref=brandons.app" rel="noreferrer">Notion</a>, or shared Slack channels promote transparency and make it easy to share updates.</li><li><strong>Document Processes Centrally</strong>: Keep guidelines, assets, and documentation in a place everyone can access. This reduces misunderstandings and saves time.</li><li><strong>Pair Up for Complex Features</strong>: Sometimes, designer-developer duo sessions can iron out tricky parts more effectively than back-and-forth messages.</li></ul><h2 id="breaking-down-silos-for-the-long-term"><strong>Breaking Down Silos for the Long Term</strong></h2><ul><li><strong>Foster a Culture of Collaboration</strong>: Make cross-functional teamwork the norm, not the exception. Encourage team members to share ideas and feedback openly.</li><li><strong>Celebrate Wins Together</strong>: Acknowledge contributions from both teams when you hit milestones. This builds camaraderie and mutual respec</li><li><strong>Invest in Team-Building</strong>: Activities outside of work can strengthen relationships and improve collaboration. Whether it&#x2019;s a team lunch or a workshop, these experiences pay off.</li></ul><h2 id="conclusion"><strong>Conclusion</strong></h2><p>Breaking down silos between developers and designers isn&#x2019;t just good for team morale - it&#x2019;s essential for creating products that truly shine. By understanding each other&#x2019;s roles, fostering open communication, and collaborating regularly, we can build better experiences for everyone involved.</p><p>Why not try one new collaboration tip in your next project? You might be surprised at the difference it makes. And hey, if you&#x2019;ve got your own stories or tips, I&#x2019;d love to hear them. Let&#x2019;s keep working together to make awesome things happen.</p>]]></content:encoded></item><item><title><![CDATA[Timesheets suck. I made them suck less by using Notion to-do's and some code.]]></title><description><![CDATA[If you’ve ever tried to juggle multiple clients and projects while running a business, you’ve probably bumped into the same time-tracking hell I’ve faced.]]></description><link>https://brandons.app/time-tracking-sucks-so-i-fixed-it-with-a-simple-notion-todo-list-2/</link><guid isPermaLink="false">6751c5f68fbb300001e9adc3</guid><category><![CDATA[ADHD]]></category><category><![CDATA[Startup]]></category><category><![CDATA[Tips]]></category><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Fri, 06 Dec 2024 13:30:45 GMT</pubDate><media:content url="https://brandons.app/content/images/2024/12/DALL-E-Dec-5-Black-and-White-Close-up.webp" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://brandons.app/content/images/2024/12/image-1.png" class="kg-image" alt="Timesheets suck. I made them suck less by using Notion to-do&apos;s and some code." loading="lazy" width="2000" height="1491" srcset="https://brandons.app/content/images/size/w600/2024/12/image-1.png 600w, https://brandons.app/content/images/size/w1000/2024/12/image-1.png 1000w, https://brandons.app/content/images/size/w1600/2024/12/image-1.png 1600w, https://brandons.app/content/images/size/w2400/2024/12/image-1.png 2400w" sizes="(min-width: 720px) 720px"></figure><img src="https://brandons.app/content/images/2024/12/DALL-E-Dec-5-Black-and-White-Close-up.webp" alt="Timesheets suck. I made them suck less by using Notion to-do&apos;s and some code."><p>If you&#x2019;ve ever tried juggling multiple clients and projects while running a business, you&#x2019;ve experienced the same hell I&#x2019;ve faced trying to track your time. </p><p>I run a <a href="https://happydata.studio/?ref=brandons.app" rel="noreferrer">product design studio</a>, and while I thrive on the ADHD-friendly chaos of hopping between clients, the idea of meticulously logging every minute of my work? Uh, no. I just wanna do my work.</p><figure class="kg-card kg-embed-card"><blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:c6vkti624wulinvr5lcmuyum/app.bsky.feed.post/3lapusfca3w23" data-bluesky-cid="bafyreibouas33qdl4s3y6t33qicnao3cvavwacfgqhf3d6q4fb7zvvhwka"><p>Filling timesheets and expense reports is my personal version of hell</p>&#x2014; <a href="https://bsky.app/profile/did:plc:c6vkti624wulinvr5lcmuyum?ref_src=embed&amp;ref=brandons.app">Laurent Bugnion (@lbugnion.ch)</a> <a href="https://bsky.app/profile/did:plc:c6vkti624wulinvr5lcmuyum/post/3lapusfca3w23?ref_src=embed&amp;ref=brandons.app">2008-04-23T07:19:07.000Z</a></blockquote><script async src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script></figure><p>Here&#x2019;s the problem: <strong>every time-tracking platform I&#x2019;ve tried has been .. well, horrible.</strong> They&#x2019;re clunky, require too much executive function, and ultimately I never actually use them. And what&#x2019;s the golden rule? The best products are the ones we actually use. So I ditched the apps and decided to do what I normally do, and try to build off something I already rely on: my Notion todo list.</p><h2 id="why-traditional-time-tracking-doesn%E2%80%99t-work-for-me">Why Traditional Time Tracking Doesn&#x2019;t Work for Me</h2><p>Time tracking has always been a pain in the ass.. As someone with ADHD, I tend to hyperfocus on the work itself and forget about things like starting and stopping timers. Plus, with multiple clients and projects on my plate, switching gears is part of the deal. I don&#x2019;t want to interrupt my flow just to update some overly complex time tracker.</p><p>This year, my system (or lack thereof) finally bit me in the ass. During my December review- when I force myself to look at my finances - I realized I&#x2019;d spent <strong>an </strong><a href="https://brandons.app/i-hate-making-money/" rel="noreferrer"><strong>absurd amount of time on a fixed-bid project</strong></a>. That passion project gobbled up so much of my time that my hourly work suffered. In short, I left a ton of money on the table because I had no clear view of how my time was actually being spent.</p><p>Something had to change.</p><h2 id="my-notion-todo-list">My <a href="https://notion.so/?ref=brandons.app" rel="noreferrer">Notion</a> Todo List</h2><p>Here&#x2019;s the thing: I already have a super-organized system in Notion. Every day, I break down tasks by client in a running todo list. Each month, I start a fresh page, and I&#x2019;ve been doing this for over two years now. It&#x2019;s simple, it works, and most importantly, <strong>I actually use it.</strong></p><figure class="kg-card kg-image-card"><img src="https://brandons.app/content/images/2024/12/image-2.png" class="kg-image" alt="Timesheets suck. I made them suck less by using Notion to-do&apos;s and some code." loading="lazy" width="1296" height="1002" srcset="https://brandons.app/content/images/size/w600/2024/12/image-2.png 600w, https://brandons.app/content/images/size/w1000/2024/12/image-2.png 1000w, https://brandons.app/content/images/2024/12/image-2.png 1296w" sizes="(min-width: 720px) 720px"></figure><p>So instead of adding yet another app to my life, I decided to build on what I was already doing.</p><h2 id="how-i-turned-my-todo-list-into-a-time-tracking-system">How I Turned My Todo List into a Time-Tracking System</h2><p>The beauty of this system is its simplicity. I didn&#x2019;t want to overhaul my entire workflow - just enhance it. The only thing I added to my todo list was the <strong>time spent on each task</strong>, and I kept it as flexible as possible because since labeling consistency isn&#x2019;t my strong suit.</p><p>Here&#x2019;s what it looks like in practice:</p><ul><li><strong>[x] Do this one thing (1.4hr)</strong></li><li><strong>[x] Did that other thing (14min)</strong></li><li><strong>[x] Followed up on that thing (4m)</strong></li></ul><p>It doesn&#x2019;t matter if I use &#x201C;hr,&#x201D; &#x201C;min,&#x201D; or random abbreviations like &#x201C;m.&#x201D; The goal was to capture the essence of time spent without overthinking it. Same with the dates, I am totally inconsistent with how I label dates, so the system can account for virtually any permutation.</p><h3 id="automating-the-hard-part">Automating the Hard Part</h3><p>Once I had a few months of this data, I realized I could automate the rest. I fired up <a href="https://brandons.app/i-can-no-longer-code-without-cursor-i-mean-i-can-but-i-just-dont-want-to/" rel="noreferrer">Cursor</a> (a killer AI coding assistant) and wrote a script to parse my Notion todos. It does a few key things:</p><ol><li><strong>Extracts tasks, durations, and clients</strong> from my lists.</li><li><strong>Converts the time formats</strong> into a consistent structure.</li><li><strong>Generates a timesheet</strong> with a breakdown of time spent by client and project.</li><li><strong>Calculates costs</strong>, so I can see exactly how much I&#x2019;m earning&#x2014;or losing&#x2014;on fixed-bid work.</li></ol><p>Now, at the end of each month, I can hit a local website and get a great summary of my time (sure it takes 15 seconds to render because the Notion API is created by insane people, but it&apos;s absolutely invaluable). I then made it stupidly easy to copy into InvoiceNinja, the app I use for billing clients.</p><figure class="kg-card kg-image-card"><img src="https://brandons.app/content/images/2024/12/image-4.png" class="kg-image" alt="Timesheets suck. I made them suck less by using Notion to-do&apos;s and some code." loading="lazy" width="1320" height="1984" srcset="https://brandons.app/content/images/size/w600/2024/12/image-4.png 600w, https://brandons.app/content/images/size/w1000/2024/12/image-4.png 1000w, https://brandons.app/content/images/2024/12/image-4.png 1320w" sizes="(min-width: 720px) 720px"></figure><h2 id="the-results-clarity-and-control">The Results? Clarity and Control</h2><p>Here&#x2019;s what this new system has done for me:</p><ul><li><strong>Visibility</strong>: I can instantly see where my time is going and how much each client costs me.</li><li><strong>Profitability Insights</strong>: I can tell at a glance if fixed-bid projects are worth it or if I&#x2019;m overcommitting.</li><li><strong>Easier Invoicing</strong>: Since everything is broken down by client, invoicing takes minutes, not hours.</li></ul><p>Next on my to-do list? Adding the ability to push these timesheets into InvoiceNinja to automatically generate my invoices.</p><h2 id="til-time-tracking-doesn%E2%80%99t-have-to-suck">TIL: Time tracking doesn&#x2019;t have to suck.</h2><p>By integrating it into a system I already loved, I turned what used to be a frustrating chore into a seamless part of my daily routine. Best of all, I can finally make informed decisions about my work&#x2014;and my bottom line.</p><p>If you&#x2019;ve been struggling with time tracking, consider this your permission to ditch the clunky apps and make something that works for you. You don&#x2019;t need fancy software&#x2014;just a little creativity and a system you&#x2019;ll actually stick with.</p><p><strong>Your Turn</strong>: Do you have a favorite Notion hack or time-tracking tip? Share it in the comments&#x2014;I&#x2019;m always looking for better ways to work smarter, not harder.</p>]]></content:encoded></item><item><title><![CDATA[I can no longer code without Cursor. I mean, I can, but I simply don't want to.]]></title><description><![CDATA[Last month, I started paying for Cursor - and holy sh*t, it’s like I’ve stepped into a cheat code for coding.]]></description><link>https://brandons.app/i-can-no-longer-code-without-cursor-i-mean-i-can-but-i-just-dont-want-to/</link><guid isPermaLink="false">675067508fbb300001e9ad79</guid><category><![CDATA[AI]]></category><category><![CDATA[Code]]></category><category><![CDATA[Dev]]></category><category><![CDATA[Startup]]></category><category><![CDATA[UX]]></category><category><![CDATA[Tips]]></category><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Wed, 04 Dec 2024 15:14:39 GMT</pubDate><media:content url="https://brandons.app/content/images/2024/12/DALL-E-Dec-4-Developer-Typing-Image.webp" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2024/12/DALL-E-Dec-4-Developer-Typing-Image.webp" alt="I can no longer code without Cursor. I mean, I can, but I simply don&apos;t want to."><p>For the last 20+ years, I&#x2019;ve been balls-deep in code. Front-end, back-end, full-stack - you name it, I&#x2019;ve probably wrestled with it. From the wild-west days of Backbone and jQuery to the modern landscapes of Angular 1&amp;2, React (next, native and create), Vue, Svelte, and even a sprinkling of Rust, I&#x2019;ve built apps that would make even the most seasoned developer groan at their complexity. These weren&#x2019;t just toy &quot;Hello World&quot; projects or half-assed Todo apps. I&#x2019;m talking full-blown, overbuilt monstrosities packed with features no one asked for but some stakeholder insisted on.</p><p>I&#x2019;ve paid my dues. I&#x2019;ve struggled through Perl scripts that felt like a personal insult, wrestled with PHP spaghetti, and chased down bugs that made me question my life choices. And for the most part, I loved it - except when I didn&#x2019;t.</p><p>But last month, I started paying for <a href="https://cursor.com/?ref=brandons.app" rel="noreferrer"><strong>Cursor</strong></a> - and holy shit, it&#x2019;s like I&#x2019;ve stepped into a cheat code for coding.</p><h2 id="why-cursor-changed-everything">Why Cursor Changed Everything</h2><p>Cursor isn&#x2019;t just another code editor. It&#x2019;s not just a glorified VS Code Plugin. It&#x2019;s a game-changer, a secret weapon, a damn lifesaver for someone like me who&#x2019;s battled dyslexia, ADHD, and a million tabs of Stack Overflow open at once.</p><p>Here&#x2019;s what Cursor has done for me:</p><h3 id="1-i%E2%80%99m-not-afraid-anymore">1. <strong>I&#x2019;m Not Afraid Anymore</strong></h3><p>For years, there were parts of coding that intimidated the hell out of me. Not because I didn&#x2019;t know how to learn them, but because the learning curve felt like staring up at Everest. Writing complex Rust tools? A pipe dream. Debugging some cryptic error that&#x2019;s been staring me in the face for days? Pure hell.</p><p>But with Cursor, I&#x2019;m not just &quot;capable&quot; - I&#x2019;m fearless. It helps me break down problems, suggests solutions, and keeps me moving forward. There&#x2019;s no more getting stuck in the weeds for days because my dyslexic brain couldn&#x2019;t parse something obvious.</p><h3 id="2-bugs-don%E2%80%99t-stand-a-chance">2. <strong>Bugs Don&#x2019;t Stand a Chance</strong></h3><p>You know those bugs that make you want to throw your shit out the window? The ones where your code <em>should</em> work, but it doesn&#x2019;t? And after hours of Googling, it turns out you missed a semicolon or used a single equals instead of a double? Yeah, those don&#x2019;t stand a chance with Cursor.</p><p>It&#x2019;s like having pair programmer who&apos;s WAY more observant than you.  Cursor spots the shit I miss and even explains <em>why</em> it&#x2019;s wrong. It&#x2019;s like having an insanely smart buddy (albeit a bit socially awkward) who doesn&#x2019;t judge you for stupid mistakes.</p><h3 id="3-it-makes-me-faster">3. <strong>It Makes Me Faster</strong></h3><p>I&#x2019;ve always prided myself on being a fast coder. But Cursor? Cursor makes me feel like I&#x2019;m in goddamn super hero. Need to spin up a new feature? Done. Need to refactor a gnarly section of legacy code? No problem. Need to write unit tests (because, yes, I actually write those now)? Cursor&#x2019;s got me covered.</p><p>It&#x2019;s not just about speed, though. It&#x2019;s about quality. I&#x2019;m producing better code in less time because I&#x2019;m not bogged down by minutiae or paralyzed by analysis paralysis. All this said, a non-coder would be fucked in this world. They&apos;d never know how to get out of the loops, or help Cursor identify what&apos;s actually going on - which in some ways is even more frustrating than that phantom bug you&apos;ve been hunting for months.</p><h2 id="superpowers-for-developers">Superpowers for Developers</h2><p>Let me be clear: tools like Cursor aren&#x2019;t here to replace developers. If you&#x2019;re worried about that, stop. Take a deep breath. These tools aren&#x2019;t coming for your job - they&#x2019;re giving you superpowers.</p><p>Think about what this means for the future:</p><ul><li><strong>Creativity unlocked:</strong> We&#x2019;ll be able to build things faster and better than ever before. That side project you&#x2019;ve been dreaming about? It&#x2019;s now a weekend project, not a year-long grind.</li><li><strong>Barriers obliterated:</strong> Complex languages like Rust or obscure frameworks won&#x2019;t scare you anymore. The learning curve is still there, but you&#x2019;ve got a jetpack strapped to your back.</li><li><strong>Collaboration elevated:</strong> Less time wasted on bullshit bugs means more time spent on innovation and problem-solving.</li></ul><p>This isn&#x2019;t about replacing devs; it&#x2019;s about empowering us to do the work we&#x2019;re passionate about without the tedious roadblocks.</p><h2 id="the-reality-check">The Reality Check</h2><p>Let&#x2019;s not sugarcoat it: if you&#x2019;re a junior developer, these tools won&#x2019;t make up for a lack of foundational knowledge. You still need to understand how code works, why design patterns matter, and how to think critically about solving problems. But once you&#x2019;ve got those basics down, tools like Cursor are like giving a marathon runner a jetpack.</p><p>For those of us who&#x2019;ve been in the game for years? It&#x2019;s like seeing color for the first time.</p><h2 id="my-prediction">My Prediction</h2><p>The amount of stuff we&#x2019;re going to be able to crank out in the next five years is going to be <em>insane</em>. Products that once took entire teams months to build will now take a single dev a few weeks. The landscape is shifting, and if you&#x2019;re not using tools like Cursor, you&#x2019;re going to get left behind.</p><p>But the best part? It&#x2019;s not just about efficiency - it&#x2019;s about joy. For the first time in a long time, I&#x2019;m excited about coding again. Cursor has reminded me why I fell in love with this work in the first place.</p><p>So yeah, I can no longer code without Cursor - and honestly, I&#x2019;m cool with that.</p><p>What about you? Have you tried Cursor or another AI-powered coding tool? I&#x2019;d love to hear your thoughts. Drop a comment or hit me up on <a href="https://bsky.app/profile/brandons.app?ref=brandons.app" rel="noreferrer">BlueSky</a>. </p>]]></content:encoded></item><item><title><![CDATA[Startup Require the Brutal Truth - Here’s Why]]></title><description><![CDATA[You’ve got limited resources, big dreams, and a million fires that need putting out yesterday. In the middle of all this chaos, there’s one thing that will absolutely make or break your ability to build something great: brutal honesty.]]></description><link>https://brandons.app/truth-hurts-lies-kill/</link><guid isPermaLink="false">674620478fbb300001e9acf9</guid><category><![CDATA[Startup]]></category><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Wed, 27 Nov 2024 03:40:43 GMT</pubDate><media:content url="https://brandons.app/content/images/2024/11/Startup-Chaos-Scene-Image.webp" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2024/11/Startup-Chaos-Scene-Image.webp" alt="Startup Require the Brutal Truth - Here&#x2019;s Why"><p>Startups are a minefield of uncertainty. You&#x2019;ve got limited resources, big dreams, and a million fires that need putting out yesterday. In the middle of all this chaos, there&#x2019;s one thing that will absolutely make or break your ability to build something great: <strong>brutal honesty. </strong>Not &#x201C;honesty,&#x201D; not &#x201C;constructive feedback,&#x201D; but the <strong>brutal, unvarnished fucking truth</strong>. The kind of truth that stings in the moment but saves your ass long-term. </p><figure class="kg-card kg-image-card"><img src="https://brandons.app/content/images/2024/11/image-8.png" class="kg-image" alt="Startup Require the Brutal Truth - Here&#x2019;s Why" loading="lazy" width="1412" height="912" srcset="https://brandons.app/content/images/size/w600/2024/11/image-8.png 600w, https://brandons.app/content/images/size/w1000/2024/11/image-8.png 1000w, https://brandons.app/content/images/2024/11/image-8.png 1412w" sizes="(min-width: 720px) 720px"></figure><h3 id="the-hard-truth-is-better-than-a-comfortable-lie">The Hard Truth Is Better Than a Comfortable Lie</h3><p>In this phase of creation, every single decision matters. Even the tiny ones - the &#x201C;do we ship this half-baked feature or wait another week?&#x201D; kind of calls. When the truth gets fudged even a little, it creates ripple effects that can derail an entire project.</p><p>Here&#x2019;s an example: Imagine someone on your team says, &#x201C;Yeah, the prototype is basically ready to go,&#x201D; when it&#x2019;s actually a buggy clusterfuck held together by duct tape, nicotine, caffeine and prayers. Maybe they didn&#x2019;t want to disappoint anyone. Maybe they thought they could fix it in time. Either way, now your marketing team is hyping up a launch that&#x2019;s going to absolutely crash and burn - all because someone wasn&#x2019;t honest enough to say, &#x201C;This thing isn&#x2019;t ready, and here&#x2019;s why.&#x201D;</p><p>The lesson? You can work with the truth, no matter how ugly it is. But a lie - even a small one - will kill you. Lies rob you of the chance to address problems head-on, and in a startup, those missed chances can be fatal.</p><h3 id="why-people-avoid-brutal-honesty-and-how-to-fix-it">Why People Avoid Brutal Honesty (and How to Fix It)</h3><p>Let&#x2019;s be real: brutal honesty is uncomfortable as hell. Nobody wants to be the one to say, &#x201C;Hey, this design sucks,&#x201D; or &#x201C;Your idea doesn&#x2019;t make sense.&#x201D; And nobody wants to hear it, either. Our brains are wired to avoid conflict, especially in high-pressure environments where everyone&#x2019;s just trying to keep the wheels from falling off.</p><p>But here&#x2019;s the thing - avoiding conflict doesn&#x2019;t actually reduce conflict. It just buries it until it explodes in your face. A bad idea that goes unchallenged today turns into a massive waste of time and money tomorrow. A teammate who&#x2019;s not pulling their weight now becomes a full-blown liability later.</p><p>The fix? Build a culture where brutal honesty is <em>expected</em>. Here&#x2019;s how:</p><ol><li><strong>Lead by Example</strong>: If you&#x2019;re the founder or team leader, you set the tone. Be the first to call out problems and admit when something&#x2019;s not working. When people see you owning your mistakes, they&#x2019;ll feel safer owning theirs.</li><li><strong>Normalize Feedback</strong>: Make regular, no-bullshit feedback part of your process. Hold retrospectives after sprints, and don&#x2019;t just focus on the good stuff. Ask, &#x201C;What went wrong? What could we have done better?&#x201D;</li><li><strong>Remove Ego from the Equation</strong>: It&#x2019;s not about <em>you</em> - it&#x2019;s about the work. Frame feedback around the problem, not the person. &#x201C;This strategy isn&#x2019;t working&#x201D; is a lot easier to hear than &#x201C;You&#x2019;re screwing everything up.&#x201D;</li><li><strong>Celebrate the Fix, Not the Fault</strong>: When someone points out a problem, don&#x2019;t make them feel like they&#x2019;re the bad guy. Celebrate the fact that they had the guts to speak up. The faster you spot issues, the faster you can solve them.</li></ol><hr><h3 id="brutal-honesty-builds-trust-and-teams-that-actually-work">Brutal Honesty Builds Trust (and Teams That Actually Work)</h3><p>Here&#x2019;s the paradox: brutal honesty, when done right, actually makes your team stronger. Why? Because it builds trust.</p><p>When you know your teammates will tell you the truth - even when it&#x2019;s hard - you stop wasting energy second-guessing them. You stop playing political games. You start focusing on what actually matters: building something awesome together.</p><p>And trust me, when everyone&#x2019;s on the same page, shit gets done. No more tiptoeing around problems. No more &#x201C;everything&#x2019;s fine&#x201D; when it&#x2019;s clearly not. Just a team that&#x2019;s aligned, focused, and ready to haul ass.</p><h3 id="the-takeaway-just-be-honest">The Takeaway: Just Be Honest.</h3><p>Brutal honesty isn&#x2019;t just a &#x201C;nice to have&#x201D; in a startup - it&#x2019;s a necessity. It&#x2019;s the foundation for trust, efficiency, and actually getting things done. The sooner you and your team get comfortable with it, the sooner you can stop spinning your wheels and start making real progress.</p><p>So, the next time you&#x2019;re tempted to sugarcoat the truth or let something slide, ask yourself: &#x201C;Is this helping, or is this hurting?&#x201D; Because in the end, the truth - no matter how brutal - is always better than the alternative.</p><p>And hey, if you need someone to tell you your &#x1F476; baby&#x2019;s ugly, hit me up. I&#x2019;ve got a knack for cutting through the nonsense.</p>]]></content:encoded></item><item><title><![CDATA[📓 Creative Notebook for Nov 24 - Taxes, AI, Personas and Bluesky]]></title><description><![CDATA[This week was a whirlwind of AI, new tools, and even a dive into tax preparation using a locally ran large language model. Here’s what I’ve been working on, learning, and building over the last week.]]></description><link>https://brandons.app/creative-notebook-for-nov-24-2/</link><guid isPermaLink="false">67432ce18fbb300001e9ac24</guid><category><![CDATA[Creative Notebook]]></category><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Sun, 24 Nov 2024 14:37:11 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1453946610176-6be21147c400?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE3fHxub3Rlc3xlbnwwfHx8fDE3MzI0NTg5NjB8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1453946610176-6be21147c400?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE3fHxub3Rlc3xlbnwwfHx8fDE3MzI0NTg5NjB8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x1F4D3; Creative Notebook for Nov 24 - Taxes, AI, Personas and Bluesky"><p>This week was a whirlwind of AI, new tools, and even a dive into tax preparation using a locally ran large language model. Here&#x2019;s what I&#x2019;ve been working on, learning, and building over the last week.</p><h3 id="happy-data-ai-tools"><strong>Happy Data AI Tools</strong></h3><p>I kicked off the week by publishing <a href="https://www.npmjs.com/package/happydata-ai?ref=brandons.app">happydata-ai</a>, a small yet powerful set of utilities I rely on for nearly every AI-driven project. It&#x2019;s designed for OpenAI-compliant endpoints and <a href="https://ollama.com/?ref=brandons.app">Ollama</a>, with features like forced JSON output using <a href="https://zod.dev/?ref=brandons.app">Zod Schemas</a>, variable prompts, PII redaction, and more.</p><p>Should you use it? Honestly, I&#x2019;m not sure&#x2014;but I do, and it makes my life easier. Check it out if you&#x2019;re diving into AI integrations.</p><hr><h3 id="got-on-bluesky"><strong>Got on BlueSky</strong></h3><p>I finally decided to leave the madness of the platform formerly known as Twitter for <a href="https://bsky.app/profiles/brandons.app?ref=brandons.app">BlueSky</a>, and let me tell you&#x2014;it&#x2019;s a breath of fresh air. No echo chambers, just meaningful connections. If you&#x2019;re there, let&#x2019;s connect: <a href="https://bsky.app/profiles/brandons.app?ref=brandons.app">brandons.app</a>.</p><hr><h3 id="prepping-for-taxes-with-ai"><strong>Prepping for Taxes with AI</strong></h3><p>Yes, you read that right: I&#x2019;m tackling tax prep with AI. I started building a tool using <a href="https://bun.sh/?ref=brandons.app">Bun</a> and Ollama to run Llama 3.2-instruct locally on my Mac, ensuring nothing private goes over to OpenAI.</p><p>Here&#x2019;s the process so far:</p><ol><li>Search Gmail for receipts, invoices, and POs.</li><li>Extract attachments and HTML emails, then convert everything to Markdown.</li><li>Pass the Markdown and my <a href="https://zod.dev/?ref=brandons.app">Zod Schema</a> to Llama 3.2 to generate JSON payloads breaking down each item.</li></ol><p>So far, it&#x2019;s working! Next week, I plan to convert the JSON data into a SQLite database, where I&#x2019;ll query and manage it using a tool I built a few weeks back.</p><hr><h3 id="infocap-ai-seminar"><strong>InfoCap AI Seminar</strong></h3><p>This week, I flew to Atlanta to attend InfoCap&#x2019;s <a href="https://infocapnet.com/?ref=brandons.app">AGENTIC AI + Decision Intelligence</a> seminar. It was a small but impactful event, even if a bit of a soft ad for InfoCap.</p><p>I walked away with some fresh ideas, particularly around <a href="https://hazelcast.com/glossary/directed-acyclic-graph/?ref=brandons.app">Directed Acyclic Graphs (DAGs)</a> and the OODA loop (Observe, Orient, Decide, Act). These concepts are already influencing how I approach problem-solving and decision-making in my projects.</p><hr><h3 id="persona-generation-adventure"><strong>Persona Generation Adventure</strong></h3><p>About six months ago, a major client asked me to generate customer personas based on their data. After a five-month wait, I finally received a dataset&#x2026; but couldn&#x2019;t confirm who the data represented. I ran the process, generated personas, and prepped for a leadership pitch.</p><p>Then, my boss asked, &#x201C;Can you confirm where this data came from?&#x201D; (Pro tip: Always do this first!) Turns out, the dataset contained 70,000 non-profit members, most of whom were not customers.</p><p>I reworked the pitch, showcasing the methodology, but made it clear we needed real customer data. Shortly after, I gained access to 400,000 actual customer records and delivered a polished set of personas that resonated with the leadership team. Lesson learned!</p><hr><h3 id="looking-ahead">Looking Ahead</h3><p>From launching AI tools to exploring new platforms and applying decision intelligence frameworks, this week has been equal parts challenging and inspiring. Next week, I&#x2019;ll be diving deeper into the tax tool, refining personas, and exploring even more creative AI applications.</p><p>Let me know what you think of these projects&#x2014;or better yet, share what you&#x2019;re working on. Let&apos;s build something amazing!</p>]]></content:encoded></item><item><title><![CDATA[If it's not a "hell yes", it's a no.]]></title><description><![CDATA[<p><strong>Saying Yes to Myself</strong></p><p>For most of my life, I&#x2019;ve operated by a simple motto: <em>&#x201C;<strong>start with yes</strong>.&#x201D;</em> It&#x2019;s been my guiding principle, shaping the way I approach opportunities, relationships, and even challenges. It&#x2019;s made life improvisational, spontaneous, and adventurous - qualities</p>]]></description><link>https://brandons.app/if-its-not-a-hell-yes-its-a-no/</link><guid isPermaLink="false">674328ed8fbb300001e9abfc</guid><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Thu, 21 Nov 2024 13:31:00 GMT</pubDate><media:content url="https://brandons.app/content/images/2024/11/DALL-E-2024-11-24-08.29.34---A-black-and-white-horizontal-image-depicting-a-man-in-a-dark--minimalist-setting-trying-to-juggle-an-overwhelming-number-of-objects.-The-figure-is-ill.webp" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2024/11/DALL-E-2024-11-24-08.29.34---A-black-and-white-horizontal-image-depicting-a-man-in-a-dark--minimalist-setting-trying-to-juggle-an-overwhelming-number-of-objects.-The-figure-is-ill.webp" alt="If it&apos;s not a &quot;hell yes&quot;, it&apos;s a no."><p><strong>Saying Yes to Myself</strong></p><p>For most of my life, I&#x2019;ve operated by a simple motto: <em>&#x201C;<strong>start with yes</strong>.&#x201D;</em> It&#x2019;s been my guiding principle, shaping the way I approach opportunities, relationships, and even challenges. It&#x2019;s made life improvisational, spontaneous, and adventurous - qualities that have brought me countless memories, projects, and connections I wouldn&#x2019;t trade for anything.</p><p>However recently, I&#x2019;ve been reflecting on what saying &#x201C;yes&#x201D; has actually cost me over the years.</p><p>When I was younger, &#x201C;start with yes&#x201D; felt like the right mindset. It was about exploring the world, chasing ideas, and seeing where the current would take me. But as I&apos;ve gotten older, I&#x2019;ve noticed how easy it is for that motto to pull me away from the things that truly matter to me. Opportunities can be enticing, distractions can masquerade as growth, and before I know it, I&#x2019;m pouring my energy into things that aren&#x2019;t aligned with my own journey.</p><p>It&#x2019;s not always easy to recognize when it&#x2019;s happening, but the effects are clear: I&#x2019;ve often focused more on saying yes to the world around me than on saying yes to myself.</p><h4 id="the-shift-from-%E2%80%9Cyes%E2%80%9D-to-what-matters">The Shift: From &#x201C;Yes&#x201D; to What Matters</h4><p>In 2025, I&#x2019;m making a change. Instead of starting with yes, I&#x2019;m adopting a new motto: <strong>If it&#x2019;s not a &#x201C;hell yes,&#x201D; it&#x2019;s a no.</strong></p><p>This isn&#x2019;t just about being selective&#x2014;it&#x2019;s about being intentional. It&#x2019;s about honoring my time, my energy, and my purpose. The things I say yes to should excite me, inspire me, and move me forward. If they don&#x2019;t? They&#x2019;ll need to wait for someone else&#x2019;s &#x201C;yes.&#x201D;</p><p>This shift feels necessary. I&#x2019;ve spent so much of my life trying to be too many things to too many people, leaving less and less for myself. That&#x2019;s not sustainable, and frankly, it&#x2019;s not fair to me - or to the things and people I genuinely care about.</p><h4 id="why-this-matters">Why This Matters</h4><p>Saying no can be hard, especially when you&#x2019;re someone who thrives on creativity, collaboration, and the thrill of the new. But I&#x2019;ve realized that every &#x201C;yes&#x201D; carries a cost. It&#x2019;s not just time - it&#x2019;s focus, attention, and emotional bandwidth. By saying yes to the wrong things, I&#x2019;ve been saying no to the projects, ideas, and people who deserve my best self.</p><p>For me, 2025 is about reclaiming my energy. It&#x2019;s about focusing on what matters most&#x2014;whether that&#x2019;s diving into exciting projects, spending quality time with my family, or even just taking the time to breathe and reflect.</p><h4 id="what%E2%80%99s-next">What&#x2019;s Next</h4><p>I&#x2019;m not giving up on being open-minded, or curious - those qualities are simply too much integrated in to my being. But I&#x2019;m learning that boundaries aren&#x2019;t limits; they&#x2019;re guideposts. They help us move forward with clarity and purpose.</p><p>So, here&#x2019;s to 2025: the year of the &#x201C;hell yes.&#x201D; If it&#x2019;s not something that lights me up, aligns with my values, and moves me closer to my goals, it&#x2019;s a no.</p><p>I&#x2019;m looking forward to seeing what this new mindset unlocks. And if you&#x2019;re someone who&#x2019;s struggled with balancing openness and focus, maybe this motto will resonate with you too.</p><p>After all, life&#x2019;s too short for half-hearted &#x201C;yeses.&#x201D; Let&#x2019;s save our energy for the things that truly deserve it.</p><hr><p><em>What&#x2019;s your motto for 2025? </em></p>]]></content:encoded></item><item><title><![CDATA[The Cost of Passion: How My Aversion to Money Impacted My Business]]></title><description><![CDATA[I'm not motivated by money. Sure, I like it. I need it. But it's never been what gets me up in the morning. And this year, it bit me in the ass.]]></description><link>https://brandons.app/i-hate-making-money/</link><guid isPermaLink="false">67338d618fbb300001e9ab70</guid><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Tue, 12 Nov 2024 17:49:48 GMT</pubDate><media:content url="https://brandons.app/content/images/2024/11/Brandon-App-Image-Nov-12-2024.webp" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2024/11/Brandon-App-Image-Nov-12-2024.webp" alt="The Cost of Passion: How My Aversion to Money Impacted My Business"><p><strong>I&apos;m not motivated by money</strong>.  Sure, I like it. I need it. But it&apos;s never been what gets me up in the morning. Even now, I&apos;m in the top 90% of earners in the United States, and yet I still hate making it. It&apos;s not that I dislike having money; I love the freedom it provides. I just can&apos;t stand the part where you have to chase it. The thought of clawing for every dollar or negotiating every deal down to the last cent doesn&apos;t fill me with energy&#x2014;it drains me.</p><p>This lack of motivation to fight for money goes way back. When I was a a wee lad, I was hanging out with a group of friends, and one of them threw a couple of dollars on the ground&#x2014;I think it was three or four crumpled bills, nothing major. But what happened next was pure madness. My friends lunged for those bills like their lives depended on it. It turned into a real-life <em>Lord of the Flies</em>. Bodies scrambling, tripping over each other, all for a few  bucks. And there I was standing there watching the chaos unfold. I remember thinking, &quot;I don&#x2019;t have that in me.&quot; I didn&apos;t want it that badly That was the first time I realized that I don&#x2019;t have that natural instinct to fight for money.</p><figure class="kg-card kg-image-card"><img src="https://brandons.app/content/images/2024/11/DALL-E-Image-Nov-12-2024.webp" class="kg-image" alt="The Cost of Passion: How My Aversion to Money Impacted My Business" loading="lazy" width="1792" height="1024" srcset="https://brandons.app/content/images/size/w600/2024/11/DALL-E-Image-Nov-12-2024.webp 600w, https://brandons.app/content/images/size/w1000/2024/11/DALL-E-Image-Nov-12-2024.webp 1000w, https://brandons.app/content/images/size/w1600/2024/11/DALL-E-Image-Nov-12-2024.webp 1600w, https://brandons.app/content/images/2024/11/DALL-E-Image-Nov-12-2024.webp 1792w" sizes="(min-width: 720px) 720px"></figure><p>Fast forward to today, and not much has changed. I still don&apos;t have that fight. The amount of hours I&#x2019;ve worked for clients without billing them&#x2014;well, let&#x2019;s just say it would make my wife weep. It&#x2019;s not that I&#x2019;m unaware of my value or that I think my time is worth less. It&#x2019;s that I genuinely love what I do. I love the problems my clients bring to me. I love the thrill of diving in headfirst and working through challenges, the satisfaction of cracking something wide open that seemed impossible. I love the <em>work</em>. And because I love it, money always seems like an afterthought. I get into the flow, solve problems, make things happen&#x2014;and then I forget to care about the invoice.</p><p>I&#x2019;m fortunate, for sure. My family doesn&#x2019;t have to worry too much about money. We&#x2019;re good&#x2014;except, of course, when Tax Day comes around, and I realize I&#x2019;ve been a little too generous with my time. </p><p>Last year, I took on a new client that I absolutely love working with. They&#x2019;re fantastic&#x2014;passionate, interesting, doing work that is genuinely the most interesting I&apos;ve ever work with. When we first started, I quoted them 10 to 15 hours  per week. But here&#x2019;s the thing: I don&#x2019;t do well with keeping track of hours. If I&#x2019;m motivated by the work, I&#x2019;ll work however long it takes to get the task at hand done. I won&#x2019;t cut myself off because I hit some arbitrary limit. I just do the work because, honestly, I want to see it finished, and I want to see it done well.</p><p>And so, week after week, this 10 to 15 hours ends up being more like 20, then 25, then 30 hours some weeks. I just kept telling myself &quot;It&apos;s fine, I&apos;ll make it up later,&quot; or &quot;This is just what is needed right now.&quot;</p><p>But then as the end of the year nears, and I had to face the numbers. I had to look at what I&#x2019;d actually billed versus what I&#x2019;d actually worked. I left a lot of money on the table this year. I loved the work I did, and I&#x2019;m proud of what I accomplished, but the truth is, I wasn&#x2019;t fair to myself, to my family, or even to my other clients. </p><p>I got so caught up in the passion, in the love of the work, that I lost sight of the bigger picture &#x2014; the business side of things, the sustainability.</p><p>This realization has forced me to reevaluate how I approach my work and my relationships with clients. I&#x2019;ve had to accept that being passionate about the work is great, but it can&#x2019;t come at the cost of financial stability &#x2014; for me or for my family. I need to get better at setting boundaries, at valuing my time properly, at diversifying my energy across all my clients instead of getting tunnel vision on just one.</p><p>So, as I move into 2025, I&#x2019;m making some changes. I&#x2019;m readjusting my engagements. I&#x2019;m putting systems in place to keep myself accountable, to make sure I&#x2019;m billing  accurately, to make sure I&#x2019;m spreading my time where it needs to be spread. I&#x2019;m still not motivated by money, and I probably never will be &#x2014; but I&#x2019;m learning that it&#x2019;s okay to prioritize it sometimes. It&#x2019;s okay to say, &quot;This is what my time is worth, and I need to honor that.&quot;</p><p>I know I&#x2019;m not alone in this struggle. There are so many of us who love what we do, who are driven by the work itself rather than the paycheck. And that&#x2019;s a beautiful thing. But it can also be dangerous if we let it go unchecked. Passion is powerful, but so is financial health. And in 2025, I&#x2019;m aiming to find the balance between the two &#x2014; so that I can keep doing what I love without sacrificing the stability that my family and I deserve.</p>]]></content:encoded></item><item><title><![CDATA[Bring your own AI]]></title><description><![CDATA[<p><strong>Bring Your Own AI (BYOAI) - Empowering Users in the Age of Artificial Intelligence</strong></p><p>AI has become an integral part of the services we use daily. From personalized recommendations to intelligent automation, AI enhances user experiences across platforms. However, as companies increasingly integrate AI into their products, a pressing concern</p>]]></description><link>https://brandons.app/bring-your-own-ai/</link><guid isPermaLink="false">6730df2b8fbb300001e9ab15</guid><dc:creator><![CDATA[Brandon Corbin]]></dc:creator><pubDate>Sun, 10 Nov 2024 16:36:52 GMT</pubDate><media:content url="https://brandons.app/content/images/2024/11/DALL-E-Nov-10-Image-of-Man-with-Robot.webp" medium="image"/><content:encoded><![CDATA[<img src="https://brandons.app/content/images/2024/11/DALL-E-Nov-10-Image-of-Man-with-Robot.webp" alt="Bring your own AI"><p><strong>Bring Your Own AI (BYOAI) - Empowering Users in the Age of Artificial Intelligence</strong></p><p>AI has become an integral part of the services we use daily. From personalized recommendations to intelligent automation, AI enhances user experiences across platforms. However, as companies increasingly integrate AI into their products, a pressing concern arises: the lack of transparency and control over these AI systems.</p><p>Most AI solutions provided by companies operate as black boxes. Users have little insight into how these models function, how they handle data, or what decisions they make on their behalf. This opacity raises significant issues around privacy, trust, and user autonomy.</p><p>Enter <strong>Bring Your Own AI (BYOAI)</strong>&#x2014;an approach that empowers users to connect their trusted AI services to the platforms they use. Instead of relying on proprietary AI models with unknown practices, users can choose AI providers they trust, ensuring greater transparency and control over their data.</p><h3 id="what-is-byoai"><strong>What is BYOAI?</strong></h3><p>BYOAI is a framework that allows users to integrate their preferred AI services into various platforms. Imagine logging into a SaaS application or a website and having the option to:</p><ul><li><strong>Connect with OpenAI</strong></li><li><strong>Connect with Groq</strong></li><li><strong>Connect with Ollama</strong></li></ul><p>By selecting one of these options, you&apos;re linking your personal AI account to the platform. From that point forward, any AI functionalities within the platform utilize your chosen AI service.</p><h3 id="why-is-byoai-important"><strong>Why is BYOAI Important?</strong></h3><ol><li><strong>Enhanced Transparency and Trust</strong>Users gain confidence knowing they control the AI interacting with their data. This transparency fosters a stronger trust relationship between users and platforms.</li><li><strong>Personalized User Experience</strong>By choosing their AI service, users can select models that best understand their preferences and needs, leading to a more tailored experience.</li><li><strong>Data Privacy and Control</strong>BYOAI ensures that users&apos; data is processed by AI services they trust, addressing concerns about data misuse or unauthorized access.</li><li><strong>Regulatory Compliance</strong>As data protection regulations like GDPR and CCPA emphasize user consent and control, BYOAI helps platforms align with these requirements by giving users autonomy over their data.</li></ol><h3 id="the-future-of-human-ai-relationships"><strong>The Future of Human-AI Relationships</strong></h3><p>The BYOAI model represents a significant shift towards a more ethical and user-centric AI ecosystem. It acknowledges that while AI can greatly enhance our digital experiences, users should have a say in how it&apos;s implemented in their lives.</p><p>In the future, as AI becomes even more pervasive, the balance between innovation and user rights will be crucial. BYOAI offers a pathway to maintain this balance, ensuring that advancements in AI technology do not come at the expense of user trust and autonomy.</p><h3 id="conclusion"><strong>Conclusion</strong></h3><p>The adoption of BYOAI has the potential to redefine how we interact with AI in our daily digital activities. By prioritizing user choice and transparency, we can build a more trustworthy and ethical AI landscape.</p><h1 id="proposal-for-implementing-bring-your-own-ai-byoai-framework"><strong> Proposal for Implementing &quot;Bring Your Own AI&quot; (BYOAI) Framework</strong></h1><h3 id></h3><h3 id="1-executive-summary"><strong>1. Executive Summary</strong></h3><p>This proposal outlines a detailed plan to implement the &quot;Bring Your Own AI&quot; (BYOAI) framework, enabling users to connect their preferred AI services to SaaS platforms, websites, and applications. By leveraging existing frameworks like OAuth 2.0 for secure authentication and the OpenAI API specification for standardized AI interactions, we aim to create a seamless, user-centric AI integration model that enhances transparency, control, and trust.</p><h3 id="2-introduction"><strong>2. Introduction</strong></h3><p>As AI becomes ubiquitous in digital platforms, users are increasingly concerned about data privacy, transparency, and control over AI interactions. Proprietary AI models often lack transparency, operating as black boxes that process user data without clear user consent or understanding.</p><p>The BYOAI framework addresses these concerns by allowing users to integrate AI services they trust into the platforms they use. This proposal provides a comprehensive plan for executing and rolling out this framework, leveraging existing standards and technologies to ensure feasibility and scalability.</p><h3 id="3-objectives"><strong>3. Objectives</strong></h3><ul><li><strong>Empower Users:</strong> Allow users to choose and connect their preferred AI services.</li><li><strong>Enhance Transparency:</strong> Provide clear information about how AI services process user data.</li><li><strong>Ensure Security and Compliance:</strong> Utilize secure authentication methods and comply with data protection regulations.</li><li><strong>Leverage Existing Frameworks:</strong> Build upon established technologies like OAuth 2.0 and the OpenAI API spec.</li></ul><h3 id="4-technical-overview"><strong>4. Technical Overview</strong></h3><h4 id="41-architecture-design"><strong>4.1 Architecture Design</strong></h4><p>The BYOAI framework consists of several key components:</p><ul><li><strong>User Interface (UI):</strong> Where users select and connect their AI services.</li><li><strong>Integration Layer:</strong> Handles communication between the platform and various AI services.</li><li><strong>Authentication Module:</strong> Manages secure connections using OAuth 2.0.</li><li><strong>Data Processing Module:</strong> Ensures data is appropriately formatted and routed to the connected AI service.</li><li><strong>Compliance Layer:</strong> Monitors and enforces data protection and privacy regulations.</li></ul><h4 id="42-leveraging-existing-frameworks"><strong>4.2 Leveraging Existing Frameworks</strong></h4><h5 id="421-oauth-20-for-authentication-and-authorization"><strong>4.2.1 OAuth 2.0 for Authentication and Authorization</strong></h5><p>OAuth 2.0 is an industry-standard protocol for authorization, allowing third-party applications to access user data without exposing credentials. It provides:</p><ul><li><strong>Secure Authentication:</strong> Users can securely connect their AI accounts.</li><li><strong>Access Control:</strong> Users grant specific permissions to the platform.</li><li><strong>Revocation Capability:</strong> Users can revoke access at any time.</li></ul><h5 id="422-openai-api-specification"><strong>4.2.2 OpenAI API Specification</strong></h5><p>The OpenAI API spec is becoming a de facto standard for AI service interactions. Utilizing this spec provides:</p><ul><li><strong>Standardization:</strong> Consistent API endpoints and data formats.</li><li><strong>Compatibility:</strong> Easier integration with multiple AI providers following the spec.</li><li><strong>Extensibility:</strong> Ability to support additional functionalities as the spec evolves.</li></ul><hr><h3 id="5-implementation-details"><strong>5. Implementation Details</strong></h3><h4 id="51-api-integration-layer"><strong>5.1 API Integration Layer</strong></h4><ul><li><strong>Abstracted API Calls:</strong> Create an abstraction layer that standardizes API calls to different AI services.</li><li><strong>Dynamic Endpoint Management:</strong> Use service discovery or configuration files to manage different AI endpoints.</li><li><strong>Error Handling:</strong> Implement robust error handling for API call failures, rate limits, and service unavailability.</li></ul><p><strong>Sample Code Snippet:</strong></p><pre><code class="language-python">def send_request_to_ai_service(user, data):
    ai_service = user.connected_ai_service
    if ai_service == &apos;OpenAI&apos;:
        response = openai_api.call(data)
    elif ai_service == &apos;Groq&apos;:
        response = groq_api.call(data)
    else:
        response = default_ai_service.call(data)
    return response
</code></pre><p><em>(Refer to Appendix B for full code examples.)</em></p><h4 id="52-user-interface-and-experience"><strong>5.2 User Interface and Experience</strong></h4><ul><li><strong>Connection Workflow:</strong><ul><li><strong>Step 1:</strong> User navigates to the AI integration settings.</li><li><strong>Step 2:</strong> User selects &quot;Connect with [AI Service]&quot;.</li><li><strong>Step 3:</strong> User is redirected to the AI service&apos;s OAuth consent page.</li><li><strong>Step 4:</strong> Upon successful authentication, the user is redirected back to the platform.</li></ul></li><li><strong>Management Dashboard:</strong><ul><li>Display connected AI services.</li><li>Provide options to disconnect or switch services.</li><li>Show data usage and permissions.</li></ul></li></ul><p><strong>UI Considerations:</strong></p><ul><li><strong>Clarity:</strong> Use clear language to explain what connecting an AI service entails.</li><li><strong>Simplicity:</strong> Make the connection process straightforward.</li><li><strong>Support:</strong> Provide help resources for troubleshooting.</li></ul><h4 id="53-security-and-compliance"><strong>5.3 Security and Compliance</strong></h4><ul><li><strong>Data Encryption:</strong><ul><li>Use HTTPS for all data transmission.</li><li>Encrypt sensitive data at rest using AES-256 or equivalent.</li></ul></li><li><strong>Access Tokens:</strong><ul><li>Store OAuth tokens securely.</li><li>Implement token refresh mechanisms.</li></ul></li><li><strong>Privacy Compliance:</strong><ul><li>Update privacy policies to reflect data handling practices.</li><li>Ensure user consent aligns with GDPR, CCPA, and other regulations.</li></ul></li></ul><p>By adopting the BYOAI framework, we not only enhance user experience but also position ourselves at the forefront of ethical AI integration. This proposal serves as a roadmap to achieve a more transparent, user-controlled AI ecosystem.</p>]]></content:encoded></item></channel></rss>