<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: goldct</title>
    <description>The latest articles on DEV Community by goldct (@goldct).</description>
    <link>https://dev.to/goldct</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3876917%2Ff91679f8-a9fd-492f-8f8c-5036fe56c95b.png</url>
      <title>DEV Community: goldct</title>
      <link>https://dev.to/goldct</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/goldct"/>
    <language>en</language>
    <item>
      <title>The Complete Guide to MCP (Model Context Protocol) in 2025</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Wed, 29 Apr 2026 23:06:35 +0000</pubDate>
      <link>https://dev.to/goldct/the-complete-guide-to-mcp-model-context-protocol-in-2025-3cn5</link>
      <guid>https://dev.to/goldct/the-complete-guide-to-mcp-model-context-protocol-in-2025-3cn5</guid>
      <description>&lt;h2&gt;
  
  
  What is MCP?
&lt;/h2&gt;

&lt;p&gt;Model Context Protocol is an open standard that lets AI assistants connect to external tools and data. Think of it as a universal plugin system for AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why MCP Matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Standardized&lt;/strong&gt;: One protocol works across Claude, Cursor, Windsurf&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growing fast&lt;/strong&gt;: 900+ servers already available&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open source&lt;/strong&gt;: Community-driven ecosystem&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Pick tools from &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Copy the install command&lt;/li&gt;
&lt;li&gt;Add to your MCP config&lt;/li&gt;
&lt;li&gt;Restart your AI assistant&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Top Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Database connectors&lt;/li&gt;
&lt;li&gt;File system tools&lt;/li&gt;
&lt;li&gt;Web scraping&lt;/li&gt;
&lt;li&gt;DevOps automation&lt;/li&gt;
&lt;li&gt;Creative tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Browse 900+ tools at &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Free directory, updated every 6 hours.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why I Chose Next.js for My AI-Powered Directory</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Tue, 28 Apr 2026 23:06:41 +0000</pubDate>
      <link>https://dev.to/goldct/why-i-chose-nextjs-for-my-ai-powered-directory-32o8</link>
      <guid>https://dev.to/goldct/why-i-chose-nextjs-for-my-ai-powered-directory-32o8</guid>
      <description>&lt;h2&gt;
  
  
  The Project
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt; — 900+ MCP tools with quality scoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Next.js?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;SSR for SEO&lt;/strong&gt; — Tool pages render server-side for search engines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Routes&lt;/strong&gt; — Built-in backend for scoring and search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Static Generation&lt;/strong&gt; — Fast page loads with ISR&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vercel Deployment&lt;/strong&gt; — Zero-config deploy&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Next.js 16 with App Router&lt;/li&gt;
&lt;li&gt;Static data pipeline (Python agents)&lt;/li&gt;
&lt;li&gt;Tailwind v4 for styling&lt;/li&gt;
&lt;li&gt;Vercel Analytics for tracking&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Sub-second page loads&lt;/li&gt;
&lt;li&gt;Great SEO rankings&lt;/li&gt;
&lt;li&gt;Zero maintenance server costs&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Check the result: &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why I Chose Next.js for My AI-Powered Directory</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Sun, 26 Apr 2026 23:06:39 +0000</pubDate>
      <link>https://dev.to/goldct/why-i-chose-nextjs-for-my-ai-powered-directory-2506</link>
      <guid>https://dev.to/goldct/why-i-chose-nextjs-for-my-ai-powered-directory-2506</guid>
      <description>&lt;h2&gt;
  
  
  The Project
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt; — 900+ MCP tools with quality scoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Next.js?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;SSR for SEO&lt;/strong&gt; — Tool pages render server-side for search engines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Routes&lt;/strong&gt; — Built-in backend for scoring and search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Static Generation&lt;/strong&gt; — Fast page loads with ISR&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vercel Deployment&lt;/strong&gt; — Zero-config deploy&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Next.js 16 with App Router&lt;/li&gt;
&lt;li&gt;Static data pipeline (Python agents)&lt;/li&gt;
&lt;li&gt;Tailwind v4 for styling&lt;/li&gt;
&lt;li&gt;Vercel Analytics for tracking&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Sub-second page loads&lt;/li&gt;
&lt;li&gt;Great SEO rankings&lt;/li&gt;
&lt;li&gt;Zero maintenance server costs&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Check the result: &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Complete Guide to MCP (Model Context Protocol) in 2025</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Sat, 25 Apr 2026 23:12:16 +0000</pubDate>
      <link>https://dev.to/goldct/the-complete-guide-to-mcp-model-context-protocol-in-2025-2de5</link>
      <guid>https://dev.to/goldct/the-complete-guide-to-mcp-model-context-protocol-in-2025-2de5</guid>
      <description>&lt;h2&gt;
  
  
  What is MCP?
