[{"data":1,"prerenderedAt":154},["ShallowReactive",2],{"project-42508130":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":33,"aspects":34,"strip":37,"post_text":29,"what":39,"said":65,"maker_in_thread":92,"shape":100,"grid":104,"attempts":112,"same_week":118,"maker_shows":15,"maker_hidden":147,"reader_version":148,"card":149},"42508130","Caravan","A flexible, transport-based logging system for TypeScript apps","title","Show HN: Caravan, a flexible, transport-based logging system for TypeScript apps","https:\u002F\u002Fgithub.com\u002Fcarlos-menezes\u002Fcaravan","github.com","carlos-menezes",1735123445,2024,18,4,1990,3515,57,"shown","dev_tools","logging library","library",[24,25,26,27],"typescript logging","logging transports","javascript logger","pino alternative","quiet",null,{"positive":31,"neutral":32,"mixed":32,"critical":31},1,0,2,{"idea":35,"docs":36},{"positive":32,"critical":31},{"positive":31,"critical":32},[31,32,38,32],5,{"problem":40,"audience":46,"pricing":29,"motivation":29,"time_to_build":29,"stack":58,"openness":63,"stage":64,"team_size":63},{"value":41,"source":42,"evidence":43},"Structured logging for TypeScript apps with pluggable transports","maker",[44],{"id":45},"post",{"value":47,"source":48,"evidence":49},"TypeScript and JavaScript developers","inferred",[50,54],{"id":51,"by":52,"text":53},"42527500","ericyd","Looks good, but would be nice to see a comparison with other major loggers in the JS space. I realize this one is TS-first but most of the time loggers have about 6 methods on a…",{"id":55,"by":56,"text":57},"42530996","bpev","Oo this is cool! Looking at some of the transports you built already, it looks fairly simple to do, but I'd appreciate a little documentation on how to BYOTransport (or at least…",[59],{"value":60,"source":42,"evidence":61},"TypeScript",[62],{"id":45},"unknown","prototype",{"praise":66,"objections":72,"requests":77,"questions":86,"alternatives":87},[67],{"value":68,"source":69,"evidence":70},"Transport design looks simple and useful for logging","commenter",[71],{"id":55,"by":56,"text":57},[73],{"value":74,"source":69,"evidence":75},"No clear value proposition versus established JS loggers like Pino",[76],{"id":51,"by":52,"text":53},[78,82],{"value":79,"source":69,"evidence":80},"Comparison with other loggers and benchmarks in the README",[81],{"id":51,"by":52,"text":53},{"value":83,"source":69,"evidence":84},"Documentation on building custom transports (BYOT)",[85],{"id":55,"by":56,"text":57},[],[88],{"value":89,"source":69,"evidence":90},"Pino",[91],{"id":51,"by":52,"text":53},{"comments":33,"answered":32,"key":93},[94,97],{"id":95,"text":96},"42530035","Thank you for taking a look. This is still a major work in progress. The question has been asked many times on other communities and I agree that there should be a section on the…",{"id":98,"text":99},"42531612","Hey! Thanks for taking a look. Indeed, BYOT is fairly straight-forward: 1. Create an implementation of the `Transport` class (you'll only have to implement the `handle` method);…",{"commenters":101,"max_depth":33,"maker_replies":33,"first_comment_mins":102,"lifespan_hours":103},3,3720,77,[105,107,109,111],[51,32,31,106,52,32],"project\u002Fcritical\u002Fidea",[95,32,32,108,11,31],"maker\u002Fneutral\u002Fdocs",[55,31,38,110,56,32],"project\u002Fpositive\u002Fdocs",[98,31,32,108,11,31],[113,114],{"id":4,"t":12,"points":14,"comments":15},{"id":115,"t":116,"points":117,"comments":32},"49472842",1787875759,6,[119,124,128,133,138,143],{"id":120,"name":121,"points":122,"category":123},"42507116","PaperMatch",324,"languages",{"id":125,"name":126,"points":127,"category":20},"42506569","FixBrowser",320,{"id":129,"name":130,"points":131,"category":132},"42471913","Artemis",312,"productivity",{"id":134,"name":135,"points":136,"category":137},"42497173","isle",251,"games",{"id":139,"name":140,"points":141,"category":142},"42493832","Super Snowflake Maker",228,"creative",{"id":144,"name":145,"points":146,"category":20},"42464310","Mizu.js",225,false,"v2",{"id":150,"name":5,"line":6,"ai":147,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":151,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":152,"url":9,"mix":153,"praise":68,"objection":74,"sub":21},42508130,[24,25,26,27],"1050",[31,32,32,31],1793991108275]