Bir araştırma sürecinde onlarca tarayıcı sekmesini teker teker kopyalayıp notlara geçirmekten yorulan geliştirici, bu zahmetli işi otomatikleştirecek bir araç arayışına girdi. Sonunda ortaya TabScribe çıktı — tüm sekmeleri tek tıkla kopyalamanızı sağlayan, hafif ve çok dilli bir Chrome eklentisi.
Peki, mevcut seçenekler neden yeterli değildi? Chrome Web Mağazası'nda yer alan popüler eklentiler genellikle ya gereğinden fazla özelliğe sahipti ya da basit metin listeleri sunuyordu. Bazıları yıllardır güncellenmiyordu. Geliştirici, bu boşluğu doldurmak için sadece birkaç hafta sonunda kullanıma hazır bir çözüm geliştirdi.
TabScribe’in Temel İşlevleri
TabScribe’in en büyük avantajı, tüm sekmeleri tek bir tıklamayla kopyalamanızı sağlaması. Seçtiğiniz formata bağlı olarak çıktı alabilirsiniz:
- Markdown:
Başlıkformatında, Obsidian, Notion ya da VS Code gibi uygulamalarla uyumlu. - JSON: Veri işleme için ideal olan diziler halinde.
- Düz metin: Özel ayırıcı karakterlerle özelleştirilebilir.
- HTML: Web tabanlı notlar için sıralı liste formatında.
Eklenti ayrıca şu kullanışlı özellikleri de sunuyor:
- Klavye kısayolu (Alt+Shift+C): Popup penceresini açmadan doğrudan kopyalama işlemi.
- Sekme gruplarını kaydetme ve geri yükleme: Çalışma oturumlarınızı yerel olarak kaydedin ve istediğiniz zaman geri yükleyin.
- Dosya olarak dışa aktarma: Markdown, txt, JSON ya da HTML formatlarında otomatik zaman damgalarıyla.
- Akıllı filtreleme:
chrome://,edge://,about:gibi sayfaları otomatik olarak dışlar; isteğe bağlı olarak sabitlenmiş sekmeleri de hariç tutabilir. - Özel ayırıcı: Metin çıktısı için özel bir karakter belirleyin (örneğin, CSV benzeri kullanım için
|). - 12 dil desteği: İngilizce, Çince, Japonca, Korece, Almanca, Fransızca, İspanyolca, Portekizce, Rusça, Endonezce ve daha fazlası.
- Karanlık mod: Sistem temasına otomatik olarak uyum sağlar.
Arka Planda Yatan Teknoloji
TabScribe, Preact + TypeScript + Tailwind CSS + Vite kullanılarak geliştirildi ve toplamda sadece 63KB boyutunda (sıkıştırılmış haliyle 17KB). Harici bağımlılık gerektirmiyor — bu da performans ve hafiflik açısından büyük bir avantaj.
Geliştirici, Preact’ı React’a tercih etti çünkü Chrome eklentileri için her bayt önem taşıyor. React’in 40KB+ olan boyutuna karşın Preact sadece 3KB’lık bir ayak izine sahip. Ayrıca, @preact/preset-vite sayesinde geliştirme deneyimi neredeyse React kadar akıcı.
Manifest V3 ve Pano Erişimi Zorluğu
Chrome’un Manifest V3 sürümünde, arka plan sayfası yerine Service Worker kullanılıyor. Bu da DOM’a erişimi kısıtlıyor ve geleneksel document.execCommand('copy') yöntemini işlevsiz bırakıyor. Geliştirici, bu sorunu aşmak için üç aşamalı bir strateji uyguladı:
// Çift yedeklemeli pano erişim stratejisi
async function copyToClipboard(text: string, html?: string) {
// Strateji 1: Modern Pano API (popup ve offscreen için çalışır)
try {
const item = new ClipboardItem({
'text/plain': new Blob([text], { type: 'text/plain' }),
...(html ? { 'text/html': new Blob([html], { type: 'text/html' }) } : {}),
});
await navigator.clipboard.write([item]);
return;
} catch { /* hata durumunda aşağıya devam et */ }
// Strateji 2: execCommand yedeği (sadece popup bağlamında çalışır)
if (typeof document !== 'undefined') {
const textarea = document.createElement('textarea');
textarea.value = text;
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
return;
}
// Strateji 3: Chrome Offscreen Doküman (Service Worker bağlamında)
await chrome.offscreen.createDocument({
/* ... */
});
// Pano yazma işlemini offscreen dokümana yönlendir
}Uluslararasılaşma ve Gizlilik Odaklı Tasarım
TabScribe, Chrome’un yerleşik chrome.i18n API’sini kullanarak 12 farklı dile tam destek sunuyor. Eklenti adı ve açıklaması manifest.json dosyasında __MSG_key__ yer tutucularıyla tanımlandığı için Chrome Web Mağazası otomatik olarak doğru dili görüntülüyor.
// Örnek: _locales/tr/messages.json
{
"extensionName": {
"message": "TabScribe"
},
"extensionDesc": {
"message": "Tüm sekmeleri Markdown/JSON/HTML olarak kopyala"
}
}Geliştirici, gizlilik korumasına büyük önem veriyor. TabScribe hiçbir veri toplamıyor:
- Analitik ya da izleme sistemi bulunmuyor.
- Harici sunuculara ağ talebi gönderilmiyor.
- Tüm ayarlar ve sekmeler yerel olarak
chrome.storage.localüzerinde saklanıyor.
Eklentinin talep ettiği altı izin de şeffaf bir şekilde gerekçelendiriliyor:
tabs: Sekme başlıklarını ve URL’lerini okuma.clipboardWrite: Biçimlendirilmiş metni kopyalama.storage: Tercihler ve sekmeleri yerel olarak kaydetme.commands: Klavye kısayolunu kaydetme.downloads: Dışa aktarılan dosyaları kaydetme.offscreen: Service Worker bağlamında pano erişimini sağlama.
Kullanıma Hazır ve Ücretsiz
TabScribe, Chrome Web Mağazası’nda ücretsiz olarak kullanıma sunuldu. Kayıt olmanız gerekmiyor ve herhangi bir izleme sistemi bulunmuyor — sadece verimlilik odaklı basit bir araç.
Projenin kaynak koduna GitHub üzerinden ulaşabilirsiniz. Geliştirici, gelecekteki güncellemelerde kullanıcı geri bildirimlerine dayalı yeni özellikler eklemeyi planlıyor. Eğer siz de tarayıcı sekmelerinizi daha verimli yönetmek istiyorsanız, bu aracı mutlaka deneyin.
Yapay zeka özeti
Onlarca tarayıcı sekmesini elle kopyalamaktan kurtulun. TabScribe, tüm sekmelerinizi tek tıkla Markdown, JSON ya da HTML formatında kopyalamanızı sağlayan ücretsiz, hafif ve gizlilik odaklı bir Chrome eklentisidir.