<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>MERPATI.CMS</title>
        <link>https://merpati-cms.vercel.app</link>
        <description></description>
        <lastBuildDate>Sun, 05 Apr 2026 14:41:13 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>MERPATI CMS</generator>
        <language>id</language>
        <copyright>All rights reserved 2026, MERPATI.CMS</copyright>
        <item>
            <title><![CDATA[Selamat Datang di MERPATI CMS]]></title>
            <link>https://merpati-cms.vercel.app/selamat-datang-di-merpati</link>
            <guid isPermaLink="false">https://merpati-cms.vercel.app/selamat-datang-di-merpati</guid>
            <pubDate>Sun, 22 Mar 2026 21:24:46 GMT</pubDate>
            <description><![CDATA[Selamat datang di MERPATI CMS — platform penerbitan digital modern untuk jurnalis dan penerbit independen.]]></description>
            <content:encoded><![CDATA[<h2>Media Editorial Ringkas, Praktis, Aman, Tetap Independen</h2><p>Selamat datang di <strong>MERPATI CMS</strong> — platform penerbitan digital modern yang dirancang khusus untuk jurnalis dan penerbit independen. MERPATI hadir sebagai alternatif WordPress yang ringan, cepat, dan sepenuhnya gratis.</p><blockquote><p>Kebebasan pers dimulai dari kemandirian infrastrukturnya. MERPATI menghilangkan beban biaya hosting sambil memberikan performa dan keamanan yang jauh lebih baik.</p></blockquote><h3>Fitur Utama</h3><ol><li><p><strong>Editor Klasik</strong> — Antarmuka penulisan yang familiar dengan dukungan format teks, heading, daftar, dan penyisipan media.</p></li><li><p><strong>Perpustakaan Media</strong> — Kelola gambar dan file media dengan mudah melalui upload langsung atau URL publik.</p></li><li><p><strong>Sistem Tema Modular</strong> — Tampilan frontend yang fleksibel dan dapat dikustomisasi menggunakan React Server Components.</p></li><li><p><strong>SEO Otomatis</strong> — Open Graph, Twitter Cards, JSON-LD, Sitemap, dan RSS Feed siap pakai.</p></li><li><p><strong>Notifikasi Telegram</strong> — Dapatkan pemberitahuan langsung di Telegram saat ada posting baru atau pengguna baru.</p></li></ol><h3>Arsitektur Serverless</h3><p>Dibangun di atas arsitektur <em>serverless</em>, MERPATI menggunakan stack teknologi modern:</p><p>KomponenTeknologiFungsiFrontendNext.js 16React Server Components + ISR cachingDatabaseNeon PostgresServerless SQL databaseStylingTailwind CSS v4Utility-first CSS frameworkAuthNextAuth.js v5OAuth + session managementHostingVercelEdge network + serverless functions</p><h3>Contoh Kode</h3><p>Berikut contoh bagaimana MERPATI menggunakan <code>unstable_cache</code> untuk meng-cache query database:</p><pre><code>  export const getCachedOption = unstable_cache(
  async (key: string) =&gt; {
  const result = await db
  .select({ value: options.value })
  .from(options)
  .where(eq(options.key, key))
  .limit(1);
  return result[0]?.value ?? null;
  },
  ["site-option"],
  { revalidate: 3600, tags: ["site-options"] }
  );</code></pre><hr /><p>Mulailah menulis dan berbagi cerita Anda dengan dunia. Kunjungi <a target="_blank" rel="noopener noreferrer nofollow" href="/admin">dashboard admin</a> untuk mulai membuat konten.</p>]]></content:encoded>
            <author>arinadi.nur@gmail.com (Arinadi Nur Rohmad (Adi))</author>
        </item>
        <item>
            <title><![CDATA[Mengapa Serverless adalah Masa Depan Jurnalisme Digital]]></title>
            <link>https://merpati-cms.vercel.app/mengapa-serverless-adalah-masa-depan-jurnalisme-digital</link>
            <guid isPermaLink="false">https://merpati-cms.vercel.app/mengapa-serverless-adalah-masa-depan-jurnalisme-digital</guid>
            <pubDate>Thu, 12 Mar 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[Meninggalkan server tradisional dan beralih ke arsitektur serverless memberikan kebebasan luar biasa bagi penerbit independen tanpa biaya hosting.]]></description>
            <content:encoded><![CDATA[<h2>Revolusi Infrastruktur Media</h2>
<p>Industri media sering kali terjebak dalam biaya infrastruktur yang membengkak seiring dengan naiknya trafik. Saat berita viral, server tradisional seringkali <strong>tumbang</strong> atau membutuhkan biaya skalabilitas yang sangat mahal.</p>
<blockquote><p>Dengan arsitektur serverless, Anda hanya membayar untuk apa yang Anda gunakan — dan dengan Free Tier, sering kali biayanya nol.</p></blockquote>

<h3>Perbandingan Biaya</h3>
<table>
<thead><tr><th>Aspek</th><th>Server Tradisional</th><th>Serverless</th></tr></thead>
<tbody>
<tr><td>Biaya bulanan</td><td>$50-500/bulan</td><td>$0 (Free Tier)</td></tr>
<tr><td>Skalabilitas</td><td>Manual, lambat</td><td>Otomatis, instan</td></tr>
<tr><td>Maintenance</td><td>Update OS, patch</td><td>Zero maintenance</td></tr>
<tr><td>Keamanan</td><td>Konfigurasi manual</td><td>Built-in</td></tr>
</tbody>
</table>

<h3>Keuntungan Utama</h3>
<ul>
<li><strong>Biaya Nol:</strong> Memanfaatkan Free Tier Vercel dengan optimal.</li>
<li><strong>Kecepatan Kilat:</strong> Sub-200ms page loads yang disukai Google.</li>
<li><strong>Keamanan:</strong> Tidak ada database tradisional yang bisa diinjeksi SQL secara konvensional.</li>
<li><strong>Auto-scaling:</strong> Tidak perlu khawatir saat trafik melonjak.</li>
</ul>

<h3>Implementasi di MERPATI</h3>
<p>MERPATI CMS menggunakan <code>Neon Serverless Postgres</code> sebagai database utama. Koneksi dilakukan melalui HTTP, bukan TCP, sehingga setiap request adalah stateless:</p>
<pre><code>import { neon } from "@neondatabase/serverless";
import { drizzle } from "drizzle-orm/neon-http";

const sql = neon(process.env.DATABASE_URL!);
export const db = drizzle(sql);</code></pre>

<p>Merpati CMS dibangun tepat di atas filosofi ini, memastikan <em>kebebasan pers dimulai dari kebebasan infrastruktur</em>.</p>]]></content:encoded>
            <author>arinadi.nur@gmail.com (Arinadi Nur Rohmad (Adi))</author>
        </item>
        <item>
            <title><![CDATA[Panduan Migrasi dari WordPress ke Merpati CMS]]></title>
            <link>https://merpati-cms.vercel.app/panduan-migrasi-dari-wordpress-ke-merpati-cms</link>
            <guid isPermaLink="false">https://merpati-cms.vercel.app/panduan-migrasi-dari-wordpress-ke-merpati-cms</guid>
            <pubDate>Tue, 10 Mar 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[Langkah demi langkah memindahkan ribuan artikel dari WordPress ke Merpati CMS tanpa kehilangan ranking SEO.]]></description>
            <content:encoded><![CDATA[<h2>Meninggalkan WordPress Tanpa Kehilangan SEO</h2>
<p>Banyak penerbit merasa terjebak dengan WordPress karena sejarah konten yang panjang. Namun, migrasi <strong>tidak harus menjadi mimpi buruk</strong>.</p>

<h3>Langkah-Langkah Migrasi</h3>
<ol>
<li><strong>Export konten WordPress</strong> — Gunakan plugin WP All Export untuk mengekspor semua post dan page ke format CSV.</li>
<li><strong>Mapping field</strong> — Sesuaikan kolom CSV dengan struktur database MERPATI:
<ul>
<li><code>post_title</code> → <code>title</code></li>
<li><code>post_name</code> → <code>slug</code></li>
<li><code>post_content</code> → <code>content</code></li>
<li><code>post_excerpt</code> → <code>excerpt</code></li>
</ul></li>
<li><strong>Import ke Neon</strong> — Jalankan script migrasi untuk memasukkan data ke database MERPATI.</li>
<li><strong>Redirect 301</strong> — Konfigurasi redirect agar URL lama tetap berfungsi.</li>
<li><strong>Verifikasi SEO</strong> — Pastikan semua meta tag, sitemap, dan structured data berfungsi.</li>
</ol>

<blockquote><p>Jangan biarkan platform usang menahan laju inovasi media Anda. Kecepatan adalah mata uang baru di dunia editorial digital.</p></blockquote>

<h3>Contoh Redirect Configuration</h3>
<pre><code>// next.config.ts
module.exports = {
  async redirects() {
    return [
      {
        source: "/wp-content/:path*",
        destination: "/media/:path*",
        permanent: true,
      },
    ]&#59;
  },
}&#59;</code></pre>

<p>Proses migrasi ke Merpati CMS telah disederhanakan melalui skrip import yang secara otomatis mengonversi format <code>wp_posts</code> menjadi struktur yang ramah SEO.</p>]]></content:encoded>
            <author>arinadi.nur@gmail.com (Arinadi Nur Rohmad (Adi))</author>
        </item>
        <item>
            <title><![CDATA[Memaksimalkan SEO Native dengan JSON-LD Otomatis]]></title>
            <link>https://merpati-cms.vercel.app/memaksimalkan-seo-native-dengan-json-ld-otomatis</link>
            <guid isPermaLink="false">https://merpati-cms.vercel.app/memaksimalkan-seo-native-dengan-json-ld-otomatis</guid>
            <pubDate>Sun, 08 Mar 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[Bagaimana MERPATI CMS menyuntikkan schema markup secara otomatis untuk mendominasi hasil pencarian Google.]]></description>
            <content:encoded><![CDATA[<h2>SEO Bukanlah Sekadar Kata Kunci</h2>
<p>SEO bukan lagi sekadar memasukkan kata kunci ke dalam teks. Mesin pencari modern membutuhkan <strong>konteks</strong>, dan cara terbaik memberikannya adalah melalui <a href="https://schema.org">JSON-LD structured data</a>.</p>

<h3>Apa itu JSON-LD?</h3>
<p><code>JSON-LD</code> (JavaScript Object Notation for Linked Data) adalah format yang direkomendasikan oleh Google untuk structured data. Format ini memungkinkan mesin pencari memahami konteks konten Anda tanpa harus mengurai HTML.</p>

<h3>Schema yang Dihasilkan MERPATI</h3>
<p>Setiap kali Anda menerbitkan artikel, sistem secara otomatis merakit schema berikut:</p>
<pre><code>{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "headline": "Judul Artikel Anda",
  "author": {
    "@type": "Person",
    "name": "Nama Penulis"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Nama Situs Anda"
  },
  "datePublished": "2026-03-08T10:00:00Z"
}</code></pre>

<h3>Dampak pada Performa SEO</h3>
<table>
<thead><tr><th>Metrik</th><th>Tanpa JSON-LD</th><th>Dengan JSON-LD</th></tr></thead>
<tbody>
<tr><td>Rich Snippets</td><td>Tidak muncul</td><td>✅ Muncul di SERP</td></tr>
<tr><td>Google News</td><td>Sulit masuk</td><td>✅ Eligible</td></tr>
<tr><td>Knowledge Graph</td><td>Tidak terindeks</td><td>✅ Terindeks</td></tr>
<tr><td>CTR rata-rata</td><td>2-3%</td><td>5-8%</td></tr>
</tbody>
</table>

<p>Ini memastikan artikel Anda memiliki peluang lebih tinggi untuk masuk ke <strong>Google Top Stories</strong> dan mendapatkan rich snippets yang menarik perhatian pembaca.</p>]]></content:encoded>
            <author>arinadi.nur@gmail.com (Arinadi Nur Rohmad (Adi))</author>
        </item>
        <item>
            <title><![CDATA[Desain Mobile-First untuk Pembaca Modern]]></title>
            <link>https://merpati-cms.vercel.app/desain-mobile-first-untuk-pembaca-modern</link>
            <guid isPermaLink="false">https://merpati-cms.vercel.app/desain-mobile-first-untuk-pembaca-modern</guid>
            <pubDate>Thu, 05 Mar 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[Lebih dari 80% pembaca berita mengakses melalui ponsel. MERPATI CMS mendesain antarmuka publik dan admin untuk mobile-first.]]></description>
            <content:encoded><![CDATA[<h2>Jurnalisme Modern Terjadi di Lapangan</h2>
<p>Kami membuang paradigma lama di mana dashboard harus diakses melalui layar desktop yang lebar. Lebih dari <strong>80% pembaca berita</strong> mengakses melalui ponsel mereka.</p>

<h3>Prinsip Mobile-First</h3>
<p>Pendekatan mobile-first berarti kita mendesain untuk layar terkecil terlebih dahulu, kemudian <em>progressively enhance</em> untuk layar yang lebih besar:</p>
<ol>
<li><strong>Touch-first interactions</strong> — Semua tombol dan link memiliki area sentuh minimum 44px.</li>
<li><strong>Responsive typography</strong> — Ukuran font menyesuaikan layar dengan <code>clamp()</code> CSS.</li>
<li><strong>Lazy loading</strong> — Gambar dimuat hanya saat akan terlihat di viewport.</li>
<li><strong>Minimal JavaScript</strong> — React Server Components mengurangi bundle size drastis.</li>
</ol>

<h3>Contoh Responsive Typography</h3>
<pre><code>.article-body {
  font-size: 1.125rem&#59;     /* 18px - nyaman di mobile */
  line-height: 1.9&#59;        /* Longgar untuk keterbacaan */
}

.article-body h2 {
  font-size: clamp(1.5rem, 4vw, 2rem)&#59;
  margin-top: 2em&#59;
}</code></pre>

<blockquote><p>Dashboard penulisan dan antarmuka pembaca dirancang dengan pendekatan mobile-first. Anda bisa menulis, mengedit, dan menerbitkan langsung dari smartphone.</p></blockquote>

<h3>Statistik Mobile vs Desktop</h3>
<ul>
<li><strong>82%</strong> traffic berita berasal dari mobile</li>
<li><strong>3 detik</strong> — batas waktu loading sebelum 53% pengguna pergi</li>
<li><strong>70%</strong> peningkatan engagement dengan desain mobile-first</li>
</ul>]]></content:encoded>
            <author>arinadi.nur@gmail.com (Arinadi Nur Rohmad (Adi))</author>
        </item>
        <item>
            <title><![CDATA[Membangun Komunitas Pembaca Setia dengan Newsletter]]></title>
            <link>https://merpati-cms.vercel.app/membangun-komunitas-pembaca-setia-dengan-newsletter</link>
            <guid isPermaLink="false">https://merpati-cms.vercel.app/membangun-komunitas-pembaca-setia-dengan-newsletter</guid>
            <pubDate>Sat, 28 Feb 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[Algoritma media sosial terus berubah. Pelajari mengapa memiliki daftar email pembaca adalah aset paling berharga bagi media independen.]]></description>
            <content:encoded><![CDATA[<h2>Mengapa Newsletter Lebih Berharga dari Media Sosial</h2>
<p>Ketergantungan pada lalu lintas media sosial membuat banyak media <strong>rentan</strong> terhadap perubahan algoritma yang tiba-tiba. Jalan keluar terbaik adalah membangun saluran komunikasi langsung.</p>

<blockquote><p>Daftar email pembaca adalah aset paling berharga bagi media independen. Tidak ada algoritma yang bisa menghalangi Anda menjangkau audiens Anda sendiri.</p></blockquote>

<h3>Email vs Media Sosial</h3>
<table>
<thead><tr><th>Aspek</th><th>Email Newsletter</th><th>Media Sosial</th></tr></thead>
<tbody>
<tr><td>Reach</td><td>90-95% (inbox)</td><td>2-5% (algoritma)</td></tr>
<tr><td>Kontrol</td><td>Penuh</td><td>Bergantung platform</td></tr>
<tr><td>CTR rata-rata</td><td>15-25%</td><td>1-3%</td></tr>
<tr><td>Data ownership</td><td>Milik Anda</td><td>Milik platform</td></tr>
</tbody>
</table>

<h3>Strategi Newsletter yang Efektif</h3>
<ol>
<li><strong>Konsistensi</strong> — Kirim newsletter pada jadwal yang sama setiap minggu.</li>
<li><strong>Kurasi, bukan spam</strong> — Pilih 3-5 artikel terbaik, bukan semua konten.</li>
<li><strong>Personalisasi</strong> — Gunakan nama pembaca dan segmentasi berdasarkan minat.</li>
<li><strong>Call-to-action jelas</strong> — Setiap email harus punya tujuan yang spesifik.</li>
</ol>

<h3>Integrasi dengan MERPATI</h3>
<p>MERPATI CMS menyediakan <code>RSS Feed</code> otomatis di <code>/rss.xml</code> yang bisa dihubungkan dengan platform email seperti:</p>
<ul>
<li><a href="https://mailchimp.com">Mailchimp</a> — RSS-to-Email campaign</li>
<li><a href="https://buttondown.email">Buttondown</a> — Minimalis dan developer-friendly</li>
<li><a href="https://substack.com">Substack</a> — Platform newsletter lengkap</li>
</ul>

<p>Newsletter memberikan tingkat keterlibatan yang <em>jauh lebih tinggi</em> dibanding media sosial.</p>]]></content:encoded>
            <author>arinadi.nur@gmail.com (Arinadi Nur Rohmad (Adi))</author>
        </item>
        <item>
            <title><![CDATA[Optimasi Core Web Vitals untuk Berita]]></title>
            <link>https://merpati-cms.vercel.app/optimasi-core-web-vitals-untuk-berita</link>
            <guid isPermaLink="false">https://merpati-cms.vercel.app/optimasi-core-web-vitals-untuk-berita</guid>
            <pubDate>Wed, 25 Feb 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[Google semakin memprioritaskan pengalaman pengguna. Panduan mencapai skor hijau sempurna di PageSpeed tanpa mengorbankan fungsionalitas.]]></description>
            <content:encoded><![CDATA[<h2>Skor Hijau Sempurna di PageSpeed</h2>
<p>Situs berita sering kali lambat karena banyaknya iklan, pelacak, dan gambar yang tidak dioptimalkan. Google semakin memprioritaskan <strong>Core Web Vitals</strong> sebagai faktor ranking.</p>

<h3>Tiga Metrik Kunci</h3>
<ol>
<li><strong>LCP (Largest Contentful Paint)</strong> — Waktu render elemen terbesar. Target: <code>&lt; 2.5 detik</code>.</li>
<li><strong>FID (First Input Delay)</strong> — Waktu respons interaksi pertama. Target: <code>&lt; 100ms</code>.</li>
<li><strong>CLS (Cumulative Layout Shift)</strong> — Stabilitas visual. Target: <code>&lt; 0.1</code>.</li>
</ol>

<h3>Strategi Optimasi MERPATI</h3>
<table>
<thead><tr><th>Strategi</th><th>Metrik</th><th>Dampak</th></tr></thead>
<tbody>
<tr><td>React Server Components</td><td>LCP + FID</td><td>Zero JS bundle untuk konten statis</td></tr>
<tr><td>ISR Caching</td><td>LCP</td><td>Response ~90ms dari cache</td></tr>
<tr><td>Responsive images</td><td>LCP + CLS</td><td>Ukuran gambar sesuai viewport</td></tr>
<tr><td>Font preloading</td><td>CLS</td><td>Mencegah layout shift dari font swap</td></tr>
</tbody>
</table>

<h3>Contoh: Cache Configuration</h3>
<pre><code>// lib/queries/cache-timestamp.ts
export const getCacheTimestamp = unstable_cache(
    async () => new Date().toISOString(),
    ["cache-timestamp"],
    { revalidate: 3600, tags: ["site-options", "posts"] }
)&#59;</code></pre>

<blockquote><p>Dengan MERPATI CMS, setiap halaman publik di-cache selama 1 jam. Response time rata-rata hanya 90ms setelah cache terbentuk — 16x lebih cepat dari request pertama.</p></blockquote>

<h3>Hasil Benchmark</h3>
<ul>
<li><strong>Request pertama:</strong> ~1400ms (cold start + DB query ke Neon)</li>
<li><strong>Request selanjutnya:</strong> ~90ms (dari cache)</li>
<li><strong>PageSpeed Score:</strong> 95-100 di mobile dan desktop</li>
</ul>]]></content:encoded>
            <author>arinadi.nur@gmail.com (Arinadi Nur Rohmad (Adi))</author>
        </item>
        <item>
            <title><![CDATA[Pentingnya Independensi Data di Era AI]]></title>
            <link>https://merpati-cms.vercel.app/pentingnya-independensi-data-di-era-ai</link>
            <guid isPermaLink="false">https://merpati-cms.vercel.app/pentingnya-independensi-data-di-era-ai</guid>
            <pubDate>Fri, 20 Feb 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[Saat model AI mengambil konten dari web tanpa kompensasi, melindungi data dan infrastruktur Anda sendiri menjadi lebih penting dari sebelumnya.]]></description>
            <content:encoded><![CDATA[<h2>Konten Anda, Infrastruktur Anda</h2>
<p>Kita memasuki era di mana konten yang Anda terbitkan dapat dengan cepat dicerna dan didaur ulang oleh <strong>model bahasa besar (LLM)</strong>. Hal ini menimbulkan pertanyaan besar mengenai hak cipta dan monetisasi.</p>

<h3>Risiko Platform Tertutup</h3>
<p>Menerbitkan konten di platform tertutup berarti Anda menyerahkan kontrol:</p>
<ul>
<li><strong>Data ownership</strong> — Platform memiliki data Anda, bukan Anda.</li>
<li><strong>Monetisasi</strong> — Platform menentukan model revenue, bukan Anda.</li>
<li><strong>De-platforming</strong> — Akun Anda bisa ditutup kapan saja tanpa peringatan.</li>
<li><strong>AI training</strong> — Konten Anda digunakan untuk melatih AI tanpa kompensasi.</li>
</ul>

<blockquote><p>Memiliki infrastruktur Anda sendiri, alih-alih bergantung pada platform publikasi tertutup, memastikan Anda memiliki kendali penuh atas konten Anda.</p></blockquote>

<h3>Kontrol Bot Perayap</h3>
<p>Dengan MERPATI CMS, Anda memiliki kontrol penuh atas <code>robots.txt</code> dan tag meta:</p>
<pre><code># robots.txt — Blokir bot AI tertentu
User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: Google-Extended
Disallow: /</code></pre>

<h3>Self-Hosting vs SaaS</h3>
<table>
<thead><tr><th>Aspek</th><th>Self-Hosted (MERPATI)</th><th>SaaS Platform</th></tr></thead>
<tbody>
<tr><td>Data ownership</td><td>100% milik Anda</td><td>Milik platform</td></tr>
<tr><td>Portabilitas</td><td>Export kapan saja</td><td>Lock-in</td></tr>
<tr><td>Biaya jangka panjang</td><td>$0 (Free Tier)</td><td>$10-100/bulan</td></tr>
<tr><td>Kontrol AI crawling</td><td>Penuh</td><td>Terbatas</td></tr>
</tbody>
</table>

<p>Di era AI, <em>independensi data bukan lagi kemewahan — tapi kebutuhan</em>.</p>]]></content:encoded>
            <author>arinadi.nur@gmail.com (Arinadi Nur Rohmad (Adi))</author>
        </item>
    </channel>
</rss>