[{"data":1,"prerenderedAt":136},["ShallowReactive",2],{"project-44193118":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":33,"aspects":34,"strip":36,"post_text":38,"what":39,"said":65,"maker_in_thread":87,"shape":92,"grid":94,"attempts":98,"same_week":99,"maker_shows":128,"maker_hidden":129,"reader_version":130,"card":131},"44193118","bff-eval","Create LLM graders and run evals in JavaScript with one file","title","Show HN: Create LLM graders and run evals in JavaScript with one file","https:\u002F\u002Fgithub.com\u002Fbolt-foundry\u002Fbolt-foundry\u002Ftree\u002Fmain\u002Fpackages\u002Fbff-eval","github.com","randall",1749140456,2025,28,2,1710,3837,45,"shown","ai","llm evaluation","cli",[24,25,26,27,28],"llm evals","llm grader","prompt evaluation","openrouter","llm-as-judge","quiet",null,{"positive":32,"neutral":33,"mixed":32,"critical":32},0,1,{"idea":35},{"positive":32,"critical":32},[37,32],3,"Hi HN!\n\nRun it: OPENROUTER_API_KEY=\"sk\" npx bff-eval --demo\n\nWe built a tool to help people take LLM outputs and easily grade them \u002F eval them to know how good an assistant response is.\n\nWe've built a number of LLM apps, and while we could ship decent tech demos, we were disappointed with how they'd perform over time. We worked with a few companies who had the same problem, and found out scientifically building prompts and evals is far from a solved problem... writing these things feels more like directing a play than coding.\n\nInspired by Anthropic's constitutional ai concepts, and amazing sof",{"problem":40,"audience":46,"pricing":30,"motivation":50,"time_to_build":30,"stack":54,"openness":63,"stage":63,"team_size":64},{"value":41,"source":42,"evidence":43},"Hard to grade and evaluate LLM outputs to know how good assistant responses are","maker",[44],{"id":45},"post",{"value":47,"source":42,"evidence":48},"People building LLM apps who care about reliability",[49],{"id":45},{"value":51,"source":42,"evidence":52},"LLM apps degraded over time; prompts and evals are hard to get right",[53],{"id":45},[55,59],{"value":56,"source":42,"evidence":57},"JavaScript",[58],{"id":45},{"value":60,"source":42,"evidence":61},"OpenRouter",[62],{"id":45},"unknown","team",{"praise":66,"objections":67,"requests":68,"questions":77,"alternatives":82},[],[],[69],{"value":70,"source":71,"evidence":72},"Grade outputs across different prompts, not just base models","commenter",[73],{"id":74,"by":75,"text":76},"44193365","rbalicki","Very cool! This lets you grade output across different base models. Does it also allow you grade output across different prompts?",[78],{"value":79,"source":71,"evidence":80},"Can it grade output across different prompts?",[81],{"id":74,"by":75,"text":76},[83],{"value":84,"source":42,"evidence":85},"DSPy",[86],{"id":45},{"comments":33,"answered":33,"key":88},[89],{"id":90,"text":91},"44193382","that’s the next step… we have a structured approach to prompting too that we think will help people build better prompts too.",{"commenters":15,"max_depth":15,"maker_replies":33,"first_comment_mins":93,"lifespan_hours":33},29,[95,97],[74,32,37,96,75,32],"project\u002Fneutral\u002Fidea",[90,32,32,96,11,33],[],[100,105,109,114,119,123],{"id":101,"name":102,"points":103,"category":104},"44189329","Air Lab",497,"hardware",{"id":106,"name":107,"points":108,"category":104},"44241278","tsungxu.com",418,{"id":110,"name":111,"points":112,"category":113},"44238171","Chili3d",408,"dev_tools",{"id":115,"name":116,"points":117,"category":118},"44249565","Spark",377,"languages",{"id":120,"name":121,"points":122,"category":113},"44225352","Bugdrop",335,{"id":124,"name":125,"points":126,"category":127},"44226879","Munal OS",313,"infrastructure",7,false,"v2",{"id":132,"name":5,"line":6,"ai":129,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":133,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":134,"url":9,"mix":135,"praise":-1,"objection":-1,"sub":21},44193118,[24,25,26,27,28],"30",[32,33,32,32],1793991122599]