Billing·5 min read·

Next.js blogum için kullanıcıların kodu inceleyerek aşamayacağı, güvenli bir içerik ödeme duvarını (paywall) nasıl kurarım?

PocketBase'i sorgulamadan önce aboneliği bir Server Component içinde doğrulayın. Özeti ve ana metni ayrı sütunlara ayırın; premium içeriği asla ödeme yapmamış kullanıcılara göndermeyin.

VeloCMS ile delinmesi imkansız bir ödeme duvarı kurmanın yolu, kısıtlı içeriği PocketBase'den çekmeden *önce* kullanıcının abonelik durumunu Next.js Server Components ile sunucu tarafında doğrulamaktan geçiyor. Bu sayede, okurun aktif bir aboneliği yoksa premium içeriğin tarayıcıya ulaşması engellenmiş oluyor. Haliyle birinin sağ tıklayıp kodu inceleyerek emeğinizi çalması da fiziksel olarak imkansız hale geliyor.

Tipik istemci taraflı ödeme duvarları neden bu kadar kolay aşılıyor?

Pek çok bağımsız yayıncı bunu acı bir tecrübeyle öğreniyor. Premium paragraflarınızın üzerini bir CSS sınıfıyla bulanıklaştırdığınızda veya metni gizlemek için istemci taraflı JavaScript kullandığınızda, azıcık kod bilen birinin eline adeta anahtarları teslim etmiş oluyorsunuz. Çünkü makalenin tamamı zaten tarayıcının belleğinde hazır bekliyor. Uyanık bir okuyucu F12'ye basarak geliştirici araçlarını açar, o üstteki katmanı siler ve size özel hazırladığınız derinlemesine analizi bedavaya okur. VeloCMS, WordPress'in o hantal yöntemlerini bir kenara bırakıp ışık hızında bir Next.js mimarisini benimsediği için bu acemice hatayı en başından yapmanıza engel oluyor. Ağır işi sunucuya bırakıyorsunuz, yani hassas veri, okuyucu cüzdanını açtığını kanıtlayana kadar onun makinesinde kelimenin tam anlamıyla var olmuyor.

VeloCMS makaleleri sunucu tarafında nasıl kilit altında tutuyor?

Next.js Server Components'ı, PocketBase veritabanınızın kapısında duran inanılmaz derecede katı bir güvenlik görevlisi gibi düşünün. Bir ziyaretçi premium bir blog yazısına tıkladığında, sunucunuz önce devreye girip onun kimlik doğrulama cookie'lerini kontrol eder. Eğer kullanıcı giriş yapmamışsa veya aktif bir ücretli üyeliği yoksa, sunucu ona sadece ücretsiz tadımlık paragrafı ve temiz bir ödeme linki verir. Makalenin geri kalanı ise PocketBase'in içinde kilitli kalmaya devam eder. Bu, framework ile veritabanı arasında dönen o kadar zarif bir dans ki, eski platformlarda boğuşmak zorunda kalacağınız şişkin ve zafiyet dolu eklentiler olmadan size sarsılmaz bir güvenlik sağlıyor. Sonuçta elinizde hem çalıştırması çok daha ucuz, hem kayda değer ölçüde güvenli, hem de tarayıcı gereksiz gizli metinleri indirmediği için şimşek gibi hızlı bir sistem oluyor.

Ücretli içerik için PocketBase'i yapılandırmanın en iyi yolu nedir?

İşte size ileride başınızı büyük bir dertten kurtaracak, hemen uygulayabileceğiniz bir strateji. İşin sırrı, daha ilk günden PocketBase şemanızdaki makale alanlarını birbirinden ayırmakta. Tüm yazıyı tek bir zengin metin alanına tıkıştırmak yerine, veritabanında iki ayrı sütun oluşturun: biri herkese açık özetiniz için, diğeri ise premium ana metin için. Next.js fetch isteğinizi yazarken, önce kullanıcının session token'ını kontrol edin. Eğer session ödenmemiş bir durum döndürürse, o premium ana metin alanını veritabanı sorgunuzdan tamamen hariç tutun. Sadece özeti çekmek, olası veri sızıntılarını kökünden engeller. Sonuçta ön yüzünüz, eline ulaşmayan bir veriyi işleyemez; bu da ağ isteklerini yakalamaya çalışan uyanıkların tüm akıllıca numaralarını boşa çıkarır.

Yazdıklarınızdan para kazanmak, hafta sonlarınızı teknoloji meraklısı bedavacılarla boğuşarak geçirmek anlamına gelmemeli. VeloCMS, Next.js'in doğal sunucu taraflı gücünü ve PocketBase'in yapay zekaya hazır, hafif yapısını bir araya getirerek emeğinizin etrafına dijital bir kale inşa etmenizi sağlar. Artık insanların sitenizin kodunu deşifre etmesinden endişe etmeyi bırakıp asıl önem verdiğiniz şeye, yani gerçek hayranlarınızın seve seve para ödeyeceği o harika içerikleri yazmaya geri dönebilirsiniz.