3 poin oleh GN⁺ 2024-06-13 | 1 komentar | Bagikan ke WhatsApp
  • Unforget adalah aplikasi catatan minimalis yang memungkinkan Anda menulis catatan terlebih dahulu secara lokal lalu melanjutkannya dengan sinkronisasi terenkripsi, dengan menonjolkan privasi sekaligus kemudahan penggunaan lintas perangkat
  • Berbasis Progressive Web App, sehingga dapat digunakan di browser, desktop, dan mobile, serta berjalan tanpa Electron.js
  • Mendukung penulisan Markdown, ekspor sekali klik dalam format JSON, API publik, serta opsi self-hosting dan cloud
  • Dengan pendaftaran gratis, Anda dapat menggunakan backup dan sinkronisasi cloud yang sepenuhnya terenkripsi, dan tidak memerlukan email atau nomor telepon
  • Mendukung impor dari Google Keep, Apple Notes, dan Standard Notes, tetapi ketersediaan serta cara instalasinya berbeda-beda tergantung browser

Catatan offline-first dan kontrol data

  • Unforget adalah aplikasi penulisan catatan minimalis yang mengutamakan penggunaan offline, serta menyediakan sinkronisasi terenkripsi end-to-end
  • Bentuk aplikasi dan lingkungan penggunaan

    • Dapat digunakan di browser, desktop, dan mobile sebagai Progressive Web App
    • Berjalan tanpa Electron.js, serta mendukung instalasi opsional sekali klik
    • Mengusung desain yang mengutamakan privasi dan disediakan sebagai open source berlisensi MIT
  • Penulisan, migrasi, dan ekspor

    • Mendukung penulisan Markdown
    • Dapat mengimpor dari Google Keep, Apple Notes, dan Standard Notes
    • Data catatan dapat diekspor sekali klik dalam format JSON
  • Sinkronisasi dan ekstensi

    • Melalui pendaftaran gratis, catatan dapat dicadangkan ke cloud dalam kondisi sepenuhnya terenkripsi dan disinkronkan di beberapa perangkat
    • Pendaftaran tidak memerlukan email atau nomor telepon
    • Menyediakan opsi self-hosting maupun cloud
    • API publik memungkinkan pembuatan klien sendiri

Cara instalasi menurut browser

  • Unforget dapat langsung digunakan dari browser, dan cara instalasinya berbeda-beda tergantung lingkungan
  • Dukungan instalasi

    • Chrome: gunakan ikon instal di bilah URL
    • Edge: gunakan ikon instal di bilah URL
    • Android Browser: menu → Add to Home Screen
    • Safari Desktop: Share → Add to Dock
    • Safari iOS: Share → Add to Home Screen
    • Firefox Android: gunakan ikon instal di bilah URL
  • Batasan instalasi

    • Tidak dapat diinstal di Firefox Desktop

