HN Show: ऑफलाइन-फर्स्ट और encrypted notes app Unforget
(unforget.computing-den.com)- 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 टिप्पणियां
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 के रूप में बांधने का तरीका बिल्कुल मन नहीं भाता
हालांकि 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 पर विचार कर रहे हैं, यह जानना चाहूंगा
आम तौर पर भी यह व्यवहार खीझ पैदा करता है, लेकिन अगर server-side backup न हो तो यह सिर्फ झुंझलाहट से आगे की बात हो जाती है
यह सावधानी
localStorageपर भी लागू होती है या नहीं, यह पक्का नहीं, लेकिन अनुभव के हिसाब से IndexedDB पर लागू हुई है और Electron apps में भी ऐसा ही दिखायह काफी अच्छे से काम करता है, लेकिन downside यह है कि user को app इस्तेमाल करते समय हर बार file या directory फिर से चुननी पड़ती है, और file picker को “well-known directory” के अलावा किसी specific directory से शुरू कराने के लिए मजबूर करने का कोई तरीका नहीं है
~/.app/app.datजैसी file के रूप में रखने का तरीका संभव हैसंदर्भ: https://developer.chrome.com/docs/capabilities/web-apis/file...
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 मिलें तो अच्छा होगा
जल्दी जवाब दूं तो, आम तौर पर मैं कुछ 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 नहीं हैंPriavcy→Privacyयाद है कि travel के दौरान Google Keep में memo करने की कोशिश की थी और कभी-कभी offline में काम नहीं करता मिला था
आप कौन-सा browser इस्तेमाल कर रहे हैं?
GitHub falvored→GitHub flavoredजब नोट्स भारी होने लगें, तो जानना चाहेंगे कि क्या https://simplemde.com/ जैसी किसी चीज़ को integrate करने की योजना है
अगर नोट्स में tables आदि हों, तो Markdown syntax पर लगातार ध्यान देने के बजाय मैं ज्यादा सरल WYSIWYG editor पसंद करूंगा
इसे भी एक बार try करेंगे
शानदार काम है और उम्मीद है आगे और बेहतर होगा
Joplin याद आया, और जानना चाहूंगा कि आप इस ऐप को किस दिशा में ले जाना चाहते हैं
उदाहरण के लिए 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....
मैं हमेशा ऐसा notes app खोजता रहता हूं जिसे self-host किया जा सके और जो mobile और desktop दोनों पर अच्छा दिखे
जानना चाहूंगा कि क्या कभी Docker container deploy करने की योजना है
बढ़िया। native app के बारे में और बता सकते हैं?
Apple Notes जैसा native, हल्का और तेज़ कुछ खोज रहा हूं
पुराने iPhone पर खुद लंबे समय से इस्तेमाल कर रहा हूं और यह हल्का व तेज़ है
install करने के लिए Safari में Share → Add to Home Screen पर जाएं
sync के लिए क्या इस्तेमाल करते हैं, जानना चाहूंगा
कई CRDT solutions देखे हैं, लेकिन क्या इस्तेमाल करना चाहिए इसे लेकर निश्चित नहीं था, और
package.jsonमें कोई खास CRDT या sync library नहीं मिलीअगर अपना sync है, तो conflicts कैसे handle करते हैं?
if (a.modification_time > b.modification_time) ...बस इतना ही। बाकी features की तरह पहले CRDT implement करने का इरादा था, लेकिन असल में महसूस हुआ कि इसकी कमी नहीं खलती
चूंकि यह ऐसा collaborative editor नहीं है जहां कई users एक ही note edit करें, इसलिए CRDT खास उपयोगी नहीं है
personal notes app में CRDT की जरूरत शायद तभी पड़ती है जब कई devices सभी offline हों और उसी समय एक ही note को edit करें