&lt;/h2&gt;

&lt;p&gt;Model Context Protocol is an open standard that lets AI assistants connect to external tools and data. Think of it as a universal plugin system for AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why MCP Matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Standardized&lt;/strong&gt;: One protocol works across Claude, Cursor, Windsurf&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growing fast&lt;/strong&gt;: 900+ servers already available&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open source&lt;/strong&gt;: Community-driven ecosystem&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Pick tools from &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Copy the install command&lt;/li&gt;
&lt;li&gt;Add to your MCP config&lt;/li&gt;
&lt;li&gt;Restart your AI assistant&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Top Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Database connectors&lt;/li&gt;
&lt;li&gt;File system tools&lt;/li&gt;
&lt;li&gt;Web scraping&lt;/li&gt;
&lt;li&gt;DevOps automation&lt;/li&gt;
&lt;li&gt;Creative tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Browse 900+ tools at &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Free directory, updated every 6 hours.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I Built a Free iOS App for BJD Collectors</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Sat, 25 Apr 2026 11:31:12 +0000</pubDate>
      <link>https://dev.to/goldct/i-built-a-free-ios-app-for-bjd-collectors-4213</link>
      <guid>https://dev.to/goldct/i-built-a-free-ios-app-for-bjd-collectors-4213</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;If you are a BJD (Ball-Jointed Doll) collector, you know the struggle of tracking your dolls in spreadsheets and notes.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;BJD Doll Archive&lt;/strong&gt; — a free iOS app designed specifically for BJD collectors.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Doll profiles&lt;/strong&gt; — add photos, names, and custom details for each doll&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track customizations&lt;/strong&gt; — face-ups, body blushing, modifications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set reminders&lt;/strong&gt; — resin delivery dates, face-up appointments, payment schedules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4 languages&lt;/strong&gt; — English, Chinese, Japanese, Korean&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy first&lt;/strong&gt; — no account needed, data stays on your device&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;Built with SwiftUI and Core Data. No backend, no accounts, no data collection. Your collection is private.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Learnings
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Niche communities deserve niche tools&lt;/strong&gt; — BJD collectors have very specific needs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-first design wins&lt;/strong&gt; — collectors prefer apps that dont upload their data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multilingual support is essential&lt;/strong&gt; — the BJD community is truly global&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is Next
&lt;/h2&gt;

&lt;p&gt;Based on feedback, the top requested feature is a photo gallery for each doll — multiple photos to track changes over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Search &lt;strong&gt;BJD Doll Archive&lt;/strong&gt; on the App Store or visit: &lt;a href="https://apps.apple.com/us/app/bjd-doll-archive/id6759537855" rel="noopener noreferrer"&gt;https://apps.apple.com/us/app/bjd-doll-archive/id6759537855&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to hear what features you want! 🎎&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swiftui</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>---</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Fri, 24 Apr 2026 15:40:35 +0000</pubDate>
      <link>https://dev.to/goldct/--cm2</link>
      <guid>https://dev.to/goldct/--cm2</guid>
      <description>&lt;p&gt;description: "How I built a privacy-first iOS app for BJD doll enthusiasts using SwiftUI, CoreData, and local notifications."&lt;br&gt;
