[{"data":1,"prerenderedAt":482},["ShallowReactive",2],{"project-34999774":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":47,"post_text":49,"what":50,"said":111,"maker_in_thread":253,"shape":263,"grid":268,"attempts":442,"same_week":443,"maker_shows":46,"maker_hidden":474,"reader_version":475,"card":476},"34999774","Mathesar","open-source collaborative UI for Postgres databases","title","Show HN: Mathesar – open-source collaborative UI for Postgres databases","https:\u002F\u002Fgithub.com\u002Fcenterofci\u002Fmathesar","github.com","kgodey",1677782085,2023,281,74,167,3109,6,"legend","data","database user interface","web_app",[24,25,26,27,28],"postgres","spreadsheet","database gui","open source","relational data","curious",0.317,{"positive":32,"neutral":33,"mixed":34,"critical":35},15,25,0,4,44,{"execution":38,"idea":40,"performance":41,"design":42,"docs":44,"privacy":45},{"positive":39,"critical":39},1,{"positive":35,"critical":39},{"positive":39,"critical":34},{"positive":43,"critical":34},3,{"positive":39,"critical":34},{"positive":39,"critical":46},2,[48,43,43,48,43,48,43,48,48,39,43,34,34,34,48,34,34,34,34,48,39,48,39,43,43,48,43,43,43,39,43,48,48,43,43,48,34,43,48,48],5,"Hi HN! We just released the public alpha version of Mathesar (https:\u002F\u002Fmathesar.org\u002F, code: https:\u002F\u002Fgithub.com\u002Fcenterofci\u002Fmathesar).\n\nMathesar is an open source tool that provides a spreadsheet-like interface to a PostgreSQL database.\n\nI was originally inspired by wanting to build something like Dabble DB. I was in awe of their user experience for working with relational data. There’s plenty of “relational spreadsheet” software out there, but I haven’t been able to find anything with a comparable UX since Twitter shut Dabble DB down.\n\nWe're a non-profit project. The core team is based out of a ",{"problem":51,"audience":60,"pricing":69,"motivation":70,"time_to_build":69,"stack":74,"openness":108,"stage":109,"team_size":110},{"value":52,"source":53,"evidence":54},"Working with relational data in Postgres without SQL or joins is hard for non-technical users","maker",[55,57],{"id":56},"post",{"id":58,"by":11,"text":59},"35012233","Thank you very much! We found that a lot of similar \"relational database\" tools ended up not actually using foreign keys for relationships because they are difficult to explain…",{"value":61,"source":62,"evidence":63},"Non-technical users and teams who need to work with Postgres data","inferred",[64,65],{"id":56},{"id":66,"by":67,"text":68},"35004814","pavish","(Mathesar core team member here) My previous job was in a biggish e-commerce company and the business teams would send spreadsheets with corrections to the data (like updating…",null,{"value":71,"source":53,"evidence":72},"Inspired by Dabble DB, which was shut down, to recreate its relational spreadsheet UX",[73],{"id":56},[75,83,87,94,98,104],{"value":76,"source":77,"evidence":78},"Python","commenter",[79],{"id":80,"by":81,"text":82},"35001259","vladsanchez","So happy to realize your stack includes Python, Postgres, Typescript and Svelte because I once flirted with such idea for a personal project. I'm inspired.",{"value":84,"source":53,"evidence":85},"PostgreSQL",[86],{"id":56},{"value":88,"source":77,"evidence":89},"TypeScript",[90],{"id":91,"by":92,"text":93},"35001791","seancolsen","Yeah, interesting question! Our [team][0] is eight people who would probably give eight different answers. We've had some [debate][1] about whether or not to use types in Python,…",{"value":95,"source":77,"evidence":96},"Svelte",[97],{"id":80,"by":81,"text":82},{"value":99,"source":53,"evidence":100},"Django",[101],{"id":102,"by":11,"text":103},"35012277","Thanks! We are currently using a freakish mix of Django and SQLAlchemy, but we're aiming to simplify that soon-ish (by removing SQLAlchemy).",{"value":105,"source":53,"evidence":106},"SQLAlchemy",[107],{"id":102,"by":11,"text":103},"open_source","beta","team",{"praise":112,"objections":142,"requests":173,"questions":205,"alternatives":222},[113,124,135],{"value":114,"source":77,"evidence":115},"Schema migrations and relationship explanations are well designed",[116,120],{"id":117,"by":118,"text":119},"35002680","metasj","The schema migrations are a delight. And I appreciate the shoutout to Dabble! Thanks for working on this + congrats on the release. An optimized hosted version with permalinks to…",{"id":121,"by":122,"text":123},"35008813","nickreese","Wow, this is the best explanation of db relationship types I've seen. https:\u002F\u002Fcapture.dropbox.com\u002FA3a1aybKNDy1ttEx Really polished. Congrats on the launch!",{"value":125,"source":77,"evidence":126},"Airtable-like UX for relational data is welcome",[127,131],{"id":128,"by":129,"text":130},"35001123","jtr1","This is super cool! I really dig the way airtable makes relational databases accessible to non-developers, but I've been looking for open source alternatives. Going to give this…",{"id":132,"by":133,"text":134},"35000524","debarshri","Interesting how there are some airtable inspired UI elements combined with postgres. Super interesting, will definitely use it. PS. I would recommend making the demo account…",{"value":136,"source":77,"evidence":137},"Clean local dev docs",[138],{"id":139,"by":140,"text":141},"35004098","Existenceblinks","Their local development docs is also nice: https:\u002F\u002Fdocs.mathesar.org\u002Fcontributing\u002Flocal-dev\u002F I'm jumping into a django\u002Freact project right now and found that there's so much…",[143,154,164],{"value":144,"source":77,"evidence":145},"Install script requires elevated privileges via Docker",[146,150],{"id":147,"by":148,"text":149},"35007066","hebrox","Looks really cool! I tried the install script and it asked me for my computer password. It feels really dangerous to give a random script from the internet my password. Could you…",{"id":151,"by":152,"text":153},"35007377","mathemancer","At the moment, the only installation method we support uses Docker, which requires elevated privileges on most systems. We're probably going to reduce the privileges needed for…",{"value":155,"source":77,"evidence":156},"Lacks granular permissions for restricted database users",[157,161],{"id":158,"by":159,"text":160},"35007374","hultner","Looks cool however I don’t like that it needs to be setup with a super-user and that it’s limited to your three predetermined access roles. I have a project in mind where this…",{"id":162,"by":11,"text":163},"35011954","We completely understand. We want to have the ability for Mathesar to gracefully handle DB users with different permissions (i.e. we'd disable features in the UI based on the…",{"value":165,"source":77,"evidence":166},"Some file uploads failed on large datasets",[167,170],{"id":168,"by":122,"text":169},"35008848","Tried tossing in some of the datasets found here: https:\u002F\u002Fdata.cms.gov\u002Fprovider-data\u002Farchived-data\u002Fnursing-homes and none of the file uploads worked. Either way, really stoked…",{"id":171,"by":67,"text":172},"35009317","We tested importing the files from the link and right on, some of the imported tables do not seem to work as expected. You've just helped us discover a bug. Here's the issue that…",[174,184,191,198],{"value":175,"source":77,"evidence":176},"Install without Docker",[177,181],{"id":178,"by":179,"text":180},"35007769","x98asfd","Thanks for the explanation. Is there a way to NOT use docker. For those of us who are NOT on linux, and are quite comfortable with postgres install and running. Would prefer just…",{"id":182,"by":11,"text":183},"35011975","To add to what silentninja said, we are already deploying Mathesar without Docker on some test servers, we just need to document our setup. Coming soon!",{"value":185,"source":77,"evidence":186},"Export explorations as SQL",[187],{"id":188,"by":189,"text":190},"35008127","victorbjorklund","Looks really nice. Is there any way to export an exploration as SQL? I guess this can be useful when creating complicated views etc.",{"value":192,"source":77,"evidence":193},"Historical record tracking",[194],{"id":195,"by":196,"text":197},"35006474","mrslave","I won't repeat supportive comments except to say well done. Feature request: historical tracking. E.g. on update, expire the old record with who & when.",{"value":199,"source":77,"evidence":200},"Airtable-style interface designer",[201],{"id":202,"by":203,"text":204},"35006652","ryan_platofy","Apologies, somehow missed that. Thanks for the speedy response. Your explanation is very clear. Something that is keeping me tied to Airtable is their 'interface designer'.…",[206,216],{"value":207,"source":77,"evidence":208},"How the demo handles per-session databases",[209,212],{"id":210,"by":133,"text":211},"35001338","Could you elaborate that a bit? That sounds interesting too.",{"id":213,"by":214,"text":215},"35003308","xupybd","How on earth are you handling HN front page traffic if you spin up a template copy per session? That is impressive.",{"value":217,"source":77,"evidence":218},"How it differs from NocoDB",[219],{"id":220,"by":203,"text":221},"35006528","This looks great and congratulations on the alpha launch! Reminds me of another open source project in this space, NocoDB. Are you guys familiar with that project? If so, what…",[223,227,238,245,249],{"value":224,"source":77,"evidence":225},"NocoDB",[226],{"id":220,"by":203,"text":221},{"value":228,"source":77,"evidence":229},"TablePlus",[230,234],{"id":231,"by":232,"text":233},"35001605","cadbox1","Nice work! It looks like Sequel Pro for Postgres. This might be the first free, user-friendly interface for Postgres out there. Closest would be TablePlus but it’s paid.",{"id":235,"by":236,"text":237},"35001680","minusf","tableplus is freemium like. in the free version can have 2 tabs open. it also works with way more than postgres.",{"value":239,"source":77,"evidence":240},"Beekeeper Studio",[241],{"id":242,"by":243,"text":244},"35002926","phamilton","https:\u002F\u002Fgithub.com\u002Fbeekeeper-studio\u002Fbeekeeper-studio is pretty decent.",{"value":246,"source":77,"evidence":247},"Airtable",[248],{"id":132,"by":133,"text":134},{"value":250,"source":53,"evidence":251},"Dabble DB",[252],{"id":56},{"comments":254,"answered":46,"key":255},12,[256,259,262],{"id":257,"text":258},"35012121","Thank you very much!",{"id":260,"text":261},"35001941","Yes! We have set up a Postgres template database[1] with our demo data sets. When a user logs in, we create a new database based on the template database and associate the…",{"id":58,"text":59},{"commenters":264,"max_depth":265,"maker_replies":254,"first_comment_mins":266,"lifespan_hours":267},39,7,50,23,[269,273,275,279,282,286,288,291,293,294,296,298,302,305,307,309,310,312,314,316,318,320,323,326,328,330,331,335,338,339,341,344,346,349,352,355,358,360,363,366,369,370,372,373,375,376,379,380,382,385,389,392,395,396,399,401,404,405,407,412,414,416,419,420,422,425,426,428,430,431,433,435,438,441],[270,34,48,271,272,34],"35004196","project\u002Fpositive\u002Fexecution","bendews",[257,34,34,274,11,39],"maker\u002Fpositive\u002Fnone",[276,39,43,277,278,34],"35004626","project\u002Fneutral\u002Fidea","derefr",[280,39,43,281,152,34],"35004798","maker\u002Fneutral\u002Fidea",[283,39,34,284,285,34],"35005520","other\u002Fneutral\u002Fnone","winrid",[132,46,48,287,133,34],"project\u002Fpositive\u002Fnone",[289,46,43,290,92,34],"35000822","maker\u002Fneutral\u002Fexecution",[210,46,43,292,133,34],"maker\u002Fneutral\u002Fnone",[260,46,34,290,11,39],[295,46,48,274,133,34],"35002300",[213,46,48,297,214,34],"maker\u002Fpositive\u002Fperformance",[299,46,43,300,301,34],"35003481","project\u002Fneutral\u002Fperformance","koolba",[303,46,43,300,304,34],"35007095","dmos62",[117,43,48,306,118,34],"project\u002Fpositive\u002Fdesign",[308,43,43,292,67,34],"35006644",[121,35,48,306,122,34],[168,35,39,311,122,34],"project\u002Fcritical\u002Fexecution",[313,35,43,300,152,34],"35009275",[171,35,43,315,67,34],"project\u002Fneutral\u002Fexecution",[58,35,34,317,11,39],"maker\u002Fpositive\u002Fdesign",[319,48,34,300,11,39],"35002384",[321,18,34,284,322,34],"35003266","bitwize",[324,18,34,284,325,34],"35004495","earleybird",[327,18,34,284,11,39],"35004797",[329,18,34,284,67,34],"35004826",[80,265,48,287,81,34],[332,265,34,333,334,34],"35001337","commenter\u002Fneutral\u002Fnone","vhanda",[336,265,34,284,337,34],"35001580","erinnh",[91,265,34,284,92,34],[340,265,34,284,304,34],"35007243",[342,265,34,284,343,34],"35007248","noisy_boy",[345,265,34,284,81,34],"35001844",[347,265,34,284,348,34],"35002085","westurner",[350,265,34,284,351,34],"35001992","jamesfmilne",[353,265,34,284,354,34],"35003544","Waterluvian",[356,265,34,284,357,34],"35005204","revskill",[139,265,48,359,140,34],"project\u002Fpositive\u002Fdocs",[158,361,39,362,159,34],8,"project\u002Fcritical\u002Fprivacy",[364,361,43,365,152,34],"35007439","project\u002Fneutral\u002Fprivacy",[367,361,48,368,159,34],"35008554","project\u002Fpositive\u002Fprivacy",[162,361,34,365,11,39],[147,371,39,362,148,34],9,[151,371,43,315,152,34],[374,371,43,315,304,34],"35007427",[178,371,43,315,179,34],[377,371,43,315,378,34],"35007982","silentninja",[182,371,34,315,11,39],[128,381,48,287,129,34],10,[383,381,43,384,92,34],"35002148","project\u002Fneutral\u002Fdesign",[386,387,43,277,388,34],"35003034",11,"iambcam",[390,387,34,284,391,34],"35003070","mistersys",[393,387,34,284,394,34],"35006183","TeeWEE",[66,387,43,277,67,34],[397,387,39,398,394,34],"35006179","project\u002Fcritical\u002Fidea",[400,387,34,365,11,39],"35012103",[402,387,43,403,304,34],"35006672","project\u002Fneutral\u002Fnone",[195,254,43,277,196,34],[406,254,43,292,67,34],"35006575",[408,409,48,410,411,34],"35003635",13,"project\u002Fpositive\u002Fidea","samanator",[413,409,34,274,11,39],"35012062",[220,415,48,410,203,34],14,[417,415,43,418,67,34],"35006590","maker\u002Fneutral\u002Fdocs",[202,415,43,384,203,34],[421,415,43,281,67,34],"35006731",[423,415,34,424,11,39],"35012057","maker\u002Fneutral\u002Fdesign",[231,32,48,410,232,34],[235,32,34,427,236,34],"commenter\u002Fneutral\u002Fpricing",[429,32,34,281,11,39],"35002289",[242,32,34,284,243,34],[188,432,43,277,189,34],16,[434,432,43,277,152,34],"35008682",[436,432,48,437,189,34],"35010406","maker\u002Fpositive\u002Fidea",[439,440,48,306,285,34],"35004135",17,[102,440,34,290,11,39],[],[444,449,454,459,464,469],{"id":445,"name":446,"points":447,"category":448},"35073603","Braggoscope",688,"learning_science",{"id":450,"name":451,"points":452,"category":453},"35032506","Lander",564,"games",{"id":455,"name":456,"points":457,"category":458},"35026902","Llama-dl",343,"ai",{"id":460,"name":461,"points":462,"category":463},"35055308","NESFab",298,"languages",{"id":465,"name":466,"points":467,"category":468},"35042316","UJRPC",290,"infrastructure",{"id":470,"name":471,"points":472,"category":473},"35071755","CodeGPT.nvim",228,"dev_tools",false,"v2",{"id":477,"name":5,"line":6,"ai":474,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":478,"top":18,"kw":479,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":480,"url":9,"mix":481,"praise":114,"objection":144,"sub":21},34999774,0.32,[24,25,26,27,28],"5335353551300050000515133533313553350355",[32,33,34,35],1794036631958]