[{"data":1,"prerenderedAt":448},["ShallowReactive",2],{"project-41683144":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":45,"what":46,"said":85,"maker_in_thread":192,"shape":202,"grid":206,"attempts":412,"same_week":413,"maker_shows":33,"maker_hidden":440,"reader_version":441,"card":442},"41683144","htmgo","build simple and scalable systems with golang + htmx","title","Show HN: htmgo - build simple and scalable systems with golang + htmx","https:\u002F\u002Fhtmgo.dev","htmgo.dev","maddalax",1727559258,2024,166,81,493,3515,15,"notable","dev_tools","web framework","library",[24,25,26,27],"golang","htmx","go web framework","html components","mixed",0.135,{"positive":31,"neutral":32,"mixed":33,"critical":34},7,8,1,5,21,{"idea":37,"design":40,"execution":41,"docs":43},{"positive":38,"critical":39},3,2,{"positive":38,"critical":39},{"positive":42,"critical":33},0,{"positive":33,"critical":42},[33,42,38,33,38,33,34,42,42,42,42,42,34,42,38,38,42,42,42,42,42,42,42,42,42,38,38,42,42,42,38,38,38,42,34,42,42,42,34,34],"Hey all, I just wanted to share a project I've been working on for the past month.\n\nAfter years of heavy frameworks, I really like the idea of using htmx,  but it’s a little too low level for me and needs a thin layer above it to facilitate things like components, better syntax with complex JS inside of an attribute, etc\n\nTo try and solve this problem with a very minimal stack (golang + htmx) that I've been really enjoying, I'm building this project to cater to my needs and was thinking it would be useful for other developers.",{"problem":47,"audience":53,"pricing":60,"motivation":61,"time_to_build":60,"stack":65,"openness":83,"stage":84,"team_size":83},{"value":48,"source":49,"evidence":50},"htmx is too low level; needs a layer for components and better syntax","maker",[51],{"id":52},"post",{"value":54,"source":49,"evidence":55},"Go developers building web apps with htmx",[56,57],{"id":52},{"id":58,"by":11,"text":59},"41693313","I’m not quite sure what the roadmap looks like for gocomponents but it looks similar but I think it’s only filling one part of the puzzle. My plan for htmgo is to become…",null,{"value":62,"source":49,"evidence":63},"Maker wanted a thin layer above htmx for components and nicer syntax",[64],{"id":52},[66,70,73],{"value":67,"source":49,"evidence":68},"Go",[69],{"id":52},{"value":25,"source":49,"evidence":71},[72],{"id":52},{"value":74,"source":49,"evidence":75},"chi router",[76,80],{"id":77,"by":78,"text":79},"41687545","TripleChecker","interesting idea, can it be used with Gin or any other Go web framework - or is that not just the html templating library but a framework on its own? There were a few typos in…",{"id":81,"by":11,"text":82},"41687574","Ah good call, I should have checked for typos. Will fix, ty. The routing uses the std lib + chi, it's fairly integrated into the html builder because the http request needs to be…","unknown","beta",{"praise":86,"objections":111,"requests":130,"questions":147,"alternatives":159},[87,103],{"value":88,"source":89,"evidence":90},"Good documentation and clean website","commenter",[91,95,99],{"id":92,"by":93,"text":94},"41684351","DLA","This is useful! Love the Go & HTMX combination and use it often. Good documentation too for an alpha release. Nice work.",{"id":96,"by":97,"text":98},"41690700","pmdfgy","I'll defintely give it a try when I can but in the meantime I wanted to congratulate and encourage you for the *simple* and yet very practical website presenting the project.…",{"id":100,"by":101,"text":102},"41684941","ilrwbwrkhv","Beautiful! I don't use Go anymore (moved to Rust) but this looks pristine.",{"value":104,"source":89,"evidence":105},"Appealing Go plus htmx combination",[106,107],{"id":92,"by":93,"text":94},{"id":108,"by":109,"text":110},"41685354","ocean_moist","Backend devs rejoice as they can now build dashboards without leaving go.",[112,123],{"value":113,"source":89,"evidence":114},"Writing HTML as Go function calls is verbose and hard to read",[115,119],{"id":116,"by":117,"text":118},"41686654","2024user","Without touching JavaScript but now you have to type return h.NewPage( h.Div( h.Class(\"flex gap-2\"), h.TextF(\"the current time is %s\", now.String()) ) ) To me that is horrible.",{"id":120,"by":121,"text":122},"41687102","jasonlotito","I remember the days when one of the complaints about PHP was people mixing PHP and HTML together. And no, it was mixing PHP and HTML together. That’s it. Don’t try to tack on…",{"value":124,"source":89,"evidence":125},"Reinventing HTML in another language is too restrictive",[126],{"id":127,"by":128,"text":129},"41687111","novoreorx","Welp, another fasthtml project. I still don't understand the idea of reinventing HTML in another language. It's too restrictive and will never be as compatible as JSX. Don't get…",[131,141],{"value":132,"source":89,"evidence":133},"Live reload and faster recompilation",[134,138],{"id":135,"by":136,"text":137},"41687282","breadchris","I love this! I have been working on something similar recently [1] and it is exciting to think about the possibility of building full stack components for the web that are not…",{"id":139,"by":11,"text":140},"41687486","Haha we kind of have the same vision. That's eventually what I want to turn htmgo into, something like rails, but as minimal as it can be (essentially plugins, good defaults but…",{"value":142,"source":89,"evidence":143},"Better IDE support",[144],{"id":145,"by":11,"text":146},"41685095","I do also like the idea behind templ, only issue is when I tried to use it, the DX was pretty poor on Jetbrains IDE’s. I think the LSP is broken for it",[148,155],{"value":149,"source":89,"evidence":150},"How client-side interactivity is handled",[151],{"id":152,"by":153,"text":154},"41693190","jmole","How do you handle client side interactivity? I’m probably an outlier, but all the JS I write is client side, and I sure wish I had a typed language to use in development.",{"value":156,"source":89,"evidence":157},"Whether it works with Gin or other Go frameworks",[158],{"id":77,"by":78,"text":79},[160,170,178,185],{"value":161,"source":89,"evidence":162},"gomponents",[163,167],{"id":164,"by":165,"text":166},"41689054","gwd","> I still don't understand the idea of reinventing HTML in another language. I switched from using golang templates with hand-crafted HTML to gomponents[1] a few months ago, and…",{"id":168,"by":128,"text":169},"41692596","gomponents look better; at least the `h.` prefix could be omitted. Also, it serves a simpler purpose than htmgo. What do you think about https:\u002F\u002Ftempl.guide\u002F? To me, the ability…",{"value":171,"source":89,"evidence":172},"templ",[173,174],{"id":168,"by":128,"text":169},{"id":175,"by":176,"text":177},"41685049","OccamsMirror","htmx + Templ (https:\u002F\u002Ftempl.guide\u002F) is something I'm really enjoying as a replacement for React in my personal projects.",{"value":179,"source":89,"evidence":180},"FastHTML",[181,182],{"id":127,"by":128,"text":129},{"id":183,"by":128,"text":184},"41692652","I compare this project to FastHTML for two reasons: 1. They both invented a DSL to write HTML in a functional way. 2. They both integrate with HTMX to provide interactivity. This…",{"value":186,"source":89,"evidence":187},"Phlex",[188],{"id":189,"by":190,"text":191},"41688714","pmdr","Phlex (https:\u002F\u002Fphlex.fun), but I don't know about the 'widely' part.",{"comments":18,"answered":193,"key":194},6,[195,198,201],{"id":196,"text":197},"41689295","This is very cool, I like the website too",{"id":199,"text":200},"41693053","What makes you believe the prefix can’t be omitted in htmgo? You just alias it the same way with a ‘.’",{"id":58,"text":59},{"commenters":203,"max_depth":31,"maker_replies":18,"first_comment_mins":204,"lifespan_hours":205},47,282,157,[207,209,213,216,218,220,221,223,225,227,228,229,231,235,238,241,244,246,248,250,252,254,257,259,263,265,267,270,272,274,277,280,284,286,288,291,292,293,296,299,302,305,308,310,313,315,317,319,322,325,327,330,334,336,338,342,343,346,349,351,354,357,360,364,367,370,373,374,376,378,381,384,386,389,391,393,395,397,401,404,409],[127,42,33,208,128,42],"project\u002Fcritical\u002Fidea",[210,42,42,211,212,42],"41688685","commenter\u002Fneutral\u002Fnone","bilekas",[214,42,42,211,215,42],"41689223","imacrayon",[196,42,42,217,11,33],"other\u002Fpositive\u002Fnone",[183,42,38,219,128,42],"project\u002Fneutral\u002Fidea",[164,42,42,217,165,42],[168,42,33,222,128,42],"project\u002Fcritical\u002Fdesign",[199,42,42,224,11,33],"project\u002Fneutral\u002Fdesign",[226,42,38,224,128,42],"41704244",[58,42,42,219,11,33],[116,33,33,222,117,42],[230,33,42,224,11,33],"41686845",[232,33,34,233,234,42],"41686992","project\u002Fpositive\u002Fdesign","snorremd",[236,33,42,237,11,33],"41687269","maker\u002Fpositive\u002Fnone",[239,33,42,211,240,42],"41687229","j45",[242,33,42,211,243,42],"41687802","sitkack",[245,33,42,211,240,42],"41688666",[247,33,42,211,243,42],"41702904",[249,33,42,211,117,42],"41707141",[251,33,42,211,240,42],"41721487",[253,33,42,211,117,42],"41749018",[255,33,42,211,256,42],"41687978","hadthischat",[258,33,42,211,212,42],"41688713",[260,39,42,261,262,42],"41685290","other\u002Fneutral\u002Fnone","anonzzzies",[135,38,34,264,136,42],"project\u002Fpositive\u002Fidea",[139,38,42,266,11,33],"project\u002Fneutral\u002Fexecution",[268,38,42,261,269,42],"41687798","hilti",[271,38,42,266,11,33],"41687628",[273,38,38,266,136,42],"41688280",[275,38,42,261,276,42],"41698690","allknowingfrog",[92,278,34,279,93,42],4,"project\u002Fpositive\u002Fdocs",[281,34,33,282,283,42],"41685139","project\u002Fcritical\u002Fexecution","tanduv",[285,34,42,266,11,33],"41685170",[287,34,42,266,11,33],"41685289",[289,34,42,261,290,42],"41685507","lnxg33k1",[175,193,42,217,176,42],[145,193,42,261,11,33],[294,193,42,261,295,42],"41685244","chabad360",[297,193,42,261,298,42],"41685848","kosmozaut",[300,193,42,261,301,42],"41686964","jonathrg",[303,31,42,261,304,42],"41685175","winrid",[306,31,42,261,307,42],"41686078","thwg",[309,31,42,261,304,42],"41688570",[311,31,42,261,312,42],"41686346","mattgreenrocks",[314,31,42,261,304,42],"41687815",[316,31,42,261,312,42],"41689677",[318,31,42,261,304,42],"41691463",[320,31,42,261,321,42],"41688539","jacques_chester",[323,32,42,261,324,42],"41687075","smallerfish",[326,32,42,217,11,33],"41687664",[328,32,42,261,329,42],"41689211","andy800",[331,332,38,219,333,42],"41685070",9,"sublinear",[120,335,33,208,121,42],10,[96,337,34,233,97,42],11,[339,340,42,261,341,42],"41688687",12,"65",[189,340,42,261,190,42],[344,340,42,261,345,42],"41688899","librasteve",[347,340,42,217,348,42],"41693008","eddyg",[350,340,42,261,165,42],"41689067",[352,340,42,261,353,42],"41693703","poorlyknit",[152,355,38,356,153,42],13,"maker\u002Fneutral\u002Fnone",[358,355,42,359,11,33],"41693276","project\u002Fneutral\u002Fdocs",[361,362,38,363,262,42],"41685301",14,"project\u002Fneutral\u002Fnone",[365,362,38,219,366,42],"41685785","kitd",[368,18,42,261,369,42],"41687448","politician",[77,371,38,372,78,42],16,"maker\u002Fmixed\u002Fdocs",[81,371,42,356,11,33],[375,371,42,356,11,33],"41687611",[100,377,34,233,101,42],17,[379,377,42,261,380,42],"41685331","sureglymop",[382,377,42,211,383,42],"41686148","klabb3",[385,377,42,211,240,42],"41687241",[387,377,42,261,388,42],"41698394","Prosammer",[390,377,42,261,380,42],"41698796",[392,377,42,261,388,42],"41699091",[394,377,42,211,380,42],"41698772",[108,396,34,264,109,42],18,[398,399,38,219,400,42],"41687073",19,"seumars",[402,399,42,403,11,33],"41687276","maker\u002Fneutral\u002Fidea",[405,406,42,407,408,42],"41687627",20,"other\u002Fcritical\u002Fidea","Terretta",[410,35,34,264,411,42],"41688849","bugsense",[],[414,419,423,427,431,436],{"id":415,"name":416,"points":417,"category":418},"41710227","Tavus",455,"ai",{"id":420,"name":421,"points":422,"category":20},"41701644","qrframe",401,{"id":424,"name":425,"points":426,"category":20},"41711032","Sourcebot",259,{"id":428,"name":429,"points":430,"category":20},"41695756","CrystalClear Audio",223,{"id":432,"name":433,"points":434,"category":435},"41654723","Cronexpr",160,"languages",{"id":437,"name":438,"points":439,"category":20},"41699955","Facad",147,false,"v2",{"id":443,"name":5,"line":6,"ai":440,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":444,"top":18,"kw":445,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":446,"url":9,"mix":447,"praise":88,"objection":113,"sub":21},41683144,0.14,[24,25,26,27],"1031315000005033000000000330003330500055",[31,32,33,34],1794036661873]