published: false&lt;br&gt;
tags: swiftui, ios, indiedev, appdev&lt;/p&gt;
&lt;h2&gt;
  
  
  cover_image: /assets/bjd-cover.jpg
&lt;/h2&gt;

&lt;p&gt;As an iOS developer and BJD (Ball-Jointed Doll) collector, I found myself managing my growing doll collection with spreadsheets, random notes, and calendar reminders. It was messy.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;BJD Doll Archive&lt;/strong&gt; — a dedicated app that understands the specific needs of BJD collectors.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;BJD collecting involves a lot of tracking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Doll details&lt;/strong&gt;: brand, sculpt, model, face-up artist, purchase date&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Care schedules&lt;/strong&gt;: MSC coating refreshes, stain checks, light protection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vendor experiences&lt;/strong&gt;: which face-up artists deliver quality work, which shops are reliable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Photos&lt;/strong&gt;: documenting customization progress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Generic inventory apps don't understand BJD-specific concepts like "face-up refresh cycle" or "resin yellowing prevention."&lt;/p&gt;
&lt;h2&gt;
  
  
  The Solution: SwiftUI + Local-First Architecture
&lt;/h2&gt;
&lt;h3&gt;
  
  
  SwiftUI for Rapid UI Development
&lt;/h3&gt;

&lt;p&gt;SwiftUI made it straightforward to build the kind of detail-oriented forms BJD collectors need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kd"&gt;struct&lt;/span&gt; &lt;span class="kt"&gt;DollProfile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;View&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;@State&lt;/span&gt; &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;doll&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Doll&lt;/span&gt;

    &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kd"&gt;some&lt;/span&gt; &lt;span class="kt"&gt;View&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;Form&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="kt"&gt;Section&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Basic Info"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="kt"&gt;TextField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Name"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;$doll&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="kt"&gt;Picker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Brand"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;selection&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;$doll&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;brand&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="kt"&gt;ForEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Brand&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;allCases&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="kt"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rawValue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="kt"&gt;Section&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Face-up"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="kt"&gt;TextField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Artist"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;$doll&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;faceUpArtist&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="kt"&gt;DatePicker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Last Refresh"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;selection&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;$doll&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lastFaceUp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Privacy-First: No Backend
&lt;/h3&gt;

&lt;p&gt;BJD collections can be valuable and personal. I made a deliberate choice to keep &lt;strong&gt;all data on-device&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CoreData for local persistence&lt;/li&gt;
&lt;li&gt;No user accounts&lt;/li&gt;
&lt;li&gt;No cloud sync&lt;/li&gt;
&lt;li&gt;No analytics tracking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This means the app works offline and your collection data never leaves your phone.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local Notifications for Care Reminders
&lt;/h3&gt;

