[{"data":1,"prerenderedAt":575},["ShallowReactive",2],{"project-32013330":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":44,"post_text":48,"what":49,"said":103,"maker_in_thread":234,"shape":241,"grid":245,"attempts":536,"same_week":537,"maker_shows":33,"maker_hidden":567,"reader_version":568,"card":569},"32013330","PocketBase","Open Source realtime backend in one file","title","Show HN: PocketBase – Open Source realtime backend in one file","https:\u002F\u002Fgithub.com\u002Fpocketbase\u002Fpocketbase","github.com","randomwebdev",1657197911,2022,563,111,40,2570,2,"legend","infrastructure","self-hosted backend","other",[24,25,26,21,27],"backend as a service","sqlite","firebase alternative","realtime","mixed",0.351,{"positive":31,"neutral":32,"mixed":33,"critical":34},26,30,1,8,65,{"idea":37,"design":39,"docs":40,"performance":42,"execution":43},{"positive":34,"critical":38},0,{"positive":18,"critical":38},{"positive":38,"critical":41},7,{"positive":38,"critical":33},{"positive":33,"critical":38},[45,45,46,47,33,33,47,33,47,33,47,47,45,47,45,45,47,47,47,47,47,47,38,45,45,45,45,45,45,45,45,45,47,47,45,45,47,46,38,38],5,4,3,null,{"problem":50,"audience":60,"pricing":48,"motivation":69,"time_to_build":73,"stack":79,"openness":100,"stage":101,"team_size":102},{"value":51,"source":52,"evidence":53},"Needs a self-hostable backend with database, auth, files and realtime without third-party services","maker",[54,57],{"id":55,"by":11,"text":56},"32013394","PocketBase is a small open source project that I've been working for the last couple of months. You could think of PocketBase as a lightweight Firebase\u002FSupabase alternative. In…",{"id":58,"by":11,"text":59},"32014229","Thanks! It was initially created to be the backend for the next version of my other open source project - Presentator v3 (https:\u002F\u002Fgithub.com\u002Fpresentator\u002Fpresentator). You could…",{"value":61,"source":62,"evidence":63},"Developers wanting a simple self-hosted Firebase\u002FSupabase-like backend","inferred",[64,65],{"id":55,"by":11,"text":56},{"id":66,"by":67,"text":68},"32016766","sangnoir","It's a lightweight replacement for Firebase. I That's why it is described as a backend, because it's primary feature is to act as a data store. If don't understand what a project…",{"value":70,"source":52,"evidence":71},"Wanted a self-hosted backend with no third-party dependencies, for the next version of Presentator",[72],{"id":58,"by":11,"text":59},{"value":74,"source":52,"evidence":75},"3-4 months of work on the project",[76],{"id":77,"by":11,"text":78},"32015265","By default PocketBase uses the local filesystem, but you could also configure a S3 compatible storage (AWS, DigitalOcean, Vultr, etc.) from \"Settings > Files Storage > Use S3…",[80,84,88,94],{"value":81,"source":52,"evidence":82},"Go",[83],{"id":55,"by":11,"text":56},{"value":85,"source":52,"evidence":86},"SQLite",[87],{"id":55,"by":11,"text":56},{"value":89,"source":52,"evidence":90},"SvelteKit (docs site)",[91],{"id":92,"by":11,"text":93},"32016435","The documentation is not auto generated and is part of the static landing site (built with SvelteKit). I didn't bother open source it because it is kinda messy and a little…",{"value":95,"source":52,"evidence":96},"ozzo-dbx query builder",[97],{"id":98,"by":11,"text":99},"32015819","\"Collections\" stores a single records table meta data (eg. name, fields, validators, etc.), so when you create a new collection a new related table will be created (see…","open_source","beta","solo",{"praise":104,"objections":135,"requests":159,"questions":191,"alternatives":213},[105,117,128],{"value":106,"source":107,"evidence":108},"Polished documentation and website","commenter",[109,113],{"id":110,"by":111,"text":112},"32014792","Comevius","This here is some quality work top to bottom, including the documentation and the website.",{"id":114,"by":115,"text":116},"32014936","Xeoncross","Very nice, I thought it was a basic wrapper around SQLite but then realized it actually had more features then that, such as it's own admin dashboard. Then I realized you built…",{"value":118,"source":107,"evidence":119},"Useful for rapid prototyping and local development",[120,124],{"id":121,"by":122,"text":123},"32017295","segphault","This looks like a great solution for rapid prototyping scenarios where you want a basic CRUD backend with as little friction as possible. The API preview feature in the admin…",{"id":125,"by":126,"text":127},"32021793","ilrwbwrkhv","This is fantastic work. Supabase local development has always been a pain.",{"value":129,"source":107,"evidence":130},"Go backend makes it easy to integrate custom code",[131],{"id":132,"by":133,"text":134},"32024826","Wronnay","I really like this. All my current projects use Go as a backend and I definitely need my own routes and business logic, so PocketBase looks way easier to integrate into my…",[136,143,150],{"value":137,"source":107,"evidence":138},"Description of 'backend' and terms like 'backed-in files' are unclear",[139],{"id":140,"by":141,"text":142},"32016416","masukomi","feedback: re the site: i have no idea what you mean by a \"backend\". If it's got a \"admin dashboard\" it's got a UI which means it's got a front-end which means it's not a backend.…",{"value":144,"source":107,"evidence":145},"Calling it realtime is misleading",[146],{"id":147,"by":148,"text":149},"32019924","abraxas","Nice but my super anal quip is please don't call this thing \"realtime\". It doesn't make sense in this context. What is realtime about it? Are there timing guarantees or are…",{"value":151,"source":52,"evidence":152},"Single SQLite server means no horizontal scaling",[153,156],{"id":154,"by":11,"text":155},"32015852","You may want to check Supabase or Nhost in that case. PocketBase was specifically designed to be self-contained and running only on a single server.",{"id":157,"by":11,"text":158},"32014538","Other than some json functions, PocketBase doesn't use too much SQLite specific features, but I don't plan adding support for other databases at the moment. Please also note that…",[160,171,177,184],{"value":161,"source":107,"evidence":162},"Postgres support",[163,167],{"id":164,"by":165,"text":166},"32015767","roguas","I would love it. But: postgres, +backups, +replica managment. Basically a managed database for postgres in a container.",{"id":168,"by":169,"text":170},"32014351","pbronez","Sweet. How tightly is this coupled to SQLite? I’d like to embed Dolt [0] instead, specifically for the Dolthub-backed collaboration model. [0] https:\u002F\u002Fgithub.com\u002Fdolthub\u002Fdolt",{"value":172,"source":52,"evidence":173},"Index creation in admin UI",[174],{"id":175,"by":11,"text":176},"32044133","Currently you cannot create indexes through the admin UI, but it's in my todo. As an alternative, you can always create indexes through DB migrations or add the index directly…",{"value":178,"source":107,"evidence":179},"Client SDKs for mobile platforms",[180],{"id":181,"by":182,"text":183},"32020635","999900000999","Any client SDKs for Android, iOS, React, etc.",{"value":185,"source":107,"evidence":186},"Litestream integration for backups",[187],{"id":188,"by":189,"text":190},"32021280","creakingstairs","This is cool. I think it would also be neat to have option to have Litestream [1] integration so that users can use this without any persistent volume or worry about back ups [1]…",[192,199,206],{"value":193,"source":107,"evidence":194},"How realtime subscriptions are implemented",[195],{"id":196,"by":197,"text":198},"32014646","oakesm9","How are the real time subscriptions with SQLite achieved? Is this a feature of SQLite itself or something that PocketBase itself implements on top of it?",{"value":200,"source":107,"evidence":201},"Offline client support",[202],{"id":203,"by":204,"text":205},"32017688","catchmeifyoucan","This looks great! Does this have support for offline usage on the client?",{"value":207,"source":107,"evidence":208},"Comparison with Ory Kratos",[209],{"id":210,"by":211,"text":212},"32175628","asmutalix","Congrats! What a lovely project. What a fantastic job! Question: I am currently evaluating Ory\u002FKratos as authentication backend for a side project. Ory Kratos is a mature and…",[214,219,223,230],{"value":215,"source":107,"evidence":216},"Supabase",[217,218],{"id":55,"by":11,"text":56},{"id":154,"by":11,"text":155},{"value":220,"source":107,"evidence":221},"Firebase",[222],{"id":66,"by":67,"text":68},{"value":224,"source":107,"evidence":225},"Appwrite",[226],{"id":227,"by":228,"text":229},"32021763","benkaiser","For anyone curious, another popular open-source backend as a service is AppWrite: https:\u002F\u002Fappwrite.io\u002F I've tried them out for some dummy projects and they seem pretty great, and…",{"value":231,"source":52,"evidence":232},"Nhost",[233],{"id":154,"by":11,"text":155},{"comments":235,"answered":236,"key":237},20,16,[238,239,240],{"id":55,"text":56},{"id":58,"text":59},{"id":98,"text":99},{"commenters":35,"max_depth":242,"maker_replies":235,"first_comment_mins":243,"lifespan_hours":244},9,6,327,[246,248,250,253,257,258,261,265,269,271,274,276,278,280,282,285,288,291,293,295,297,301,303,305,308,311,314,317,320,323,327,330,334,336,339,342,343,346,348,350,352,353,356,357,358,361,364,366,369,370,373,375,379,380,384,386,389,392,395,398,400,402,404,407,409,413,415,419,421,422,425,427,430,432,436,438,441,442,445,449,451,452,456,460,464,468,472,474,477,480,482,484,488,489,491,493,496,498,500,502,506,508,510,514,518,521,524,526,529,531,534],[114,38,45,247,115,38],"project\u002Fpositive\u002Fnone",[55,33,38,249,11,33],"project\u002Fneutral\u002Fnone",[251,33,45,247,252,38],"32014141","Pr0ject217",[254,33,47,255,256,38],"32014145","maker\u002Fneutral\u002Fidea","Silica6149",[58,33,38,255,11,33],[259,33,45,247,260,38],"32014207","mr-karan",[262,33,47,263,264,38],"32015268","maker\u002Fneutral\u002Fnone","hernantz",[266,33,47,267,268,38],"32015298","project\u002Fneutral\u002Fdesign","giancarlostoro",[98,33,38,270,11,33],"project\u002Fneutral\u002Fexecution",[272,33,45,273,268,38],"32016178","maker\u002Fpositive\u002Fnone",[140,33,33,275,141,38],"project\u002Fcritical\u002Fdocs",[66,33,38,277,67,38],"commenter\u002Fneutral\u002Fnone",[279,33,33,275,141,38],"32017372",[281,33,38,277,67,38],"32017541",[283,33,33,275,284,38],"32017756","semireg",[286,33,47,249,287,38],"32018128","resoluteteeth",[289,33,47,290,284,38],"32018242","project\u002Fneutral\u002Fidea",[292,33,47,290,287,38],"32018460",[294,33,38,277,284,38],"32018538",[296,33,47,249,67,38],"32020729",[298,33,38,299,300,38],"32016795","commenter\u002Fneutral\u002Fdocs","iampims",[302,33,33,275,141,38],"32017278",[304,33,47,249,287,38],"32018224",[306,33,38,277,307,38],"32019245","rpdillon",[309,33,33,275,310,38],"32016754","swyx",[312,33,38,299,313,38],"32021841","inevaexisted",[315,33,33,275,316,38],"32016836","lovelearning",[318,33,38,319,11,33],"32017599","maker\u002Fneutral\u002Fdocs",[321,33,45,273,322,38],"32023512","twsted",[324,18,33,325,326,38],"32014349","project\u002Fcritical\u002Fperformance","dugmartin",[328,18,38,329,11,33],"32014466","maker\u002Fneutral\u002Fperformance",[331,18,47,332,333,38],"32014525","project\u002Fneutral\u002Fperformance","antholeole",[335,18,38,332,11,33],"32014675",[337,18,47,332,338,38],"32015261","futhey",[340,47,45,247,341,38],"32015175","codegeek",[77,47,38,249,11,33],[344,47,47,249,345,38],"32015959","endofreach",[347,47,38,277,341,38],"32016068",[349,47,38,277,345,38],"32042361",[351,47,38,249,11,33],"32016102",[110,46,45,247,111,38],[354,46,45,247,355,38],"32017742","krat0sprakhar",[121,45,45,247,122,38],[188,243,47,290,189,38],[359,243,47,249,360,38],"32051105","marrobins",[362,41,47,290,363,38],"32018976","jitl",[365,41,38,290,11,33],"32024098",[367,41,45,368,363,38],"32032386","project\u002Fpositive\u002Fidea",[147,34,33,275,148,38],[371,34,38,277,372,38],"32021276","willy_k",[374,34,38,277,148,38],"32021386",[376,242,47,377,378,38],"32016070","project\u002Fneutral\u002Fdocs","beardicus",[92,242,38,319,11,33],[381,382,47,332,383,38],"32018722",10,"ptudan",[385,382,38,332,11,33],"32020018",[387,382,47,332,388,38],"32020904","felipeccastro",[227,390,38,391,228,38],11,"other\u002Fneutral\u002Fnone",[393,394,47,290,252,38],"32015307",12,[396,394,47,290,397,38],"32015527","qbasic_forever",[399,394,38,277,252,38],"32015553",[401,394,38,263,11,33],"32015571",[403,394,38,277,252,38],"32015712",[405,394,38,277,406,38],"32022682","techplex",[408,394,38,277,252,38],"32027002",[410,411,45,368,412,38],"32026594",13,"h3rald",[414,411,47,290,287,38],"32026735",[416,417,45,368,418,38],"32022171",14,"dinvlad",[210,420,45,247,211,38],15,[196,236,47,270,197,38],[423,236,38,424,11,33],"32014894","maker\u002Fneutral\u002Fexecution",[426,236,45,368,197,38],"32014958",[428,236,47,332,429,38],"32019280","Norgie93",[431,236,38,263,11,33],"32020201",[433,434,45,368,435,38],"32023430",17,"traviscj",[132,437,45,368,133,38],18,[164,439,47,440,165,38],19,"project\u002Fmixed\u002Fnone",[154,439,38,255,11,33],[443,439,38,391,444,38],"32018396","_query",[446,235,45,447,448,38],"32016180","project\u002Fpositive\u002Fdesign","1xdevloper",[168,450,47,270,169,38],21,[157,450,38,424,11,33],[453,454,45,368,455,38],"32015745",22,"melony",[457,458,45,447,459,38],"32018736",23,"codeptualize",[461,462,45,247,463,38],"32015295",24,"gervwyk",[465,466,45,368,467,38],"32023843",25,"newusertoday",[469,31,45,470,471,38],"32024682","project\u002Fpositive\u002Fexecution","lexx",[125,473,45,247,126,38],27,[475,473,38,391,476,38],"32021993","wenbo",[478,473,38,479,126,38],"32023200","other\u002Fneutral\u002Fdesign",[481,473,38,391,476,38],"32024275",[203,483,47,249,204,38],28,[485,486,47,377,487,38],"32039260",29,"moon700",[175,486,38,319,11,33],[490,486,47,290,487,38],"32046902",[492,486,38,319,11,33],"32047691",[494,32,45,247,495,38],"32016619","vincentge",[181,497,47,249,182,38],31,[499,497,38,263,11,33],"32024426",[501,497,45,273,182,38],"32027833",[503,504,47,290,505,38],"32020183",32,"euroderf",[507,504,38,255,11,33],"32024322",[509,504,38,277,505,38],"32035040",[511,512,45,247,513,38],"32066342",33,"aalaap",[515,516,47,270,517,38],"32015812",34,"ezekiel11",[519,516,47,270,520,38],"32015930","rekwah",[522,516,38,391,523,38],"32017292","mypalmike",[525,516,38,391,517,38],"32019272",[527,516,38,391,528,38],"32020186","killingtime74",[530,516,38,391,523,38],"32022916",[532,516,38,391,533,38],"32021252","mhio",[535,516,38,391,523,38],"32022959",[],[538,543,548,553,558,563],{"id":539,"name":540,"points":541,"category":542},"32081943","Inflation-adjusted stock charts",507,"finance_crypto",{"id":544,"name":545,"points":546,"category":547},"32037740","Aspect",374,"dev_tools",{"id":549,"name":550,"points":551,"category":552},"32043229","Ants Sandbox",367,"games",{"id":554,"name":555,"points":556,"category":557},"32034625","Vimified",344,"learning_science",{"id":559,"name":560,"points":561,"category":562},"32080469","Cleanup Photos",319,"creative",{"id":564,"name":565,"points":566,"category":562},"32053816","Colorvote.io",234,false,"v2",{"id":570,"name":5,"line":6,"ai":567,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":571,"top":18,"kw":572,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":573,"url":9,"mix":574,"praise":106,"objection":137,"sub":21},32013330,0.35,[24,25,26,21,27],"5543113131335355333333055555555533553400",[31,32,33,34],1793991048429]