Problem

Üç yıl önce notlarımı dört ayrı yerde tutuyordum: Notion'da fikirler, Apple Notes'ta hızlı şeyler, ~/notes klasöründe markdown dosyaları, telefonumda fotoğrafladığım defter sayfaları. Hiçbirinde aradığımı bulamıyordum.

İhtiyacım olan şey çok basit aslındaydı: hızlıca açılan, klavye ile gezilen, full-text aramalı, tag desteği olan, ama bana ait olan bir not aracı. Notebok bu ihtiyacın cevabı.

Tasarım kararları

En önemli karar veri formatıydı. JSON yerine düz markdown dosyaları seçtim, çünkü bir gün Notebok'u terk etsem bile notlarım hâlâ benim.

  • Tüm notlar ~/.notebok/ altında düz markdown.
  • Arama indeksi SQLite'ta — silinse bile rebuild edilebiliyor.
  • Tag'ler dosya içinde frontmatter ile, ayrı yer yok.
  • Açılış süresi 50ms'in altında.

Mimari

Tek bir Go binary. SQLite ile FTS5 üzerine kurulu basit bir arama. UI tarafında BubbleTea'nın MVC benzeri yaklaşımı, klavye odaklı bir TUI yazmayı keyifli hale getirdi. Tüm uygulama ~1.200 satır — bunun ~300'ü test.

Bugün

Ayda yaklaşık 3.400 kişi yeni bir kopya indiriyor. Pull request'lerin çoğu küçük QoL ekliyor; büyük yön kararlarını hâlâ ben veriyorum.

Bir yan projenin yan proje kalması için, bir gün ona "yetti" diyebilmek gerekir.

Öğrendiklerim

  1. Dağıtım, geliştirmekten zor. Homebrew formula yazmak ilk kez bunaltıcıydı.
  2. İlk kullanıcı sensin. Kendi kullanmadığın aracı geliştirmek imkânsız.
  3. Test edilebilir TUI mümkün. BubbleTea'nın teatest'i hayat kurtarıyor.
  4. Açık kaynak bakım istiyor. Beklediğimden fazla, ama beklediğimden de keyifli.