&lt;p&gt;The care reminder system uses &lt;code&gt;UNUserNotificationCenter&lt;/code&gt; with custom repeat intervals:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kd"&gt;func&lt;/span&gt; &lt;span class="nf"&gt;scheduleCareReminder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;doll&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Doll&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;CareType&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;UNMutableNotificationContent&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Care Reminder"&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Time to &lt;/span&gt;&lt;span class="se"&gt;\(&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="s"&gt; for &lt;/span&gt;&lt;span class="se"&gt;\(&lt;/span&gt;&lt;span class="n"&gt;doll&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;

    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;trigger&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;UNCalendarNotificationTrigger&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nv"&gt;dateMatching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;nextDateComponents&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;from&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;doll&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="nv"&gt;repeats&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;UNNotificationRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nv"&gt;identifier&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\(&lt;/span&gt;&lt;span class="n"&gt;doll&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="se"&gt;\(&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nv"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nv"&gt;trigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;trigger&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="kt"&gt;UNUserNotificationCenter&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;current&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Niche apps have loyal users&lt;/strong&gt; — The BJD community is passionate and underserved by mainstream apps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy matters more than you think&lt;/strong&gt; — Collectors appreciate that their data stays local&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple &amp;gt; Feature-rich&lt;/strong&gt; — Resistance to feature creep kept the app focused&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-time purchase &amp;gt; Subscription&lt;/strong&gt; — For niche tools, users prefer paying once&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Japanese and Korean localization (BJD is huge in these markets)&lt;/li&gt;
&lt;li&gt;iPad support for larger photo viewing&lt;/li&gt;
&lt;li&gt;Export/import for backup&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;BJD Doll Archive&lt;/strong&gt; is available on the &lt;a href="https://apps.apple.com/app/bjd-doll-archive/id6759537855" rel="noopener noreferrer"&gt;App Store&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you're interested in indie iOS development or BJD collecting, let's connect!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://apps.apple.com/app/bjd-doll-archive/id6759537855" rel="noopener noreferrer"&gt;Download BJD Doll Archive →&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>swiftui</category>
      <category>ios</category>
      <category>indiedev</category>
      <category>appdev</category>
    </item>
    <item>
      <title>I Built an AI Fortune Telling App with SwiftUI — Meet Arcana Stars</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Sun, 19 Apr 2026 00:08:34 +0000</pubDate>
      <link>https://dev.to/goldct/i-built-an-ai-fortune-telling-app-with-swiftui-meet-arcana-stars-3p6f</link>
      <guid>https://dev.to/goldct/i-built-an-ai-fortune-telling-app-with-swiftui-meet-arcana-stars-3p6f</guid>
      <description>&lt;h1&gt;
  
  
  Arcana Stars: AI-Powered Fortune Telling
&lt;/h1&gt;

&lt;p&gt;What happens when you combine Tarot, astrology, and AI?&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;78 Tarot Cards&lt;/strong&gt; with AI readings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;12 Zodiac Daily Horoscopes&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crystal Ball&lt;/strong&gt; — AI yes/no predictions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Love Compatibility&lt;/strong&gt; — zodiac matching&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SwiftUI (zero UIKit)&lt;/li&gt;
&lt;li&gt;GLM-4-Flash API (free tier!)&lt;/li&gt;
&lt;li&gt;StoreKit 2 subscriptions&lt;/li&gt;
&lt;li&gt;Zero third-party dependencies&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why
&lt;/h2&gt;

&lt;p&gt;I wanted to prove a solo dev can build a polished AI app without expensive APIs or a design team.&lt;/p&gt;

&lt;h2&gt;
  
  
  Status
&lt;/h2&gt;

&lt;p&gt;Currently &lt;strong&gt;under App Store review&lt;/strong&gt;! 🤞&lt;/p&gt;

&lt;p&gt;Follow for updates. Happy to share technical details if interested!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with ❤️ and AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>indiedev</category>
      <category>ai</category>
    </item>
    <item>
      <title>From Zero to MCP: How I Automated My Entire Workflow</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Tue, 14 Apr 2026 11:56:07 +0000</pubDate>
      <link>https://dev.to/goldct/from-zero-to-mcp-how-i-automated-my-entire-workflow-1nnm</link>
      <guid>https://dev.to/goldct/from-zero-to-mcp-how-i-automated-my-entire-workflow-1nnm</guid>
      <description>&lt;h2&gt;
  
  
  Before MCP
&lt;/h2&gt;

&lt;p&gt;Every task was manual:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write SQL, copy results, paste in chat&lt;/li&gt;
&lt;li&gt;Open files one by one for AI to read&lt;/li&gt;
&lt;li&gt;Manually create GitHub issues&lt;/li&gt;
&lt;li&gt;Check servers in terminal&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  After MCP
&lt;/h2&gt;

&lt;p&gt;Everything happens in one chat:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hey Claude, what are the top selling products this month?&lt;/li&gt;
&lt;li&gt;Read the config file and tell me what needs fixing&lt;/li&gt;
&lt;li&gt;Create an issue for this bug&lt;/li&gt;
&lt;li&gt;Check if the container is running&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Setup
&lt;/h2&gt;

&lt;p&gt;I installed 5 MCP servers in 10 minutes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PostgreSQL — database queries&lt;/li&gt;
&lt;li&gt;Filesystem — file access&lt;/li&gt;
&lt;li&gt;GitHub — repo management&lt;/li&gt;
&lt;li&gt;Docker — container status&lt;/li&gt;
&lt;li&gt;Brave Search — web lookup&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Finding Tools
&lt;/h2&gt;

&lt;p&gt;Browse 900+ at &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt; with quality scores and one-click install.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;I went from 2 hours of context switching per day to near zero. MCP is a game changer.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What would you automate with MCP? Share your use case!&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why Every Developer Should Care About Model Context Protocol</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Tue, 14 Apr 2026 11:50:45 +0000</pubDate>
      <link>https://dev.to/goldct/why-every-developer-should-care-about-model-context-protocol-4njf</link>
      <guid>https://dev.to/goldct/why-every-developer-should-care-about-model-context-protocol-4njf</guid>
      <description>&lt;h2&gt;
  
  
  The Shift
&lt;/h2&gt;

&lt;p&gt;AI assistants are no longer just chatbots. They can now access your database, read your code, manage your servers, and browse the web.&lt;/p&gt;

&lt;p&gt;The key enabler? &lt;strong&gt;Model Context Protocol (MCP).&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What MCP Does
&lt;/h2&gt;

&lt;p&gt;MCP gives AI a standard way to connect to external tools. One protocol, many integrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database access (PostgreSQL, MySQL, SQLite)&lt;/li&gt;
&lt;li&gt;File operations (read, write, manage)&lt;/li&gt;
&lt;li&gt;Web interaction (search, scrape)&lt;/li&gt;
&lt;li&gt;DevOps (Docker, Kubernetes, CI/CD)&lt;/li&gt;
&lt;li&gt;Communication (Slack, Discord, email)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Developers Should Care
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;10x productivity&lt;/strong&gt; — AI handles the boring stuff&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No more context switching&lt;/strong&gt; — everything in one chat&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open standard&lt;/strong&gt; — not locked to any vendor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growing ecosystem&lt;/strong&gt; — 900+ tools already&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Browse tools at &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt; — 900+ MCP tools with quality scores and one-click install.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;The future of development is AI-assisted. MCP makes it possible.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Developer Guide to MCP Quality: How to Evaluate MCP Servers</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Tue, 14 Apr 2026 11:43:41 +0000</pubDate>
      <link>https://dev.to/goldct/the-developer-guide-to-mcp-quality-how-to-evaluate-mcp-servers-8dp</link>
      <guid>https://dev.to/goldct/the-developer-guide-to-mcp-quality-how-to-evaluate-mcp-servers-8dp</guid>
      <description>&lt;p&gt;Not all MCP servers are equal. Here is how to evaluate them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criteria That Matter
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Code Quality
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Does it have tests?&lt;/li&gt;
&lt;li&gt;Is the code well-structured?&lt;/li&gt;
&lt;li&gt;Does it follow MCP conventions?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Documentation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Clear README with examples?&lt;/li&gt;
&lt;li&gt;Configuration guide?&lt;/li&gt;
&lt;li&gt;Troubleshooting section?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Maintenance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Recent commits?&lt;/li&gt;
&lt;li&gt;Responsive to issues?&lt;/li&gt;
&lt;li&gt;Active contributors?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Community
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;GitHub stars and forks&lt;/li&gt;
&lt;li&gt;User reviews&lt;/li&gt;
&lt;li&gt;Community contributions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Easy Way
&lt;/h2&gt;

&lt;p&gt;At &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt;, every tool gets a 0-100 quality score based on all these factors. No need to evaluate manually.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;900+ tools scored&lt;/li&gt;
&lt;li&gt;Updated every 6 hours&lt;/li&gt;
&lt;li&gt;One-click install commands&lt;/li&gt;
&lt;li&gt;Free, no signup&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;What criteria matter most to you when choosing an MCP server?&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>10 MCP Servers That Will Save You Hours Every Week</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Tue, 14 Apr 2026 11:38:23 +0000</pubDate>
      <link>https://dev.to/goldct/10-mcp-servers-that-will-save-you-hours-every-week-53i5</link>
      <guid>https://dev.to/goldct/10-mcp-servers-that-will-save-you-hours-every-week-53i5</guid>
      <description>&lt;p&gt;Time is money. Here are 10 MCP servers that will make you more productive:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Filesystem
&lt;/h2&gt;

&lt;p&gt;Read and write files from your AI assistant. Essential.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. PostgreSQL
&lt;/h2&gt;

&lt;p&gt;Query databases directly from chat. No more copy-pasting.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. GitHub
&lt;/h2&gt;

&lt;p&gt;Manage repos, issues, PRs without leaving your AI tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Puppeteer
&lt;/h2&gt;

&lt;p&gt;Automate browsers with AI. Testing and scraping made easy.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Google Drive
&lt;/h2&gt;

&lt;p&gt;Access your docs and sheets from Claude.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Slack
&lt;/h2&gt;

&lt;p&gt;Send messages, read channels, manage workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Memory
&lt;/h2&gt;

&lt;p&gt;Persistent memory for AI across conversations.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Brave Search
&lt;/h2&gt;

&lt;p&gt;Web search directly from your AI assistant.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. SQLite
&lt;/h2&gt;

&lt;p&gt;Lightweight database access. Perfect for local projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Docker
&lt;/h2&gt;

&lt;p&gt;Manage containers from chat. DevOps without the CLI.&lt;/p&gt;




&lt;p&gt;Discover 900+ more at &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Which MCP server saves you the most time? Comment below!&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How Python Agents Helped Me Catalog 900+ AI Tools</title>
      <dc:creator>goldct</dc:creator>
      <pubDate>Tue, 14 Apr 2026 11:33:05 +0000</pubDate>
      <link>https://dev.to/goldct/how-python-agents-helped-me-catalog-900-ai-tools-2o39</link>
      <guid>https://dev.to/goldct/how-python-agents-helped-me-catalog-900-ai-tools-2o39</guid>
      <description>&lt;h2&gt;
  
  
  The Challenge
&lt;/h2&gt;

&lt;p&gt;Keeping track of 900+ MCP servers manually? Impossible. I needed automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Python Agent Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Collector Agent
&lt;/h3&gt;

&lt;p&gt;Crawls GitHub API every 6 hours looking for new MCP repos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Analyzer Agent
&lt;/h3&gt;

&lt;p&gt;Scores each tool on quality, docs, activity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Writer Agent
&lt;/h3&gt;

&lt;p&gt;Generates review articles for top tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ops Brain
&lt;/h3&gt;

&lt;p&gt;Coordinates everything. Tells me what to focus on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;900+ tools cataloged automatically&lt;/li&gt;
&lt;li&gt;Quality scores for every tool&lt;/li&gt;
&lt;li&gt;Deep reviews generated weekly&lt;/li&gt;
&lt;li&gt;Zero manual data entry&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.12 with asyncio&lt;/li&gt;
&lt;li&gt;GitHub REST API + GraphQL&lt;/li&gt;
&lt;li&gt;Playwright for social media posting&lt;/li&gt;
&lt;li&gt;Cron for scheduling&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;See the results at &lt;a href="https://mcphello.com" rel="noopener noreferrer"&gt;mcphello.com&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Questions about the agent setup? Ask in comments!&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
