3 पॉइंट द्वारा GN⁺ 2024-06-13 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Unforget एक minimal notes app है, जो notes को पहले local रूप से लिखने और फिर encrypted sync के जरिए आगे लिखने देता है; यह privacy और devices के बीच usability दोनों को सामने रखता है
  • यह Progressive Web App तरीके में है, इसलिए browser, desktop और mobile पर इस्तेमाल किया जा सकता है, और Electron.js के बिना चलता है
  • Markdown writing, JSON format में one-click export, public API, self-hosting और cloud options देता है
  • free sign-up से पूरी तरह encrypted cloud backup और sync इस्तेमाल किया जा सकता है, और email या phone number की जरूरत नहीं है
  • Google Keep, Apple Notes, Standard Notes import को support करता है, लेकिन install की उपलब्धता और तरीका browser के हिसाब से अलग है

ऑफलाइन-फर्स्ट notes और data control

  • Unforget एक minimal offline-first note-taking app है, और end-to-end encrypted sync देता है
  • App का स्वरूप और उपयोग environment

    • Progressive Web App के रूप में browser, desktop और mobile पर इस्तेमाल किया जा सकता है
    • Electron.js के बिना चलता है, और optional one-click install को support करता है
    • privacy-first design को आगे रखता है और MIT license वाले open source के रूप में उपलब्ध है
  • Writing, migration और export

    • Markdown writing को support करता है
    • Google Keep, Apple Notes, Standard Notes से import संभव है
    • note data को JSON format में one-click export किया जा सकता है
  • Sync और विस्तार

    • free sign-up के जरिए notes को पूरी तरह encrypted state में cloud पर backup किया जा सकता है और कई devices में sync किया जा सकता है
    • sign-up के लिए email या phone number की जरूरत नहीं है
    • self-hosting और cloud options दोनों देता है
    • public API के जरिए अपना client बनाया जा सकता है

Browser के हिसाब से install करने का तरीका

  • Unforget को browser में सीधे इस्तेमाल किया जा सकता है, और install करने का तरीका environment के हिसाब से अलग है
  • Install support

    • Chrome: URL bar में install icon का इस्तेमाल
    • Edge: URL bar में install icon का इस्तेमाल
    • Android Browser: menu → Add to Home Screen
    • Safari Desktop: Share → Add to Dock
    • Safari iOS: Share → Add to Home Screen
    • Firefox Android: URL bar में install icon का इस्तेमाल
  • Install limitation

    • Firefox Desktop में install नहीं किया जा सकता

