[{"data":1,"prerenderedAt":109},["ShallowReactive",2],{"project-44746497":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":15,"aspects":31,"strip":32,"post_text":33,"what":34,"said":60,"maker_in_thread":66,"shape":68,"grid":69,"attempts":70,"same_week":71,"maker_shows":101,"maker_hidden":102,"reader_version":103,"card":104},"44746497","Legal–Markdown-JS","Legal–Markdown-JS, Git-friendly legal docs with Markdown and helpers","title","Show HN: Legal–Markdown-JS, Git-friendly legal docs with Markdown and helpers","https:\u002F\u002Fgithub.com\u002Fpetalo\u002Flegal-markdown-js","github.com","dmarinoc",1753974693,2025,10,0,2896,3837,76,"shown","languages","document markup library","library",[24,25,26,27],"legal markdown","contract automation","legal document numbering","markdown templates","quiet",null,{"positive":15,"neutral":15,"mixed":15,"critical":15},{},[],"Hi HN! I'm sharing legal-markdown-js, a TypeScript port of an abandoned 2011 Ruby gem that solves a surprisingly complex problem: writing legal documents that don't break when you edit them.\n\nThe Problem: Legal documents have intricate numbering schemes (1.1.1, (a)(i), etc.) and cross-references. Change one section and you might need to renumber 50+ references manually. Plus there's tons of repetitive boilerplate clauses scattered across documents. Lawyers often avoid restructuring documents because it's too error-prone.\n\nThe Solution: Write contracts in Markdown with tons of helper functions:",{"problem":35,"audience":41,"pricing":29,"motivation":45,"time_to_build":29,"stack":49,"openness":58,"stage":59,"team_size":59},{"value":36,"source":37,"evidence":38},"Legal documents with complex numbering and cross-references break when edited; boilerplate is repeated and Word version history is lost","maker",[39],{"id":40},"post",{"value":42,"source":37,"evidence":43},"Legal professionals, legal tech companies, and developers who template contracts",[44],{"id":40},{"value":46,"source":37,"evidence":47},"Maker wanted control over legal documents shared with LPs and portfolio companies and was frustrated with Word version history; a port of an abandoned Ruby gem",[48],{"id":40},[50,54],{"value":51,"source":37,"evidence":52},"TypeScript",[53],{"id":40},{"value":55,"source":37,"evidence":56},"Remark\u002FUnified",[57],{"id":40},"open_source","unknown",{"praise":61,"objections":62,"requests":63,"questions":64,"alternatives":65},[],[],[],[],[],{"comments":15,"answered":15,"key":67},[],{"commenters":15,"max_depth":15,"maker_replies":15,"first_comment_mins":29,"lifespan_hours":29},[],[],[72,77,82,87,92,96],{"id":73,"name":74,"points":75,"category":76},"44787902","Kilopixel",1145,"creative",{"id":78,"name":79,"points":80,"category":81},"44807868","Kitten TTS",1003,"ai",{"id":83,"name":84,"points":85,"category":86},"44792005","Carbon",322,"web_saas",{"id":88,"name":89,"points":90,"category":91},"44747229","Mcp-use",155,"dev_tools",{"id":93,"name":94,"points":95,"category":81},"44767775","browser-llm",145,{"id":97,"name":98,"points":99,"category":100},"44801399","Whittle",141,"games",3,false,"v2",{"id":105,"name":5,"line":6,"ai":102,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":106,"maker":11,"domain":10,"tier":19,"attempts":15,"strip":107,"url":9,"mix":108,"praise":-1,"objection":-1,"sub":21},44746497,[24,25,26,27],"",[15,15,15,15],1793991126925]