100 Gün, 87 Araç, Sıfır Sunucu
ToolKnit'i inşa etmek için 100 gün harcadım. Bu, 87 tarayıcı tabanlı araçtan oluşan bir pakettir.
Çoğu araç sitesi şu şekilde çalışır:
- Bir dosya yüklersiniz.
- Bir sunucu bunu işler.
- Sonucu indirirsiniz.
Bu, hassas PDF'lerinizin ve fotoğraflarınızın başka birinin sunucusunda durduğu anlamına gelir. Ben farklı bir yol istedim. ToolKnit'teki her araç tamamen tarayıcınızda çalışır. Hiçbir dosya cihazınızdan ayrılmaz.
İşte bir backend olmadan inşa etmek hakkında öğrendiklerim.
Teknoloji Yığını
- HTML ve Tailwind CSS.
- Vanilla JavaScript.
- Sadece basit istatistikler için PHP.
- Sıfır framework. React yok. Vue yok.
Neden Statik HTML?
- SEO daha iyidir. Google statik sayfaları anında tarar. Hydration gecikmeleri yaşanmaz.
- Hız daha yüksektir. Kullanıcılar araçlara anında erişir. Büyük JavaScript paketlerinin yüklenmesini beklemezler.
- Maliyetler düşüktür. Neredeyse hiç sunucu gücü kullanmıyorum.
Zorluklar Bileşenler (components) olmadan 87 sayfa oluşturmak zordur. Bir footer bağlantısını değiştirirsem, 87 dosyayı düzenlemem gerekiyor. Bunu yönetmek için Python scriptleri yazmak zorunda kaldım.
Tarayıcının sınırlarını öğrendim:
- PDF sıkıştırma zordur. Dosya bozulmasını önlemek için karmaşık stream manipülasyonu gerektirir.
- Ses sentezi derindir. Gerçekçi bir piyano sesi oluşturmak birden fazla osilatör ve özel harmonikler gerektirir.
- Video ağırdır. ffmpeg.wasm kullanmak işe yarıyor ancak 32 MB'lık indirme yavaş bağlantılar için bir yüktür.
En Büyük Dersim Neredeyse çalışan özelliklerden vazgeçin.
iPhone Live Photos için bir araç geliştirdim. Üç büyük kusuru vardı:
- Canvas API'deki yuvarlatılmış köşeler için matematiksel hesaplama yanlıştı.
- Video transcoding çok uzun sürüyordu.
- WeChat gibi uygulamalar ihtiyacım olan verileri siliyordu.
%90 işlevsel olan bir araç güveni sarsar. Eğer harika değilse, yayınlamayın.
Sırada Ne Var? Şimdi Tauri ve Rust kullanarak bir masaüstü uygulaması geliştiriyorum. Aynı kuralı takip edecek: tüm işlemler yerel olarak kalacak.
100 günlük inşa sürecinin özeti: • 87 araç yayınlandı. • 3 araç iptal edildi. • 0 framework bağımlılığı. • 3.000+ toplam kullanım.
Siz de istemci tarafı (client-side) araçlar mı geliştiriyorsunuz? Mimarinizden yorumlarda bahsedin.
