- PocketBase एक ऐसा सिंगल‑फाइल ओपन सोर्स बैकएंड है जिसमें डेटाबेस, प्रमाणीकरण, फ़ाइल स्टोरेज और एडमिन डैशबोर्ड शामिल हैं
- स्कीमा बिल्डर, डेटा वैलिडेशन, रीयल‑टाइम सब्सक्रिप्शन, REST API को सपोर्ट करने वाला इन‑बिल्ट हाई‑परफॉर्मेंस डेटाबेस स्ट्रक्चर प्रदान करता है
- ईमेल/पासवर्ड तथा OAuth2 लॉगिन (Google, Facebook, GitHub, GitLab) सपोर्ट करके यूज़र मैनेजमेंट सरल बनाता है
- फाइलों को लोकल या S3 स्टोरेज में सुरक्षित रूप से सेव किया जा सकता है, और डेटाबेस रिकॉर्ड से मीडिया अटैच करके थंबनेल ऑटोमैटिक जनरेशन किया जा सकता है
- इसे स्टैंडअलोन ऐप या Go·JavaScript hooks के साथ एक एक्सटेंडेबल फ्रेमवर्क के रूप में प्रयोग करके हल्का, कस्टम बैकएंड बनाना आसान होता है
PocketBase का अवलोकन
- PocketBase एक single executable से चलने वाला ओपन सोर्स बैकएंड प्लेटफ़ॉर्म है
- डेटाबेस, प्रमाणीकरण, फाइल स्टोरेजी और एडमिन डैशबोर्ड का एकीकृत सपोर्ट
- अलग सर्वर सेटअप के बिना जल्दी रन करने वाला स्ट्रक्चर
डेटाबेस फीचर्स
- इसमें स्कीमा बिल्डर, डेटा वैलिडेशन, रीयल‑टाइम सब्सक्रिप्शन, और REST API सपोर्ट करने वाला built-in डेटाबेस मौजूद है
- रीयल‑टाइम डेटा परिवर्तन डिटेक्शन और सब्सक्रिप्शन सुविधा उपलब्ध है
- REST API के जरिए डेटा को आसान तरीके से देखने, बनाने, अपडेट करने और हटाने की सुविधा मिलती है
उपयोगकर्ता प्रमाणीकरण
- ऐप यूज़र्स के लिए ईमेल/पासवर्ड आधारित लॉगिन उपलब्ध है
- OAuth2 प्रमाणीकरण से Google, Facebook, GitHub, GitLab अकाउंट्स के साथ साइन‑अप और लॉगिन किया जा सकता है
फाइल स्टोरेज
- फाइलों को लोकल या S3 स्टोरेज में सुरक्षित रूप से सेव किया जा सकता है
- डेटाबेस रिकॉर्ड में मीडिया फाइलें अटैच की जा सकती हैं
- अपलोड के दौरान थंबनेल ऑटोमैटिक जनरेशन फीचर उपलब्ध है
एक्सटेंसिबिलिटी और डेवलपर सपोर्ट
- PocketBase को standalone application के रूप में या Go और JavaScript hooks के माध्यम से एक framework के तौर पर भी प्रयोग किया जा सकता है
- डेवलपर्स अपने खुद के लॉजिक को जोड़कर कस्टम बैकएंड बना सकते हैं
JavaScript SDK उदाहरण
- JavaScript SDK के जरिए PocketBase server के साथ interact किया जा सकता है
- उदाहरण कोड में
example कलेक्शन के रिकॉर्ड की सूची देखना, सिंगल रिकॉर्ड देखना/हटाना/बनाना, तथा real-time subscribe और unsubscribe दिखाए गए हैं
pb.collection('example').getList(), getOne(), create(), delete(), subscribe() जैसे methods उपलब्ध हैं
1 टिप्पणियां
Hacker News राय
“SQLite scalable नहीं है” वाली बात ज़्यादातर premature optimization की गलतफ़हमी है
असल में WAL contention limit से टकराने वाले मामले बहुत कम होते हैं, और single binary की सादगी distributed system की जटिलता से कहीं बेहतर लगती है
आजकल छोटे प्रोजेक्ट में भी लोग default रूप से DB cluster और Redis cache जोड़ देते हैं, लेकिन Pocketbase दिखाता है कि CRUD ऐप्स के 99% में bottleneck DB नहीं बल्कि network latency और developer का maintenance time होता है
Rust CLI benchmark से test किया था, और उसी machine पर यह MySQL या Postgres से बेहतर perform कर रहा था
इस scale के project के लिए SQLite सबसे सही है
application side पर सारी calculations संभालनी पड़ती हैं, जो झंझट वाला है
Pocketbase दिखते ही मैं तुरंत upvote कर देता हूँ
मैं इसे कई production apps में इस्तेमाल कर रहा हूँ और यह बहुत stable है
कभी-कभी breaking changes आते हैं, लेकिन कुल मिलाकर शानदार है और scaling भी अच्छी है
जब कोई ज़रूरी feature नहीं होता तो थोड़ा पेचीदा हो सकता है, लेकिन experienced developer इसे संभाल सकता है
बस developer अकेला है, इसलिए future maintenance को लेकर थोड़ी चिंता रहती है
फिर भी जब front-end और back-end को अलग रखना हो, तब यह वाकई बहुत अच्छा option है
Personal projects और internal tools के लिए मैं Pocketbase बहुत पसंद करता हूँ
PocketPages के साथ इस्तेमाल करें तो file-based routing और templates आसानी से मिल जाते हैं
automatic DB migration feature की वजह से schema changes को version control में शामिल किया जा सकता है
मैंने इसमें Gemini protocol server भी जोड़ा है ताकि Lagrange से अपना personal knowledge graph browse कर सकूँ
Pocketbase एक backend server है जिसे GUI से configure किया जा सकता है
यह आपको लगभग बिना code के काम करने वाला backend बनाने देता है, इसलिए prototype, MVP और simple apps के लिए उपयुक्त है
इस concept को Firebase ने popular बनाया था
जो backend मैं लिखता हूँ, उसमें सैकड़ों से हज़ारों lines of code लगती हैं; यह उसे कैसे replace करता है, यह समझना चाहता हूँ
ऐसे tools से किस range के apps बनाए जा सकते हैं, यह भी जानना चाहता हूँ
मैंने side project में Pocketbase इस्तेमाल किया था और यह वाकई काफ़ी impressive था
मैं लंबे समय से Django के साथ काम कर रहा हूँ, लेकिन छोटे और मझोले projects में traditional backend खुद बनाने से Pocketbase कहीं बेहतर fit बैठता है
अगर कोई सवाल हो तो मैं खुशी से जवाब दूँगा
और क्या यह PostgreSQL support करता है, या सिर्फ SQLite तक सीमित है?
इसलिए मैंने Claude Skill बनाया; क्या किसी और का भी ऐसा अनुभव रहा है?
Trailbase इसी concept का Rust implementation है
इसलिए मैं Trailbase पर चला गया
यानी यह पूरी app भी host कर सकता है
Guide link
मैं Pocketbase को side project की authentication layer के रूप में इस्तेमाल कर रहा हूँ
यह kavla.dev पर चल रहा है, और इसका hook system शानदार है
Go event hook docs की मदद से infra automation भी आसानी से implement किया जा सकता है
मैंने SQLite और DuckDB से MVP जल्दी बना लिया था, लेकिन बाद में backup और production में ले जाने के चरण में पछतावा हुआ
लगता है शुरुआत से ही Supabase लिया होता तो ज़्यादा आसान रहता
मैंने Pocketbase से OpenSOHO बनाया, और इससे development time काफ़ी बचा
backend को reusable बनाने के लिए थोड़ा modify किया, लेकिन यह मुश्किल नहीं था
सिर्फ screenshots देखकर भी Pocketbase की छाप तुरंत दिख जाती है
GitHub link
Pocketbase के SQLite backup को लेकर चिंता थी, इसलिए मैंने खुद sqlrsync.com बनाया, जो running state में भी sqlite3_rsync से backup कर सकता है
MVP काम कर रहा है, और यह Cloudflare Durable Objects पर आधारित है, इसलिए तेज़ और stable है
Feedback का स्वागत है