1 komentar

 
GN⁺ 2024-06-13
Pendapat Hacker News
  • Penasaran dengan pengalaman membuat PWA yang offline-first
    Gagasan memakai web hanya sebagai sarana distribusi dan browser sebagai runtime memang menarik, tetapi saya khawatir dengan berbagai kerumitan kecil pada penyimpanan lokal
    Karena datanya tidak terlihat sebagai file seperti ~/.app/app.dat, rasanya seperti “kalau tidak terlihat, akan terlupakan”; juga mengganjal kemungkinan data tiba-tiba hilang karena pembaruan browser, serta kompleksitas menangani manajemen versi skema dalam model dasar web
    Portabilitas data saat pindah ke komputer baru juga jadi masalah, dan meski menarik bahwa bisa didistribusikan tanpa server selama punya akun GitHub, sisi datanya masih terlihat belum stabil
    Terlepas dari tidak adanya sesuatu seperti SQLite, cara membungkus SQLite sebagai gumpalan WebAssembly juga sama sekali tidak membuat saya tertarik

    • Di stack web memang jelas ada banyak kerumitan kecil, tetapi IndexedDB sejauh ini bekerja cukup stabil
      Namun ada batasan menjengkelkan, misalnya saat membuat indeks pada penyimpanan dengan beberapa key, tiap key tidak bisa ditentukan naik/turun secara terpisah
      Jika PWA sudah diinstal dengan menambahkannya ke layar utama, browser seharusnya tidak menghapus IndexedDB karena alasan seperti pembaruan, dan dalam praktiknya browser tampaknya mematuhi hal itu
      Pengalaman mengembangkan PWA secara umum campur aduk, dan sangat bergantung pada jenis aplikasinya. Untuk aplikasi catatan yang bisa melakukan backup dan sinkronisasi cloud terenkripsi, PWA mungkin pilihan terbaik, tetapi jika perlu integrasi lebih dalam dengan platform seperti akses sistem file, saya akan menghindari PWA
      Masalah lain adalah iOS Safari, yang masih kekurangan banyak fitur PWA seperti sinkronisasi latar belakang atau notifikasi push offline, dan tampaknya kecil kemungkinan akan mendukungnya ke depan
      Penasaran apakah Anda sedang mempertimbangkan PWA untuk aplikasi tertentu
    • Orang yang membuat aplikasi di browser harus sangat berhati-hati bahwa saat ruang disk menipis, banyak browser dapat membuang sebagian penyimpanan situs web
      Perilaku ini sudah menjengkelkan dalam kondisi biasa, tetapi kalau tidak ada backup di sisi server, dampaknya lebih dari sekadar menjengkelkan
      Saya tidak yakin apakah peringatan ini juga berlaku untuk localStorage, tetapi berdasarkan pengalaman, ini berlaku pada IndexedDB, dan tampaknya juga pada aplikasi Electron
    • Menurut saya penyimpanan offline yang paling aman adalah memakai sistem file browser (https://developer.mozilla.org/en-US/docs/Web/API/File_System...) sehingga data berada di luar jangkauan browser
      Ini bekerja cukup baik, tetapi kekurangannya adalah pengguna harus memilih ulang file atau direktori setiap kali memakai aplikasi, dan tidak ada cara untuk memaksa file picker dimulai dari direktori tertentu selain “direktori yang dikenal”
    • Di browser berbasis Chromium, sekarang sudah mungkin menaruh data sebagai file seperti ~/.app/app.dat
      Referensi: https://developer.chrome.com/docs/capabilities/web-apis/file...
    • Aplikasi ini tampaknya memakai better-sqlite3[0] dan menyimpan database ke file bernama private/unforget.db[1]
      Saya tidak punya pengalaman dengan SQLite, jadi tidak tahu apakah file itu sama volatilnya dengan localStorage
      [0] https://www.npmjs.com/package/better-sqlite3
      [1] https://github.com/computing-den/unforget/blob/master/src/se...
  • Terlihat bagus. Satu saran: akan lebih baik jika alur penulisan catatan ditampilkan dengan lebih jelas
    Masih belum jelas apakah ini berupa dokumen Markdown bertitel yang diorganisasi dalam folder/struktur hierarkis, “kartu” tanpa judul atau dengan judul opsional yang diatur dengan tag, atau dokumen Markdown panjang yang terus ditambahi
    Masing-masing mirip dengan workflow sistem catatan arus utama, jadi saya ingin memahami alur mana yang dirancang dan dioptimalkan
    Petunjuk bahwa Anda memulai sebagai pengguna Google Keep memang membantu, tetapi saya pernah memakai file teks Homebrew, Simplenote, Obsidian, dan juga cukup punya gambaran tentang Evernote atau OneNote, jadi akan bagus jika ada beberapa penanda tambahan tentang cara penggunaannya

    • Saya memang belum cukup memikirkan bahwa pengguna bisa datang dari sistem lain dengan konsep yang berbeda-beda. Saya akan menjelaskan workflow dengan lebih baik di catatan demo
      Jawaban singkatnya, biasanya saya menyimpan catatan yang sangat kecil, hanya beberapa baris atau checkbox tugas, dan satu catatan untuk satu ide. Namun jika suatu ide berkembang selama beberapa hari, catatan itu juga bisa menjadi jauh lebih besar, dan tidak ada batas ukuran catatan
      Seperti Markdown standar, Anda bisa menetapkan judul catatan dengan #, dan jika Anda menaruh baris kosong setelah baris pertama, baris pertama akan otomatis menjadi judul
      Tidak ada konsep tag tersendiri, tetapi Anda bisa menulis #someTag lalu mencari #someTag apa adanya. Fitur pencariannya adalah pencarian substring sederhana di semua catatan, tanpa fitur lanjutan seperti stemming
    1. Menurut saya semakin banyak opsi aplikasi catatan yang bisa dioperasikan sendiri, semakin baik
    2. Salah ketik di halaman demo: PriavcyPrivacy
    3. Saya penasaran mengapa di salah satu browser muncul error “Your browser does not support service workers. Please use another browser.” Ingin tahu apakah ini bisa diakali, atau apakah penggunaan service worker memang penting bagi pembeda aplikasi ini
    • Tanpa service worker, aplikasi tidak lagi berjalan offline, dan itu salah satu fitur intinya
      Saya ingat kadang saat bepergian dan ingin mencatat di Google Keep, ternyata tidak bisa saat offline
      Penasaran browser apa yang Anda pakai
    • Salah ketik kecil lainnya: GitHub falvoredGitHub flavored
  • Saya penasaran apakah ada rencana untuk mengintegrasikan sesuatu seperti https://simplemde.com/ ketika catatan menjadi berat
    Untuk catatan yang berisi tabel dan sebagainya, saya lebih suka editor WYSIWYG yang lebih sederhana daripada terus memikirkan sintaks Markdown

    • Saya ingin memasukkan editor WYSIWYG, tetapi dalam pengujian awal saya belum menemukan yang bekerja dengan baik di semua platform
      Ini juga akan saya coba lagi
  • Keren sekali, semoga terus berkembang
    Ini mengingatkan saya pada Joplin, dan saya penasaran ke arah mana aplikasi ini akan dibawa

    • Saya juga pernah memakai Joplin dan cukup menyukainya, tetapi selain fakta bahwa itu aplikasi Electron, ada beberapa masalah lain
      Misalnya, alur kerjanya terasa belum cukup cepat. Seharusnya saya bisa membuka aplikasi, paling banyak mengetuk sekali, lalu langsung mulai mengetik; dan bisa memasukkan beberapa item tugas tanpa masuk ke menu atau menekan tombol lain. Di desktop, semuanya memang seharusnya berpusat pada keyboard
      Dengan kata lain, saya ingin UI tidak mengganggu, dan menurut saya banyak aplikasi catatan melewatkan bagian ini
      Dari sisi arah, saya ingin membuatnya lebih mudah untuk berpindah dari aplikasi lain. Saat ini sudah ada impor Google Keep, tetapi harus jauh lebih banyak lagi
      Karena ada API publik, akan bagus jika muncul klien atau integrasi untuk Emacs, VS Code, dan Vim
      Selain itu, saat ini aplikasi ini hampir memenuhi semua kebutuhan saya
  • Saya selalu mencari repositori pengetahuan terstruktur yang lebih baik, dan biasanya menghindari aplikasi Electron atau JavaScript desktop, tetapi tampaknya eksperimen paling banyak justru datang dari sana
    Jika ini aplikasi JavaScript, saya penasaran apakah dukungan diagram Mermaid pernah dipertimbangkan. Memang berat, tetapi alasan saya belakangan memakai Joplin untuk catatan adalah karena sintaks Mermaid benar-benar mengubah permainan dibandingkan Markdown biasa
    https://mermaid.js.org/

  • Belakangan saya merasakan frustrasi serupa dengan aplikasi catatan Android, lalu menemukan aplikasi yang cukup bagus dan ingin memperkenalkannya
    Namanya Zettel Notes[1], sepenuhnya offline, mendukung berbagai opsi sinkronisasi, dan catatan disimpan sebagai file Markdown sederhana di direktori
    [1] https://play.google.com/store/apps/details?id=org.eu.thedoc....

    • Zettel Notes layak direkomendasikan. Integrasi Git dengan SourceHut agak merepotkan, tetapi setelah disetel hasilnya sangat bagus, dan sebagian besar fitur Org yang saya pakai juga didukung
  • Saya selalu mencari aplikasi catatan yang bisa di-host sendiri dan tampak bagus baik di mobile maupun desktop
    Saya penasaran apakah ada rencana untuk merilis kontainer Docker suatu saat nanti

    • Jika itu membuat deployment lebih mudah, merilis kontainer Docker juga tidak masalah
  • Bagus sekali. Saya penasaran apakah bisa memberi tahu lebih banyak tentang aplikasi native-nya
    Saya mencari sesuatu yang native, ringan, dan cepat seperti Apple Notes

    • Ini bukan aplikasi native, melainkan Progressive Web App (PWA)
      Saya sudah lama memakainya langsung di iPhone lama, dan terasa ringan serta cepat
      Untuk memasangnya, buka Safari lalu pilih Bagikan → Tambahkan ke Layar Utama
  • Saya penasaran apa yang dipakai untuk sinkronisasi
    Saya sudah melihat beberapa solusi CRDT, tetapi belum yakin harus memakai yang mana, dan di package.json saya tidak menemukan CRDT atau pustaka sinkronisasi tertentu
    Jika sinkronisasinya dibuat sendiri, saya penasaran bagaimana konflik ditangani

    • Ini bukan CRDT; saya memilih pendekatan yang jauh lebih sederhana
      if (a.modification_time > b.modification_time) ...
      Hanya itu. Seperti fitur-fitur lain, awalnya saya ingin mengimplementasikan CRDT, tetapi kemudian menyadari bahwa dalam praktiknya saya tidak merindukannya
      Karena ini bukan editor kolaboratif tempat beberapa pengguna mengedit catatan yang sama, CRDT tidak terlalu berguna
      Menurut saya, dalam aplikasi catatan pribadi, CRDT baru dibutuhkan ketika beberapa perangkat sama-sama offline lalu mengedit catatan yang sama secara bersamaan