just one minor suggestion: It seems that the responses are not saved anywhere? even after signup, opening a new tab or just navigating within the app makes the responses disappear - if they're really not being stored, might be worth considering storing them. if they are, maybe the ux could make that more obvious (I couldn't find it). in any case, very useful project!
> Then came the pricing. The last quote I got for one of the tools on the market was $6,000/year for a team of 16 people in a use-it-or-loose-it way. For a tool we use maybe 2–3 times per sprint.
Is this a full screenshot of the page? You can not only collapse the panel, you can also resize it in a way you want. Just drag the top edge of the panel.
In terms of calls to LLMs. I do not use any frameworks or LLM proxies like OpenRouter etc. Instead, I make the calls directly to LLM providers with a tiny thin proxy endpoint I created in Supabase.
One of the problems I had with other tools was the difficulty in understand the actual responses that particular playgrounds provided. Especially when it came to error responses. I guess that they are either built with the some Proxy providers like OpenRouter who handles and interprets errors internally before giving a response to the user, or they are using frameworks like LangChain with their abstraction hell.
In our case on Yola, it was crucial to have a playground that provided this raw type of experience that I have builtin.
It's not OpenSource yet. Do you think it should be?
API calls are routed through a thin proxy on my side, this is how you get access to all the models with my API keys. I definitely would not want to store those keys in code of the JS bundle in the browser (:
just one minor suggestion: It seems that the responses are not saved anywhere? even after signup, opening a new tab or just navigating within the app makes the responses disappear - if they're really not being stored, might be worth considering storing them. if they are, maybe the ux could make that more obvious (I couldn't find it). in any case, very useful project!
What tool was this?
2. Got an error:
"Unexpected Application Error! Cannot read properties of null (reading 'slice') TypeError: Cannot read properties of null (reading 'slice') at Hv (https://langfa.st/main.1510e80706059046a306.js:2:11907588) at hi (https://langfa.st/main.1510e80706059046a306.js:2:10922009) at Xa (https://langfa.st/main.1510e80706059046a306.js:2:10941715) at fs (https://langfa.st/main.1510e80706059046a306.js:2:10952350) at $c (https://langfa.st/main.1510e80706059046a306.js:2:10997432) at Gc (https://langfa.st/main.1510e80706059046a306.js:2:10997360) at Zc (https://langfa.st/main.1510e80706059046a306.js:2:10997202) at Nc (https://langfa.st/main.1510e80706059046a306.js:2:10993991) at yd (https://langfa.st/main.1510e80706059046a306.js:2:11006790) at Cd (https://langfa.st/main.1510e80706059046a306.js:2:11005523) Hey developer
You can provide a way better UX than this when your app throws errors by providing your own ErrorBoundary or errorElement prop on your route."
Any specific feedback so far?
Maybe not obvious to users to collapse the panel.
Follow up, how are you handling actual calls to LLM?
In terms of calls to LLMs. I do not use any frameworks or LLM proxies like OpenRouter etc. Instead, I make the calls directly to LLM providers with a tiny thin proxy endpoint I created in Supabase.
One of the problems I had with other tools was the difficulty in understand the actual responses that particular playgrounds provided. Especially when it came to error responses. I guess that they are either built with the some Proxy providers like OpenRouter who handles and interprets errors internally before giving a response to the user, or they are using frameworks like LangChain with their abstraction hell.
In our case on Yola, it was crucial to have a playground that provided this raw type of experience that I have builtin.
API calls are routed through a thin proxy on my side, this is how you get access to all the models with my API keys. I definitely would not want to store those keys in code of the JS bundle in the browser (: