[{"data":1,"prerenderedAt":523},["ShallowReactive",2],{"project-17540263":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":48,"post_text":50,"what":51,"said":85,"maker_in_thread":193,"shape":203,"grid":208,"attempts":487,"same_week":488,"maker_shows":34,"maker_hidden":515,"reader_version":516,"card":517},"17540263","Hasura","Fast, instant GraphQL APIs on Postgres","title","Show HN: Hasura – Fast, instant GraphQL APIs on Postgres","https:\u002F\u002Fgithub.com\u002Fhasura\u002Fgraphql-engine","github.com","tango12",1531738704,2018,382,103,46,2155,3,"legend","infrastructure","graphql engine","api",[24,25,26,27,28],"graphql","postgres","graphql api","access control","postgresql graphql","curious",-0.015,{"positive":32,"neutral":33,"mixed":34,"critical":35},9,26,2,14,51,{"design":38,"docs":40,"pricing":42,"performance":43,"execution":44,"privacy":45,"idea":46},{"positive":18,"critical":39},0,{"positive":41,"critical":34},1,{"positive":41,"critical":39},{"positive":39,"critical":34},{"positive":41,"critical":34},{"positive":39,"critical":41},{"positive":41,"critical":47},5,[18,18,47,18,18,18,39,47,18,41,18,18,47,41,18,18,39,39,39,41,39,39,41,18,41,18,18,39,47,49,47,18,41,18,41,18,47,18,41,41],4,null,{"problem":52,"audience":50,"pricing":50,"motivation":50,"time_to_build":50,"stack":63,"openness":82,"stage":83,"team_size":84},{"value":53,"source":54,"evidence":55},"Exposing Postgres data over GraphQL with access control, without writing a backend","maker",[56,59],{"id":57,"by":11,"text":58},"17540365","Hi HN! Super happy to announce the first open-source release of the Hasura GraphQL engine. This is a standalone service that gives you GraphQL on Postgres. It comes with…",{"id":60,"by":61,"text":62},"17540632","vsurabhi","Hi, I'm one of the core contributors to the project. Hasura and Prisma have very different approaches and end-goals at the moment. TL;DR: Very simply put, Hasura is postgres…",[64,74,78],{"value":65,"source":54,"evidence":66},"Haskell",[67,70],{"id":68,"by":11,"text":69},"17540631","Hm...Haskell was an important initial choice for us because of our team's comfort with the language and also because it's neat to implement parsers and compilers. The Hasura…",{"id":71,"by":72,"text":73},"17543751","jxub","Almost a third of the codebase is written in Haskell, that's really nice to hear ;)",{"value":75,"source":54,"evidence":76},"PostgreSQL",[77],{"id":57,"by":11,"text":58},{"value":79,"source":54,"evidence":80},"GraphQL",[81],{"id":57,"by":11,"text":58},"open_source","launched","company",{"praise":86,"objections":108,"requests":131,"questions":153,"alternatives":176},[87,103],{"value":88,"source":89,"evidence":90},"Well-designed website and documentation","commenter",[91,95,99],{"id":92,"by":93,"text":94},"17540480","bsaul","Thanks for releasing such a project. Your website is really well done, it immediately made me want to dig in the tech, congrats ! PS: as a sidenote and since i'm sure you'll get…",{"id":96,"by":97,"text":98},"17542656","rcdmd","Nice work. There are several competitors in the automagic Postgres REST\u002FGraphQL space, and you're nailing documentation and ergonomics here. Your site and the Hansura Console…",{"id":100,"by":101,"text":102},"17544685","uptime","Thank you for releasing this. I am impressed with Hasura! No knock on postgraphile, I am trying that out too as well as prisma, but this looks very well done and the boundaries…",{"value":104,"source":89,"evidence":105},"Useful for turning existing Postgres databases into GraphQL APIs",[106,107],{"id":57,"by":11,"text":58},{"id":100,"by":101,"text":102},[109,116,120],{"value":110,"source":89,"evidence":111},"Licensed under AGPL, creating legal uncertainty",[112],{"id":113,"by":114,"text":115},"17540572","mikl","First glance reaction: Awesome, just the thing I need. Then I saw the fine print: AGPL. Haskell. The thing might be awesome, but the combination of the legal risk from AGPL (very…",{"value":117,"source":89,"evidence":118},"Haskell makes maintenance and hiring harder",[119],{"id":113,"by":114,"text":115},{"value":121,"source":89,"evidence":122},"Business logic is hard to enforce and side-effects like emails are not built in",[123,127],{"id":124,"by":125,"text":126},"17540564","kilburn","This is very impressive. Congratulations! What I'm not seeing is how do you envision enforcement of complex business rules when using this API. Examples (silly, but you get the…",{"id":128,"by":129,"text":130},"17540690","michaelmcmillan","I am very hesitant to couple the business logic of any application to the transport layer (GraphQL) or the persistence layer (Postgres) for that matter.",[132,139,146],{"value":133,"source":89,"evidence":134},"Support for subscriptions",[135],{"id":136,"by":137,"text":138},"17541667","antigirl","Any subscription support?",{"value":140,"source":89,"evidence":141},"Support for many-to-many relationships and enums",[142],{"id":143,"by":144,"text":145},"17565357","wjonas","I have been playing around with it. It's great. Better support for ENUMS and MANY TO MANY relationships would be very needed though.",{"value":147,"source":89,"evidence":148},"Compatibility with PostGraphile",[149],{"id":150,"by":151,"text":152},"17540626","HugoDaniel","Really cool! Congrats. It would be awesome if it could be made compatible with Postgraphile (https:\u002F\u002Fwww.graphile.org\u002Fpostgraphile\u002Fintroduction\u002F)",[154,165,172],{"value":155,"source":89,"evidence":156},"How does it compare to PostGraphile?",[157,161],{"id":158,"by":159,"text":160},"17540866","vetinari","Any comparison with PostGraphile?",{"id":162,"by":163,"text":164},"17542123","benoror","Impressive! How's it different from postgraphql (https:\u002F\u002Fpostgraphql.github.io\u002F) or postgraphile (https:\u002F\u002Fwww.graphile.org\u002Fpostgraphile\u002F)?",{"value":166,"source":89,"evidence":167},"How does it relate to Prisma?",[168],{"id":169,"by":170,"text":171},"17540446","minxomat","How does this project relate to prisma?",{"value":173,"source":89,"evidence":174},"Does it support UUID fields?",[175],{"id":100,"by":101,"text":102},[177,182,189],{"value":178,"source":89,"evidence":179},"PostGraphile",[180,181],{"id":158,"by":159,"text":160},{"id":162,"by":163,"text":164},{"value":183,"source":89,"evidence":184},"PostgREST",[185],{"id":186,"by":187,"text":188},"17541976","y4mi","GraphQL is the equivalent to REST or even SOAP. Just like there are frameworks for these protocols, this is one that automatically creates a service for a postgres database.…",{"value":190,"source":89,"evidence":191},"Prisma",[192],{"id":169,"by":170,"text":171},{"comments":194,"answered":32,"key":195},20,[196,197,200],{"id":57,"text":58},{"id":198,"text":199},"17540567","Haha, yes we do this get this a lot! We're also planning to release a lot of cool GraphQL OSS stuff for the haskell community because of our work over the last year.",{"id":201,"text":202},"17542191","We're adding support for JWT soon too which should prevent this overhead for applications that support JWT. But basically the idea here is to be equivalent to session cache hit.…",{"commenters":204,"max_depth":205,"maker_replies":194,"first_comment_mins":206,"lifespan_hours":207},61,6,21,250,[209,211,214,218,221,223,226,230,234,237,239,240,243,246,249,250,254,256,258,259,260,261,263,267,268,272,275,277,281,283,287,289,290,294,297,299,301,304,306,309,313,316,320,323,326,327,330,332,334,337,340,341,344,347,349,352,354,356,359,361,363,365,369,372,374,376,379,382,385,388,390,394,396,401,404,409,412,415,417,419,421,424,426,428,430,434,436,438,443,446,449,452,454,458,460,464,466,468,473,476,479,482,484],[124,39,18,210,125,39],"project\u002Fneutral\u002Fnone",[212,39,18,210,213,39],"17540716","marksomnian",[215,39,39,216,217,39],"17540753","commenter\u002Fneutral\u002Fnone","dustingetz",[219,39,18,220,61,39],"17540788","project\u002Fneutral\u002Fdesign",[222,39,18,220,217,39],"17540847",[224,39,47,225,125,39],"17540849","project\u002Fpositive\u002Fdesign",[227,39,18,228,229,39],"17541003","project\u002Fneutral\u002Fdocs","praveenweb",[231,39,18,232,233,39],"17541300","project\u002Fneutral\u002Fpricing","eganist",[235,39,18,220,236,39],"17541402","evadne",[57,41,39,238,11,41],"maker\u002Fneutral\u002Fnone",[169,41,18,210,170,39],[241,41,18,210,242,39],"17540600","tirumaraiselvan",[244,41,39,216,245,39],"17540743","sorenbs",[247,41,39,248,242,39],"17540905","commenter\u002Fneutral\u002Fdocs",[60,41,18,210,61,39],[251,41,39,252,253,39],"17541135","other\u002Fneutral\u002Fnone","filleokus",[255,41,39,252,61,39],"17541295",[257,41,39,252,245,39],"17543199",[92,41,47,225,93,39],[198,41,39,238,11,41],[158,41,18,210,159,39],[262,41,18,220,61,39],"17541100",[264,41,18,265,266,39],"17541627","project\u002Fneutral\u002Fperformance","fictorial",[201,41,39,265,11,41],[269,41,41,270,271,39],"17562745","project\u002Fcritical\u002Fexecution","rogerrohrbach",[273,41,39,274,11,41],"17563981","project\u002Fneutral\u002Fexecution",[276,41,18,210,271,39],"17621120",[278,41,18,279,280,39],"17544600","project\u002Fneutral\u002Fprivacy","ASTP001",[96,34,47,282,97,39],"project\u002Fpositive\u002Fdocs",[284,18,41,285,286,39],"17540636","project\u002Fcritical\u002Fidea","sheeshkebab",[113,49,18,288,114,39],"project\u002Fmixed\u002Fnone",[68,49,39,238,11,41],[291,49,47,292,293,39],"17540662","project\u002Fpositive\u002Fexecution","seddona",[295,49,41,296,114,39],"17540740","project\u002Fcritical\u002Fnone",[298,49,39,210,11,41],"17540807",[300,49,41,285,114,39],"17549859",[302,49,18,210,303,39],"17543554","UncleEntity",[305,49,39,210,11,41],"17556240",[307,49,18,210,308,39],"17545265","simonw",[310,47,39,311,312,39],"17541756","other\u002Fneutral\u002Fidea","mmanfrin",[314,47,39,311,315,39],"17541932","FooBarWidget",[317,47,39,318,319,39],"17542891","other\u002Fneutral\u002Fperformance","yashap",[321,47,39,318,322,39],"17598081","slitchfield",[324,47,39,311,325,39],"17541943","Cthulhu_",[186,47,39,252,187,39],[328,47,39,252,329,39],"17542571","dnomad",[331,47,39,216,187,39],"17542707",[333,47,39,252,11,41],"17542074",[335,47,39,311,336,39],"17542241","adamkl",[338,47,39,252,339,39],"17542309","sixdimensional",[128,205,41,285,129,39],[342,205,39,216,343,39],"17540890","M_Bakhtiari",[345,205,39,216,346,39],"17540945","Anchor",[348,205,39,216,343,39],"17541112",[350,205,39,351,129,39],"17541463","commenter\u002Fneutral\u002Fidea",[353,205,39,216,343,39],"17549669",[355,205,39,216,129,39],"17556156",[357,205,39,216,358,39],"17543766","tensor",[360,205,41,285,129,39],"17544075",[162,362,18,210,163,39],7,[364,362,39,220,11,41],"17542216",[366,362,41,367,368,39],"17542288","project\u002Fcritical\u002Fdocs","mathnmusic",[370,362,39,371,11,41],"17542381","maker\u002Fneutral\u002Fdocs",[373,362,41,367,368,39],"17556035",[375,362,39,228,11,41],"17556224",[377,362,18,210,378,39],"17547845","Sonicrida",[380,381,39,210,11,41],"17543302",8,[383,381,39,216,384,39],"17543321","SOLAR_FIELDS",[386,32,18,387,384,39],"17543407","project\u002Fneutral\u002Fidea",[389,32,39,387,11,41],"17543516",[391,392,39,252,393,39],"17543261",10,"garindra",[395,392,39,252,101,39],"17544766",[397,398,47,399,400,39],"17540785",11,"project\u002Fpositive\u002Fpricing","victor106",[150,402,47,403,151,39],12,"project\u002Fpositive\u002Fnone",[405,406,47,407,408,39],"17540656",13,"project\u002Fpositive\u002Fidea","zapita",[410,406,18,238,411,39],"17544085","alberteinstein",[413,35,18,387,414,39],"17542758","spocklivelong",[416,35,39,387,11,41],"17542850",[100,418,47,225,101,39],15,[420,418,39,228,11,41],"17546580",[143,422,18,423,144,39],16,"project\u002Fmixed\u002Fexecution",[425,422,39,228,11,41],"17565562",[427,422,41,270,144,39],"17566714",[429,422,39,210,11,41],"17566961",[431,432,39,311,433,39],"17540705",17,"no-such-address",[71,435,39,252,72,39],18,[437,435,18,210,411,39],"17544073",[439,440,39,441,442,39],"17540647",19,"other\u002Fpositive\u002Fidea","jarym",[444,194,41,296,445,39],"17541555","miga",[447,194,39,216,448,39],"17550693","mydigitalself",[450,206,18,274,451,39],"17540896","faitswulff",[453,206,18,265,61,39],"17540997",[455,456,47,403,457,39],"17541554",22,"reilly3000",[459,456,39,238,11,41],"17541630",[461,462,39,252,463,39],"17543093",23,"machbio",[136,465,18,387,137,39],24,[467,465,39,265,11,41],"17541767",[469,470,41,471,472,39],"17546105",25,"project\u002Fcritical\u002Fperformance","jamhan",[474,33,41,285,475,39],"17540704","Alex3917",[477,33,41,471,478,39],"17541102","dberg",[480,33,41,481,475,39],"17541158","project\u002Fcritical\u002Fprivacy",[483,33,39,279,11,41],"17541466",[485,33,39,252,486,39],"17541116","castis",[],[489,493,498,502,507,511],{"id":490,"name":491,"points":492,"category":20},"17530086","Router7",461,{"id":494,"name":495,"points":496,"category":497},"17538770","Font Playground",131,"creative",{"id":499,"name":500,"points":501,"category":20},"17551796","CloudForecast.io",125,{"id":503,"name":504,"points":505,"category":506},"17559213","Ansible Kernel",123,"dev_tools",{"id":508,"name":509,"points":510,"category":506},"17557384","Bo",104,{"id":512,"name":513,"points":514,"category":506},"17556805","Pinpointer",91,false,"v2",{"id":518,"name":5,"line":6,"ai":515,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":519,"top":18,"kw":520,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":521,"url":9,"mix":522,"praise":88,"objection":110,"sub":21},17540263,-0.01,[24,25,26,27,28],"3353330531335133000100131330545313135311",[32,33,34,35],1794036567813]