[{"data":1,"prerenderedAt":515},["ShallowReactive",2],{"project-45024532":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":49,"what":50,"said":107,"maker_in_thread":236,"shape":243,"grid":248,"attempts":477,"same_week":478,"maker_shows":42,"maker_hidden":507,"reader_version":508,"card":509},"45024532","markdown-ui","Turn Markdown into React\u002FSvelte\u002FVue UI at runtime, zero build step","title","Show HN: Turn Markdown into React\u002FSvelte\u002FVue UI at runtime, zero build step","https:\u002F\u002Fmarkdown-ui.com\u002F","markdown-ui.com","yaoke259",1756203204,2025,202,97,317,3837,9,"notable","dev_tools","markdown ui renderer","library",[24,25,26,27,28],"markdown","react","svelte","runtime rendering","llm ui","mixed",-0.286,{"positive":32,"neutral":33,"mixed":34,"critical":35},5,17,0,19,41,{"idea":38,"performance":41,"design":43,"execution":44,"docs":46,"privacy":47},{"positive":39,"critical":40},3,8,{"positive":34,"critical":42},2,{"positive":34,"critical":32},{"positive":45,"critical":39},1,{"positive":45,"critical":34},{"positive":34,"critical":34},[39,45,34,45,39,45,32,39,45,45,45,32,39,34,39,45,45,32,34,34,34,39,45,32,34,45,45,39,45,34,34,39,45,39,39,39,45,42,39,45],null,{"problem":51,"audience":64,"pricing":49,"motivation":68,"time_to_build":49,"stack":73,"openness":105,"stage":106,"team_size":105},{"value":52,"source":53,"evidence":54},"Lets LLM output include interactive UI widgets without a build step or executing arbitrary code","maker",[55,58,61],{"id":56,"by":11,"text":57},"45025435","Seems like some people are confused by the design decisions of using React\u002FSvelte\u002FVue and using it at runtime. The use case I had in mind was LLM interaction, which you can try…",{"id":59,"by":11,"text":60},"45025357","the reason I made it is that mdxjs (afaik) only works with a build step and locks the user into React, and you are still technically running code sent by the LLM, rather than a…",{"id":62,"by":11,"text":63},"45025420","so runtime use cases like LLMs can be supported, in the Chat example you can interact with a real llm!",{"value":65,"source":53,"evidence":66},"Developers building LLM chat interfaces",[67],{"id":56,"by":11,"text":57},{"value":69,"source":53,"evidence":70},"Secure, minimal DSL for LLM-generated interactivity",[71,72],{"id":56,"by":11,"text":57},{"id":59,"by":11,"text":60},[74,84,88,93,99],{"value":75,"source":53,"evidence":76},"React",[77,81],{"id":78,"by":79,"text":80},"45026843","ysavir","Happy to give you my spin on this. I use Vue, but in personal projects I mix Vue and vanilla JS according to page complexity. On pages that need more state management and would…",{"id":82,"by":11,"text":83},"45025676","Thanks for the questions and super valuable feedback! To be totally honest, I came from a Svelte\u002FFramework background and just did not deeply consider\u002Frealise you can create a…",{"value":85,"source":53,"evidence":86},"Svelte",[87],{"id":82,"by":11,"text":83},{"value":89,"source":90,"evidence":91},"Vue","commenter",[92],{"id":78,"by":79,"text":80},{"value":94,"source":53,"evidence":95},"Web components",[96],{"id":97,"by":11,"text":98},"45026925","this actually uses web components under the hood! the dsl is more secure and easier to write (at least in my opinion). For v2 I'll make the whole design\u002Farchitecture more…",{"value":100,"source":53,"evidence":101},"Astro",[102],{"id":103,"by":11,"text":104},"45025489","This happened after I turned the demo site into Astro to demo all the frameworks at once. For some reason it messes with the hydration of the site, will keep debugging...","unknown","beta",{"praise":108,"objections":123,"requests":161,"questions":186,"alternatives":203},[109,116],{"value":110,"source":90,"evidence":111},"Works at runtime, useful with SvelteKit",[112],{"id":113,"by":114,"text":115},"45025510","ekusiadadus","I actually tried it out and it feels pretty good. Especially with SvelteKit, where the library ecosystem is still somewhat limited, a library like this is really exciting. I…",{"value":117,"source":90,"evidence":118},"Spec is a strong point, could be reimplemented",[119],{"id":120,"by":121,"text":122},"45025847","mike_hearn","It's very cool and the fact it has a spec is the icing on the cake. There could easy be implementations for other runtimes. Probably, given the spec, an LLM could generate such…",[124,135,146],{"value":125,"source":90,"evidence":126},"Runtime rendering defeats the point of a build step",[127,131],{"id":128,"by":129,"text":130},"45026066","0points","The whole point of a build step here would be to _AVOID_ runtime rendering. To me this just reads like not getting the point.",{"id":132,"by":133,"text":134},"45025324","_heimdall","Svelte, react, and vue all require a build step if I'm not mistaken. What's the value in delaying markdown transformation until runtime?",{"value":136,"source":90,"evidence":137},"Output is not valid HTML and the value over plain HTML is unclear",[138,142],{"id":139,"by":140,"text":141},"45024882","lelanthran","Maybe I'm not understanding, but why is this \"Turn Markdown into React\u002FSvelte\u002FVue UI\" and not \"Turn Markdown into HTML\"? I'm not seeing the value of generating React, Vue or…",{"id":143,"by":144,"text":145},"45026711","archerx","That's not even valid HTML...",{"value":147,"source":90,"evidence":148},"Interactive widgets break after several clicks or with some events",[149,153,157],{"id":150,"by":151,"text":152},"45025047","Tade0","For me it stops working after several clicks. The other day my project owner remarked that in the future perhaps we won't be building catalogs of items like the one I am…",{"id":154,"by":155,"text":156},"45024797","chromehearts","I'm having trouble with some widget elements not registering events properly, especially the checklists. Still looks like a solid tool tho in my opinion",{"id":158,"by":159,"text":160},"45026407","DetroitThrow","Testing myself, it seems to not work after a certain period of time - I'm curious what layer OP would start debugging this in or whether they should just do an entire rewrite!",[162,171,178],{"value":163,"source":53,"evidence":164},"Vanilla HTML\u002FJS version",[165,168],{"id":166,"by":11,"text":167},"45025463","I suppose a vanilla js version is possible? I'll need to look into this",{"id":169,"by":11,"text":170},"45026038","I'm already looking at a v2 implementation as some others have correctly pointed this out. Since I'm already relying on customElements and web components, I should make that…",{"value":172,"source":90,"evidence":173},"Social card for link previews",[174],{"id":175,"by":176,"text":177},"45031627","tomByrer","Suggestion: social card thingy so when it is linked to in Discord, X, etc, there will be a better looking link.",{"value":179,"source":90,"evidence":180},"Validator and better authoring tooling",[181,185],{"id":182,"by":183,"text":184},"45026169","progx","Markdown form renderer, now we need a simple validator.",{"id":97,"by":11,"text":98},[187,194],{"value":188,"source":90,"evidence":189},"Why a custom DSL instead of an established language like MDX",[190],{"id":191,"by":192,"text":193},"45029342","etler","I've been working on a similar project using MDX as the parser to enable runtime static JSX tags in markdown:…",{"value":195,"source":90,"evidence":196},"What does the framework add over plain DOM event handling",[197,200],{"id":198,"by":140,"text":199},"45025553","> Svelte, React and Vue allow for easier event handling, at least that was my rationale, is it possible to achieve the same with html? I'm not really sure how Svelte, React or…",{"id":201,"by":11,"text":202},"45025380","html does not allow for event handling, this allows for secure listening of the events at runtime, which afaik is not possible with html",[204,215,222,229],{"value":205,"source":90,"evidence":206},"MDX",[207,211],{"id":208,"by":209,"text":210},"45025077","onion2k","This already exists in a mature state - https:\u002F\u002Fmdxjs.com\u002F",{"id":212,"by":213,"text":214},"45026941","desireco42","So this is like MDX, but compiled... I always liked MDX and think this is good way to boost Markdown because, often we don't need much more then Markdown.",{"value":216,"source":90,"evidence":217},"Markdeep",[218],{"id":219,"by":220,"text":221},"45030644","corysama","BTW: If you want \"Turn Markdown into HTML at runtime\" there's https:\u002F\u002Fcasual-effects.com\u002Fmarkdeep\u002F",{"value":223,"source":90,"evidence":224},"Streamdown",[225],{"id":226,"by":227,"text":228},"45025527","eashish93","streaming not good and smooth. You should check out streamdown.ai",{"value":230,"source":90,"evidence":231},"MDwiki",[232],{"id":233,"by":234,"text":235},"45027244","littlecranky67","Looks like a modern version of mdwiki [0] [0]: mdwiki.info",{"comments":237,"answered":238,"key":239},27,10,[240,241,242],{"id":201,"text":202},{"id":166,"text":167},{"id":97,"text":98},{"commenters":244,"max_depth":245,"maker_replies":237,"first_comment_mins":246,"lifespan_hours":247},49,6,36,94,[249,251,255,259,260,264,266,269,272,276,279,281,282,284,286,287,290,292,295,297,298,301,302,304,306,308,311,312,314,317,320,322,324,326,328,330,333,336,338,341,344,347,350,352,355,358,359,361,363,365,367,368,371,374,375,377,381,383,387,392,395,398,400,403,406,408,409,413,415,418,421,423,425,427,431,433,435,438,440,441,443,444,446,449,450,454,457,459,461,466,468,469,472,475],[139,34,39,250,140,34],"project\u002Fneutral\u002Fidea",[252,34,34,253,254,34],"45024990","other\u002Fneutral\u002Fnone","thrown-0825",[256,34,45,257,258,34],"45025096","project\u002Fcritical\u002Fperformance","jy14898",[201,34,34,250,11,45],[261,34,34,262,263,34],"45025425","commenter\u002Fneutral\u002Fnone","mpalmer",[166,34,34,265,11,45],"maker\u002Fneutral\u002Fidea",[267,34,34,262,268,34],"45027658","paceaux",[270,34,34,253,271,34],"45025261","randomtoast",[273,34,45,274,275,34],"45025292","project\u002Fcritical\u002Fidea","threetonesun",[277,34,34,253,278,34],"45025497","didgeoridoo",[280,34,39,250,140,34],"45026263",[97,34,34,250,11,45],[283,34,34,250,11,45],"45025332",[198,34,45,285,140,34],"project\u002Fcritical\u002Fdesign",[82,34,34,265,11,45],[288,34,32,289,176,34],"45031586","maker\u002Fpositive\u002Fidea",[78,34,39,291,79,34],"project\u002Fneutral\u002Fdesign",[293,34,34,294,11,45],"45027354","maker\u002Fneutral\u002Fdesign",[296,34,34,253,192,34],"45029796",[219,34,45,274,220,34],[299,45,45,274,300,34],"45026005","hollowturtle",[169,45,34,294,11,45],[303,45,45,285,300,34],"45026229",[305,45,34,294,11,45],"45026597",[158,45,45,307,159,34],"project\u002Fcritical\u002Fexecution",[309,45,34,310,11,45],"45026520","maker\u002Fneutral\u002Fexecution",[56,42,34,250,11,45],[120,42,32,313,121,34],"project\u002Fpositive\u002Fdocs",[315,42,34,316,11,45],"45025919","maker\u002Fpositive\u002Fnone",[318,42,39,265,319,34],"45027190","nonethewiser",[321,42,34,265,11,45],"45027375",[323,42,34,253,192,34],"45029966",[113,39,32,325,114,34],"project\u002Fpositive\u002Fexecution",[327,39,34,316,11,45],"45025914",[128,329,45,274,129,34],4,[331,329,39,250,332,34],"45026516","hombre_fatal",[334,32,45,307,335,34],"45025017","aa-jv",[337,32,34,310,11,45],"45025713",[339,245,45,285,340,34],"45024888","cluckindan",[212,342,32,343,213,34],7,"project\u002Fpositive\u002Fidea",[345,342,34,346,11,45],"45027086","maker\u002Fneutral\u002Fnone",[348,342,39,349,192,34],"45029213","project\u002Fneutral\u002Fprivacy",[150,40,34,351,151,34],"other\u002Fneutral\u002Fidea",[353,40,34,351,354,34],"45025311","friendzis",[356,40,34,253,357,34],"45025441","freetonik",[103,40,34,310,11,45],[360,40,34,253,151,34],"45026032",[362,40,34,253,140,34],"45026347",[364,40,34,310,11,45],"45025715",[366,40,34,351,300,34],"45025926",[191,18,39,250,192,34],[369,18,34,370,11,45],"45034301","commenter\u002Fneutral\u002Fprivacy",[372,18,34,370,373,34],"45038607","Terretta",[154,238,45,307,155,34],[376,238,34,316,11,45],"45025367",[378,379,32,343,380,34],"45025016",11,"AbuAssar",[382,379,34,265,11,45],"45025947",[384,385,34,253,386,34],"45028130",12,"Mylloon",[388,389,34,390,391,34],"45026411",13,"other\u002Fcritical\u002Fnone","jrm4",[393,389,45,274,394,34],"45026465","zoover2020",[396,389,34,262,397,34],"45026779","mkoryak",[399,389,34,262,394,34],"45027728",[401,402,45,274,144,34],"45025033",14,[404,402,39,291,405,34],"45025377","codegladiator",[407,402,34,291,11,45],"45025392",[143,402,45,285,144,34],[410,402,45,411,412,34],"45026190","project\u002Fcritical\u002Fnone","bottlero_cket",[414,402,34,262,144,34],"45026714",[416,402,34,253,417,34],"45033807","janmarsal",[419,402,34,253,420,34],"45037972","floydnoel",[422,402,34,253,417,34],"45049959",[424,402,34,253,144,34],"45050853",[426,402,34,253,417,34],"45072889",[428,429,39,250,430,34],"45027924",15,"nisten",[432,429,34,262,11,45],"45028354",[208,434,45,274,209,34],16,[436,434,39,250,437,34],"45025111","alfonsodev",[439,434,39,250,209,34],"45025179",[59,434,34,250,11,45],[442,434,34,262,192,34],"45029320",[175,33,39,291,176,34],[445,33,34,346,11,45],"45034321",[447,448,34,346,11,45],"45028483",18,[182,35,39,250,183,34],[451,452,45,274,453,34],"45026020",20,"npn",[455,456,34,310,11,45],"45025541",21,[233,458,39,250,234,34],22,[226,460,45,257,227,34],23,[462,463,39,464,465,34],"45026053",24,"project\u002Fneutral\u002Fnone","Chidex12",[132,467,39,250,133,34],25,[62,467,34,250,11,45],[470,467,45,285,471,34],"45025517","snickerdoodle12",[473,467,39,291,474,34],"45025648","whalesalad",[476,467,34,262,133,34],"45026150",[],[479,483,488,493,497,502],{"id":480,"name":481,"points":482,"category":20},"45014131","Base",693,{"id":484,"name":485,"points":486,"category":487},"45028002","BYTE magazine archive",423,"learning_science",{"id":489,"name":490,"points":491,"category":492},"45003420","Clearcam",233,"security_privacy",{"id":494,"name":495,"points":496,"category":20},"44988271","xsl-website",211,{"id":498,"name":499,"points":500,"category":501},"45039292","Animal Crossing Letter Generator",203,"creative",{"id":503,"name":504,"points":505,"category":506},"44969622","DiffMem",198,"ai",false,"v2",{"id":510,"name":5,"line":6,"ai":507,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":511,"top":18,"kw":512,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":513,"url":9,"mix":514,"praise":110,"objection":125,"sub":21},45024532,-0.29,[24,25,26,27,28],"3101315311153031150003150113100313331231",[32,33,34,35],1793991128683]