[{"data":1,"prerenderedAt":147},["ShallowReactive",2],{"project-22777614":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":32,"aspects":33,"strip":35,"post_text":29,"what":37,"said":60,"maker_in_thread":89,"shape":98,"grid":101,"attempts":110,"same_week":111,"maker_shows":139,"maker_hidden":140,"reader_version":141,"card":142},"22777614","Supabase Slack clone","Realtime Slack clone using Postgres","title","Show HN: Realtime Slack clone using Postgres","https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fsupabase\u002Fblob\u002Fmaster\u002Fexamples\u002Fslack-clone-basic\u002FREADME.md","github.com","kiwicopple",1585999181,2020,29,4,1427,3028,48,"shown","dev_tools","example app","web_app",[24,25,26,27],"postgres","realtime","slack clone","nextjs","quiet",null,{"positive":31,"neutral":31,"mixed":32,"critical":31},0,1,{"docs":34},{"positive":31,"critical":31},[31,31,36,31],3,{"problem":38,"audience":29,"pricing":29,"motivation":29,"time_to_build":29,"stack":44,"openness":58,"stage":59,"team_size":59},{"value":39,"source":40,"evidence":41},"Shows how to build realtime chat on Postgres","inferred",[42],{"id":43},"post",[45,50],{"value":46,"source":47,"evidence":48},"Postgres","maker",[49],{"id":43},{"value":51,"source":52,"evidence":53},"Next.js","commenter",[54],{"id":55,"by":56,"text":57},"22784585","ampdepolymerase","Firebase uses last write wins but they do have a backlog so the user can sync up. There is also a transaction () function for manual conflict handling. Perhaps you can…","open_source","unknown",{"praise":61,"objections":62,"requests":67,"questions":79,"alternatives":84},[],[63],{"value":64,"source":52,"evidence":65},"API is more verbose than Firebase",[66],{"id":55,"by":56,"text":57},[68,75],{"value":69,"source":52,"evidence":70},"Offline sync and conflict handling",[71,74],{"id":72,"by":56,"text":73},"22783216","How do you deal with conflicts in PostgreSQL due to sync issues?",{"id":55,"by":56,"text":57},{"value":76,"source":52,"evidence":77},"Higher-level wrapper over the API",[78],{"id":55,"by":56,"text":57},[80],{"value":81,"source":52,"evidence":82},"How are conflicts handled between Postgres and offline clients",[83],{"id":72,"by":56,"text":73},[85],{"value":86,"source":52,"evidence":87},"Firebase",[88],{"id":55,"by":56,"text":57},{"comments":90,"answered":32,"key":91},2,[92,95],{"id":93,"text":94},"22783333","I assume you’re talking about conflicts from offline -> online? This example is quite simple - it doesn’t work offline so it doesn’t have any risk of conflicts beyond the usual…",{"id":96,"text":97},"22785073","Amazing - thanks for the link. We've had a few people ask about sync now, so something we'll start researching soon. > A bit of feedback, the API looks fairly verbose compared to…",{"commenters":90,"max_depth":15,"maker_replies":90,"first_comment_mins":99,"lifespan_hours":100},899,24,[102,104,106,108],[72,31,31,103,56,31],"commenter\u002Fneutral\u002Fnone",[93,31,31,105,11,32],"project\u002Fneutral\u002Fexecution",[55,31,36,107,56,31],"project\u002Fmixed\u002Fdocs",[96,31,31,109,11,32],"maker\u002Fneutral\u002Fdocs",[],[112,117,122,126,130,135],{"id":113,"name":114,"points":115,"category":116},"22811653","FalsiScan",770,"productivity",{"id":118,"name":119,"points":120,"category":121},"22758217","Learn GNU Awk one-liners ebook",539,"languages",{"id":123,"name":124,"points":125,"category":121},"22776753","33 line React",418,{"id":127,"name":128,"points":129,"category":20},"22790425","DNS over Wikipedia",398,{"id":131,"name":132,"points":133,"category":134},"22777397","Treendly",343,"web_saas",{"id":136,"name":137,"points":138,"category":20},"22763656","Pdf.js Express",334,13,false,"v2",{"id":143,"name":5,"line":6,"ai":140,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":144,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":145,"url":9,"mix":146,"praise":-1,"objection":64,"sub":21},22777614,[24,25,26,27],"0030",[31,31,32,31],1794036588531]