1 टिप्पणियां

 
GN⁺ 2024-06-13
Hacker News की राय
  • offline-first PWA बनाने का अनुभव कैसा रहा, यह जानने की उत्सुकता है
    वेब को सिर्फ deployment माध्यम और browser को runtime environment के रूप में इस्तेमाल करने का विचार आकर्षक है, लेकिन local storage की छोटी-छोटी पेचीदगियां चिंता पैदा करती हैं
    डेटा ~/.app/app.dat जैसी file के रूप में नहीं दिखता, इसलिए “जो नजर नहीं आता, वह भूल जाता है” जैसा लगता है; browser update से अचानक गायब हो जाने की संभावना, और web के basic model में schema version management संभालने की जटिलता भी खटकती है
    नए computer पर ले जाते समय data portability भी समस्या है, और सिर्फ GitHub account हो तो server के बिना deploy किया जा सकता है—यह बात आकर्षक है, लेकिन data वाला हिस्सा अभी अस्थिर लगता है
    SQLite जैसी चीज न होने की बात अलग रख दें, फिर भी SQLite को WebAssembly के bundle के रूप में बांधने का तरीका बिल्कुल मन नहीं भाता

    • web stack में निश्चित रूप से छोटी-छोटी पेचीदगियां बहुत हैं, लेकिन IndexedDB अब तक काफी स्थिर तरीके से काम करता आया है
      हालांकि store पर कई keys से index बनाते समय हर key को ascending/descending के रूप में specify नहीं कर पाना जैसी परेशान करने वाली limitations हैं
      अगर PWA को home screen में add करके install किया गया है, तो browser को update जैसे कारणों से IndexedDB delete नहीं करना चाहिए, और व्यवहार में browsers ऐसा पालन करते दिखते हैं
      PWA development experience कुल मिलाकर मिला-जुला रहा, और यह app के प्रकार पर बहुत निर्भर करता है। अगर encrypted cloud backup और sync वाला memo app हो, तो PWA शायद सबसे अच्छा विकल्प हो सकता है; लेकिन file system access जैसे platform के साथ ज्यादा गहरे integration की जरूरत हो, तो मैं PWA से बचूंगा
      एक और समस्या iOS Safari है, जिसमें background sync या offline push notifications जैसी बहुत-सी PWA features नहीं हैं, और आगे भी support की संभावना कम लगती है
      क्या आप किसी खास app के लिए PWA पर विचार कर रहे हैं, यह जानना चाहूंगा
    • browser में app बनाने वाले लोगों को इस बात को लेकर बहुत सावधान रहना चाहिए कि disk space कम होने पर कई browsers website storage का कुछ हिस्सा फेंक सकते हैं
      आम तौर पर भी यह व्यवहार खीझ पैदा करता है, लेकिन अगर server-side backup न हो तो यह सिर्फ झुंझलाहट से आगे की बात हो जाती है
      यह सावधानी localStorage पर भी लागू होती है या नहीं, यह पक्का नहीं, लेकिन अनुभव के हिसाब से IndexedDB पर लागू हुई है और Electron apps में भी ऐसा ही दिखा
    • मुझे लगता है कि सबसे सुरक्षित offline storage तरीका browser file system (https://developer.mozilla.org/en-US/docs/Web/API/File_System...) का इस्तेमाल करके data को browser के हाथों से बाहर रखना है
      यह काफी अच्छे से काम करता है, लेकिन downside यह है कि user को app इस्तेमाल करते समय हर बार file या directory फिर से चुननी पड़ती है, और file picker को “well-known directory” के अलावा किसी specific directory से शुरू कराने के लिए मजबूर करने का कोई तरीका नहीं है
    • Chromium-based browsers में अब data को ~/.app/app.dat जैसी file के रूप में रखने का तरीका संभव है
      संदर्भ: https://developer.chrome.com/docs/capabilities/web-apis/file...
    • यह app better-sqlite3[0] इस्तेमाल करता है और database को private/unforget.db[1] नाम की file में store करता दिखता है
      SQLite का अनुभव नहीं है, इसलिए नहीं जानता कि वह file localStorage जितनी volatile है या नहीं
      [0] https://www.npmjs.com/package/better-sqlite3
      [1] https://github.com/computing-den/unforget/blob/master/src/se...
  • अच्छा लग रहा है। एक सुझाव दूं तो memo writing flow को और स्पष्ट दिखाया जाए तो अच्छा होगा
    अभी स्पष्ट नहीं है कि यह title वाले Markdown documents को folders/hierarchy में व्यवस्थित करने का तरीका है, या बिना title या optional title वाले “cards” को tags से organize करने का तरीका, या फिर लगातार जोड़ते रहने वाला लंबा Markdown document
    इनमें से हर एक mainstream memo systems जैसे workflow से मिलता-जुलता है, इसलिए समझना चाहता हूं कि आपने कौन-सा flow design और optimize किया है
    Google Keep user के रूप में शुरुआत करने वाला संकेत मददगार है, लेकिन मैंने Homebrew text files, Simplenote, Obsidian आदि इस्तेमाल किए हैं और Evernote या OneNote की भी कुछ समझ है, इसलिए usage pattern के बारे में कुछ और signposts मिलें तो अच्छा होगा

    • सच कहूं तो मैंने पर्याप्त रूप से नहीं सोचा था कि लोग अलग-अलग concepts वाले दूसरे systems से आ सकते हैं। demo memos में workflow को बेहतर समझाऊंगा
      जल्दी जवाब दूं तो, आम तौर पर मैं कुछ lines या todo checkboxes जितने बहुत छोटे memos रखता हूं, और हर idea के लिए एक memo रखता हूं। हालांकि अगर कोई idea कई दिनों में बड़ा होता है तो वह memo भी काफी बड़ा हो सकता है, और memo size की कोई limit नहीं है
      standard Markdown की तरह # से memo title specify कर सकते हैं, और अगर पहली line के बाद blank line छोड़ दें तो पहली line अपने-आप title बन जाती है
      tags की अलग concept नहीं है, लेकिन #someTag लिखकर उसी #someTag को search कर सकते हैं। search feature सभी memos पर simple substring search है, stemming जैसी advanced features नहीं हैं
    1. खुद host कर सकने वाले memo app options जितने ज्यादा हों, उतना अच्छा है
    2. demo page में typo: PriavcyPrivacy
    3. एक browser में “Your browser does not support service workers. Please use another browser.” error क्यों दिखता है, यह जानना चाहता हूं। क्या इसे bypass किया जा सकता है, या service worker का इस्तेमाल इस app की differentiation के लिए जरूरी है?
    • service worker न हो तो यह अब offline काम नहीं करता, और वही core features में से एक है
      याद है कि travel के दौरान Google Keep में memo करने की कोशिश की थी और कभी-कभी offline में काम नहीं करता मिला था
      आप कौन-सा browser इस्तेमाल कर रहे हैं?
    • एक और छोटा typo: GitHub falvoredGitHub flavored
  • जब नोट्स भारी होने लगें, तो जानना चाहेंगे कि क्या https://simplemde.com/ जैसी किसी चीज़ को integrate करने की योजना है
    अगर नोट्स में tables आदि हों, तो Markdown syntax पर लगातार ध्यान देने के बजाय मैं ज्यादा सरल WYSIWYG editor पसंद करूंगा

    • WYSIWYG editor जोड़ना चाहते हैं, लेकिन शुरुआती testing में ऐसा कुछ नहीं मिला जो सभी platforms पर अच्छी तरह काम करे
      इसे भी एक बार try करेंगे
  • शानदार काम है और उम्मीद है आगे और बेहतर होगा
    Joplin याद आया, और जानना चाहूंगा कि आप इस ऐप को किस दिशा में ले जाना चाहते हैं

    • Joplin भी इस्तेमाल किया है और काफी पसंद है, लेकिन Electron app होने के अलावा भी कुछ समस्याएं थीं
      उदाहरण के लिए workflow पर्याप्त तेज़ महसूस नहीं हुआ। ऐप खोलते ही, ज्यादा से ज्यादा एक बार tap करने के बाद तुरंत typing शुरू कर सकना चाहिए, और menu में जाए बिना या दूसरे buttons दबाए बिना कई todo items डाल सकना चाहिए। desktop पर तो वैसे भी सब कुछ keyboard-centric होना चाहिए
      कहें तो मैं चाहता हूं कि UI बीच में बाधा न बने, और मुझे लगता है कि कई notes apps यह हिस्सा miss कर देते हैं
      दिशा की बात करें तो मैं इसे ऐसा बनाना चाहता हूं कि दूसरे apps से migrate करना आसान हो। Google Keep import पहले से है, लेकिन बहुत ज्यादा options चाहिए
      public API है, इसलिए Emacs, VS Code, Vim clients या integrations भी आएं तो अच्छा होगा
      इसके अलावा अभी यह मेरी जरूरतें लगभग पूरी कर देता है
  • मैं हमेशा बेहतर structured knowledge store की तलाश में रहता हूं, और आम तौर पर Electron apps या desktop JavaScript से बचता हूं, लेकिन लगता है सबसे ज्यादा experiments वहीं से आ रहे हैं
    अगर यह JavaScript app है, तो क्या Mermaid diagrams support पर विचार किया है? भारी जरूर है, लेकिन आजकल Joplin को notes के लिए इस्तेमाल करने की वजह यही है कि Mermaid syntax ने simple Markdown की तुलना में खेल बदल दिया है
    https://mermaid.js.org/

  • हाल में Android note apps को लेकर इसी तरह की झुंझलाहट महसूस हो रही थी, फिर एक काफी बढ़िया app मिला, जिसे紹介 करना चाहूंगा
    यह Zettel Notes[1] नाम का app है, पूरी तरह offline है, कई sync options support करता है, और notes directories में रखी simple Markdown files होते हैं
    [1] https://play.google.com/store/apps/details?id=org.eu.thedoc....

    • Zettel Notes recommend करने लायक है। SourceHut के साथ Git integration थोड़ा tricky था, लेकिन एक बार setup हो जाए तो शानदार है, और यह मेरे इस्तेमाल वाले Org features भी ज्यादातर support करता है
  • मैं हमेशा ऐसा notes app खोजता रहता हूं जिसे self-host किया जा सके और जो mobile और desktop दोनों पर अच्छा दिखे
    जानना चाहूंगा कि क्या कभी Docker container deploy करने की योजना है

    • अगर deployment आसान होता है, तो Docker container जारी करना भी ठीक रहेगा
  • बढ़िया। native app के बारे में और बता सकते हैं?
    Apple Notes जैसा native, हल्का और तेज़ कुछ खोज रहा हूं

    • यह native app नहीं, बल्कि Progressive Web App (PWA) है
      पुराने iPhone पर खुद लंबे समय से इस्तेमाल कर रहा हूं और यह हल्का व तेज़ है
      install करने के लिए Safari में Share → Add to Home Screen पर जाएं
  • sync के लिए क्या इस्तेमाल करते हैं, जानना चाहूंगा
    कई CRDT solutions देखे हैं, लेकिन क्या इस्तेमाल करना चाहिए इसे लेकर निश्चित नहीं था, और package.json में कोई खास CRDT या sync library नहीं मिली
    अगर अपना sync है, तो conflicts कैसे handle करते हैं?

    • CRDT नहीं है, बल्कि बहुत ज्यादा सरल तरीका चुना है
      if (a.modification_time > b.modification_time) ...
      बस इतना ही। बाकी features की तरह पहले CRDT implement करने का इरादा था, लेकिन असल में महसूस हुआ कि इसकी कमी नहीं खलती
      चूंकि यह ऐसा collaborative editor नहीं है जहां कई users एक ही note edit करें, इसलिए CRDT खास उपयोगी नहीं है
      personal notes app में CRDT की जरूरत शायद तभी पड़ती है जब कई devices सभी offline हों और उसी समय एक ही note को edit करें