[{"data":1,"prerenderedAt":449},["ShallowReactive",2],{"project-47849097":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":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":45,"post_text":47,"what":48,"said":81,"maker_in_thread":206,"shape":219,"grid":224,"attempts":410,"same_week":411,"maker_shows":41,"maker_hidden":441,"reader_version":442,"card":443},"47849097","GoModel","an open-source AI gateway in Go","title","Show HN: GoModel – an open-source AI gateway in Go","https:\u002F\u002Fgithub.com\u002FENTERPILOT\u002FGOModel\u002F","github.com","santiago-pl",1776780713,2026,217,75,252,4366,6,"notable","infrastructure","ai gateway","api",[21,24,25,26],"llm proxy","openai compatible","semantic caching","curious",0.231,{"positive":30,"neutral":31,"mixed":32,"critical":33},8,18,2,3,31,{"privacy":36,"idea":38,"execution":40,"docs":42,"design":43,"performance":44},{"positive":37,"critical":37},0,{"positive":39,"critical":37},4,{"positive":41,"critical":41},1,{"positive":37,"critical":37},{"positive":37,"critical":37},{"positive":37,"critical":32},[46,37,37,37,37,37,37,33,37,33,33,33,33,37,37,37,46,37,33,41,37,37,33,33,46,33,41,41,33,33,46,37,46,33,46,46,33,33,33,37],5,"Hi, I’m Jakub, a solo founder based in Warsaw.\n\nI’ve been building GoModel since December with a couple of contributors. It's an open-source AI gateway that sits between your app and model providers like OpenAI, Anthropic or others.\n\nI built it for my startup to solve a few problems:\n\n\n```\n  - track AI usage and cost per client or team\n  - switch models without changing app code\n  - debug request flows more easily\n  - reduce AI spendings with exact and semantic caching\n\n```\n\nHow is it different?\n\n\n```\n  - ~17MB docker image\n    - LiteLLM's image is more than 44x bigger (\"docker.litellm.ai\u002Fberr",{"problem":49,"audience":55,"pricing":64,"motivation":65,"time_to_build":64,"stack":69,"openness":78,"stage":79,"team_size":80},{"value":50,"source":51,"evidence":52},"Tracking AI usage and cost, switching models without code changes, and debugging request flows","maker",[53],{"id":54},"post",{"value":56,"source":57,"evidence":58},"Developers and teams running apps on multiple AI model providers","inferred",[59,60],{"id":54},{"id":61,"by":62,"text":63},"47851918","nzoschke","Looks nice, thanks for open sourcing and sharing. I'm all in on Go and integrating AI up and down our systems for https:\u002F\u002Fhousecat.com\u002F and am currently familiar and happy with:…",null,{"value":66,"source":51,"evidence":67},"Built for the founder's own startup to solve AI cost, routing and debugging problems",[68],{"id":54},[70,74],{"value":71,"source":51,"evidence":72},"Go",[73],{"id":54},{"value":75,"source":51,"evidence":76},"Docker",[77],{"id":54},"open_source","beta","solo",{"praise":82,"objections":106,"requests":135,"questions":159,"alternatives":182},[83,95],{"value":84,"source":85,"evidence":86},"Lightweight and small docker image compared to LiteLLM","commenter",[87,91],{"id":88,"by":89,"text":90},"47853948","hgo","Hey, this looks super nice. I do like the 'compact' feel of this. Reminds me of Traefik. It seems very promising indeed! One problem I have is that yes, LiteLLM key creation is…",{"id":92,"by":93,"text":94},"47854725","neilly","Given this app seems to expose itself via REST calls, why would anyone care that it’s written in Go? I guess it matters to potential contributors but the majority of interest…",{"value":96,"source":85,"evidence":97},"Useful that it is written in a compiled language, reducing supply-chain risk",[98,102],{"id":99,"by":100,"text":101},"47851752","crawdog","I wrote a similar golang gateway, with the understanding that having solid API gateway features is important. https:\u002F\u002Fsbproxy.dev - engine is fully open source. Another reason…",{"id":103,"by":104,"text":105},"47850001","pjmlp","Expectable, given that LiteLLM seems to be implemented in Python. However kudos for the project, we need more alternatives in compiled languages.",[107,118,124],{"value":108,"source":85,"evidence":109},"Benchmarks are poorly designed and unconvincing",[110,114],{"id":111,"by":112,"text":113},"47851987","lackoftactics","It’s a heavily vibe coded project with only proxy with terrible benchmarks design. Basically vibe coded benchmarks that lie through ignorance of mocked super fast endpoint…",{"id":115,"by":116,"text":117},"47850860","rvz","I don't see any significant advantage over mature routers like Bifrost. Are there even any benchmarks?",{"value":119,"source":85,"evidence":120},"Crowded market with mature alternatives like Bifrost",[121],{"id":122,"by":112,"text":123},"47852938","GoModel. I see some red flags in the docs\u002Fbenchmarks, but I could be wrong in my judgement here. What I noticed: the website shows a diagram of the litellm SDK communicating with…",{"value":125,"source":85,"evidence":126},"Open-source license may change, raising rug-pull worries",[127,131],{"id":128,"by":129,"text":130},"47851437","mosselman","Does this have a unified API? In playing around with some of these, including unified libraries to work with various providers, I've found you are, at some point, still forced to…",{"id":132,"by":133,"text":134},"47850279","anilgulecha","That would be valuable if there's a commitment to never have a non-opensource offering under GoModel? If so, you can document it in the repo.",[136,144,155],{"value":137,"source":85,"evidence":138},"Support for subscription harnesses such as Claude Code and ChatGPT or Copilot",[139,140],{"id":61,"by":62,"text":63},{"id":141,"by":142,"text":143},"47850697","indigodaddy","Any plans for AI provider subscription compatibility? Eg ChatGPT, GH Copilot etc ? (Ala opencode)",{"value":145,"source":85,"evidence":146},"Local model support such as vLLM and Ollama",[147,151],{"id":148,"by":149,"text":150},"47851312","driese","Nice one! Let's say I'm serving local models via vllm (because ollama comes with huge performance hits), how would I implement that in gomodel?",{"id":152,"by":153,"text":154},"47851471","devmor","This is way more interesting to me as well. I have projects that use small limited-purpose language models that run on local network servers and something like this project would…",{"value":156,"source":85,"evidence":157},"Vault-based key generation",[158],{"id":88,"by":89,"text":90},[160,171],{"value":161,"source":85,"evidence":162},"How the semantic cache handles invalidation and false positives",[163,167],{"id":164,"by":165,"text":166},"47849997","Talderigi","Curious how the semantic caching layer works.. are you embedding requests on the gateway side and doing a vector similarity lookup before proxying? And if so, how do you handle…",{"id":168,"by":169,"text":170},"47888441","ivanterechin","+1 on the semantic caching thread. related q: how do you handle false positives? two prompts that embed close but should not share a response (eg \"summarize this doc\" with…",{"value":172,"source":85,"evidence":173},"How upstream provider API changes are kept up with",[174,178],{"id":175,"by":176,"text":177},"47851960","glerk","This is awesome work, thanks for sharing! How do you plan on keeping up with upstream changes from the API providers? I have implemented something similar, and the biggest issue…",{"id":179,"by":180,"text":181},"47861263","StingSS","Really slick and lightweight! My biggest question is about the upstream API evolution. Keeping up with every provider's updates feels like a full-time job—how do you automate or…",[183,193,198],{"value":184,"source":85,"evidence":185},"Bifrost",[186,189],{"id":187,"by":133,"text":188},"47849790","how does this compare to bifrost - another golang router?",{"id":190,"by":191,"text":192},"47852951","rolls-reus","i use this for my personal projects. some features are gated behind a license but the basics like provider proxy, logs, metrics are covered in the free version.…",{"value":194,"source":85,"evidence":195},"LiteLLM",[196,197],{"id":103,"by":104,"text":105},{"id":128,"by":129,"text":130},{"value":199,"source":85,"evidence":200},"gai",[201,202],{"id":61,"by":62,"text":63},{"id":203,"by":204,"text":205},"47872879","markusw","Hi, I'm the author of GAI. I'm glad that you are happy with it! I'm using it a lot myself, both for own and client projects, but I wasn't sure if anyone else was. :D I'm actually…",{"comments":207,"answered":208,"key":209},21,12,[210,213,216],{"id":211,"text":212},"47852391","I'll take a closer look at it over the next few days. However, it might be challenging, considering that Claude Code with a subscription no longer officially works with OpenClaw.",{"id":214,"text":215},"47856401","That's great news! The AI model ecosystem is changing so fast.",{"id":217,"text":218},"47874770","I'll definitely take a look at GAI myself! I like this beaver(?) at README.",{"commenters":220,"max_depth":221,"maker_replies":207,"first_comment_mins":222,"lifespan_hours":223},43,7,49,152,[225,227,229,233,235,238,239,240,243,246,249,250,251,253,256,260,261,263,265,267,269,272,273,275,276,279,282,285,288,291,294,296,298,301,304,306,308,311,314,316,318,320,322,326,328,332,335,338,340,342,344,346,347,350,352,354,356,359,361,362,364,367,371,373,375,378,382,386,389,391,394,395,397,400,402,404,407],[61,37,46,226,62,37],"project\u002Fpositive\u002Fnone",[211,37,37,228,11,41],"project\u002Fneutral\u002Fnone",[230,37,37,231,232,37],"47852682","commenter\u002Fneutral\u002Fnone","arcanemachiner",[234,37,37,231,62,37],"47853860",[236,37,37,237,112,37],"47854975","other\u002Fneutral\u002Fnone",[214,37,37,231,11,41],[190,37,37,237,191,37],[241,37,37,237,242,37],"47853263","ewhauser421",[244,37,37,237,245,37],"47854555","verdverm",[247,37,37,237,248,37],"47859261","jy-tan",[203,37,37,237,204,37],[217,37,37,237,11,41],[252,37,37,237,204,37],"47877376",[254,41,33,228,255,37],"47851816","pizzafeelsright",[257,41,33,258,259,37],"47855920","project\u002Fneutral\u002Fprivacy","ijk",[99,32,37,237,100,37],[262,32,37,237,112,37],"47852110",[264,32,37,237,100,37],"47852496",[88,33,33,266,89,37],"project\u002Fmixed\u002Fidea",[268,33,37,228,11,41],"47854235",[270,33,33,271,89,37],"47860740","project\u002Fneutral\u002Fidea",[92,39,33,228,93,37],[274,39,37,228,11,41],"47856042",[128,46,33,271,129,37],[277,46,37,278,11,41],"47851762","project\u002Fneutral\u002Fdesign",[280,18,37,237,281,37],"47851488","sowbug",[283,18,37,237,284,37],"47851700","harikb",[286,18,37,237,287,37],"47851955","simonw",[289,18,37,237,290,37],"47858603","jdub",[292,18,37,237,293,37],"47853670","jedisct1",[103,221,46,295,104,37],"project\u002Fpositive\u002Fidea",[297,221,37,228,11,41],"47850302",[299,221,37,237,300,37],"47851217","goodkiwi",[302,221,37,237,303,37],"47854697","smcleod",[305,221,37,228,11,41],"47856255",[175,30,33,307,176,37],"project\u002Fneutral\u002Fexecution",[309,30,41,310,112,37],"47852075","project\u002Fcritical\u002Fexecution",[312,30,37,231,313,37],"47852598","swyx",[315,30,37,231,112,37],"47852648",[317,30,37,231,313,37],"47852679",[319,30,37,231,112,37],"47852760",[321,30,37,271,11,41],"47853761",[323,30,33,324,325,37],"47852311","project\u002Fneutral\u002Fdocs","vorticalbox",[327,30,37,278,11,41],"47853709",[329,330,33,271,331,37],"47862492",9,"nopointttt",[333,330,33,228,334,37],"47865685","giorgi_pro",[179,336,46,337,180,37],10,"project\u002Fpositive\u002Fexecution",[339,336,37,307,11,41],"47861428",[164,341,33,271,165,37],11,[343,341,33,278,334,37],"47850402",[115,208,41,345,116,37],"project\u002Fcritical\u002Fperformance",[111,208,41,345,112,37],[348,208,37,231,349,37],"47852735","eikenberry",[122,208,33,351,112,37],"project\u002Fmixed\u002Fdocs",[353,208,37,278,11,41],"47854064",[355,208,33,228,112,37],"47854401",[357,208,37,358,11,41],"47861333","project\u002Fneutral\u002Fperformance",[148,360,33,271,149,37],13,[152,360,46,295,153,37],[363,360,37,324,11,41],"47851901",[365,360,37,366,11,41],"47860930","project\u002Fpositive\u002Fperformance",[368,369,46,295,370,37],"47850517",14,"tahosin",[372,369,37,231,11,41],"47850671",[141,374,33,271,142,37],15,[376,374,37,377,11,41],"47851048","maker\u002Fneutral\u002Fidea",[379,380,46,226,381,37],"47861532",16,"Trenchcole",[383,384,46,226,385,37],"47853600",17,"phoenixranger",[387,31,46,295,388,37],"47853211","immanuwell",[187,390,33,271,133,37],19,[392,390,37,393,11,41],"47850199","project\u002Fpositive\u002Fdesign",[132,390,33,271,133,37],[396,390,37,377,11,41],"47850341",[398,390,33,271,399,37],"47852594","antonvs",[401,390,37,377,11,41],"47856179",[168,403,33,307,169,37],20,[405,403,37,406,11,41],"47891590","maker\u002Fneutral\u002Fnone",[408,207,37,231,409,37],"47927922","richardbertok",[],[412,417,422,427,432,437],{"id":413,"name":414,"points":415,"category":416},"47808268","Smol machines",499,"dev_tools",{"id":418,"name":419,"points":420,"category":421},"47812341","interval-calculator",314,"learning_science",{"id":423,"name":424,"points":425,"category":426},"47847558","VidStudio",301,"creative",{"id":428,"name":429,"points":430,"category":431},"47807809","PanicLock",265,"security_privacy",{"id":433,"name":434,"points":435,"category":436},"47828896","trellis-mac",202,"ai",{"id":438,"name":439,"points":440,"category":436},"47823460","turboquant-wasm",163,false,"v2",{"id":444,"name":5,"line":6,"ai":441,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":445,"top":18,"kw":446,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":447,"url":9,"mix":448,"praise":84,"objection":108,"sub":21},47849097,0.23,[21,24,25,26],"5000000303333000503100335311335053553330",[30,31,32,33],1794036699119]