[{"data":1,"prerenderedAt":200},["ShallowReactive",2],{"project-43897719":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":34,"aspects":35,"strip":40,"post_text":42,"what":43,"said":67,"maker_in_thread":130,"shape":136,"grid":139,"attempts":162,"same_week":163,"maker_shows":37,"maker_hidden":192,"reader_version":193,"card":194},"43897719","Tkintergalactic","Declarative Tcl\u002FTk UI Library for Python","title","Show HN: Tkintergalactic - Declarative Tcl\u002FTk UI Library for Python","https:\u002F\u002Fgithub.com\u002Fleontrolski\u002Ftkintergalactic","github.com","leontrolski",1746468140,2025,86,10,834,3837,22,"notable","dev_tools","ui library","library",[24,25,26,27],"tkinter","python gui","declarative ui","tcl tk","debated",-0.111,{"positive":31,"neutral":32,"mixed":33,"critical":31},3,1,0,7,{"idea":36,"design":38,"execution":39},{"positive":37,"critical":33},2,{"positive":32,"critical":32},{"positive":33,"critical":37},[41,33,32,41,33,32,31,41,32,33],5,null,{"problem":44,"audience":42,"pricing":42,"motivation":51,"time_to_build":42,"stack":55,"openness":65,"stage":66,"team_size":66},{"value":45,"source":46,"evidence":47},"Building simple Python UIs without spinning up a web server","maker",[48],{"id":49,"by":11,"text":50},"43899586","I plan on using it for semi throw away UIs for things where I don't want the user to have to spin up a Web server. Right now there's no canvas support, but there is that kind of…",{"value":52,"source":46,"evidence":53},"Semi throwaway UIs without a web server",[54],{"id":49,"by":11,"text":50},[56,61],{"value":57,"source":46,"evidence":58},"Python",[59],{"id":60},"post",{"value":62,"source":46,"evidence":63},"Tcl\u002FTk",[64],{"id":60},"open_source","unknown",{"praise":68,"objections":84,"requests":103,"questions":113,"alternatives":122},[69,77],{"value":70,"source":71,"evidence":72},"Nice project; starred and forked","commenter",[73],{"id":74,"by":75,"text":76},"43898825","WillAdams","Nice! (starred and forked so I'll be more inclined to try it) What projects do you feel this would be esp. well-suited to? (your doing a \"To-do\" app where a list would normally…",{"value":78,"source":71,"evidence":79},"Fun name, portmanteau of Tkinter and intergalactic",[80],{"id":81,"by":82,"text":83},"43900954","_mlbt","I like the name, it’s a fun portmanteau of Tkinter and intergalactic. It’s also more search engine friendly and less likely to hit a name collision with another project.",[85,92],{"value":86,"source":71,"evidence":87},"Declarative style can get nested and hard to read",[88],{"id":89,"by":90,"text":91},"43902090","zerr","Why declarative became synonym of nested hell? Can't you mimic an imperative flow of UI construction but under the hood have it declarative or whatever you want?",{"value":93,"source":71,"evidence":94},"Link was broken (404) until fixed",[95,99],{"id":96,"by":97,"text":98},"43897795","cmacleod4","Link gives a 404 :-(",{"id":100,"by":101,"text":102},"43897768","pvg","Your repo link is probably not set to public.",[104,109],{"value":105,"source":71,"evidence":106},"Canvas support for drawing",[107,108],{"id":74,"by":75,"text":76},{"id":49,"by":11,"text":50},{"value":110,"source":46,"evidence":111},"Way to access raw Tcl widget names",[112],{"id":49,"by":11,"text":50},[114,118],{"value":115,"source":71,"evidence":116},"What projects suit it best and which it would not suit",[117],{"id":74,"by":75,"text":76},{"value":119,"source":71,"evidence":120},"Why not mimic imperative construction with declarative internals",[121],{"id":89,"by":90,"text":91},[123],{"value":124,"source":71,"evidence":125},"Imperative Tkinter code with a gist example",[126],{"id":127,"by":128,"text":129},"43902609","fabrixxm","I mean, you can just do it https:\u002F\u002Fgist.github.com\u002Ffabrixxm\u002F5c072ac64b680cb4a3406e2763d674b8",{"comments":37,"answered":32,"key":131},[132,133],{"id":49,"text":50},{"id":134,"text":135},"43898030","Well that was dumb - fixed, sorry",{"commenters":137,"max_depth":37,"maker_replies":37,"first_comment_mins":41,"lifespan_hours":138},9,14,[140,142,144,146,150,152,154,157,158,160],[74,33,41,141,75,33],"project\u002Fpositive\u002Fidea",[49,33,33,143,11,32],"project\u002Fneutral\u002Fidea",[89,32,32,145,90,33],"project\u002Fcritical\u002Fdesign",[147,32,41,148,149,33],"43902522","project\u002Fpositive\u002Fdesign","actionfromafar",[127,32,33,151,128,33],"commenter\u002Fneutral\u002Fdesign",[96,37,32,153,97,33],"project\u002Fcritical\u002Fexecution",[155,31,31,143,156,33],"43900890","somesun",[81,31,41,141,82,33],[100,159,32,153,101,33],4,[134,159,33,161,11,32],"maker\u002Fneutral\u002Fexecution",[],[164,169,174,178,183,187],{"id":165,"name":166,"points":167,"category":168},"43905942","Clippy",1122,"ai",{"id":170,"name":171,"points":172,"category":173},"43880962","BreezePDF",791,"productivity",{"id":175,"name":176,"points":177,"category":168},"43899028","RealtimeVoiceChat",524,{"id":179,"name":180,"points":181,"category":182},"43873074","Anukari",512,"creative",{"id":184,"name":185,"points":186,"category":173},"43891245","AI Native Resume",301,{"id":188,"name":189,"points":190,"category":191},"43896011","VectorVFS",279,"data",false,"v2",{"id":195,"name":5,"line":6,"ai":192,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":196,"top":18,"kw":197,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":198,"url":9,"mix":199,"praise":70,"objection":86,"sub":21},43897719,-0.11,[24,25,26,27],"5015013510",[31,32,33,31],1794036674329]