<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: lucgagan</title><link>https://news.ycombinator.com/user?id=lucgagan</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 10 Sep 2026 11:30:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=lucgagan" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Show HN: Rayrun – one MCP gateway for the whole company]]></title><description><![CDATA[
<p>Hey HN,<p>First time building SaaS. Don't be too harsh, but I would appreciate your feedback. I have a strong technical background, but never had an opportunity to design as much as a landing page or think about product positioning. If you see something that's an obvious gap, please take a second to leave a comment.<p>Now, the product:<p>I use MCPs. I've worked in teams that use MCPs. Regardless of whether you are 1 or many, these are the issues that you will run into:<p>* random API keys in .env files<p>* OAuth credentials that expire<p>* no visibility of which MCPs are used<p>* no controls over what data is being sent to MCPs<p>There are also nice-to-haves that you wish you've had:<p>* hosting/sharing private MCP tools<p>* fixing context bloat<p>MCP gateways are designed to solve these problems. However, in my experience, they are expensive and hard to use. Everything that I've tried felt like it was designed by someone who can conceptualize the problem, but hasn't experienced it. Whereas I have seen it working for a big team and also trying to setup my own development environment. And that's Rayrun – an MCP gateway that solves hosting, data governance, secrets, OAuth rotation, and gives visibility across your organization. It's designed to be useful whether you are solo or a 500 people team.<p>I would truly appreciate you giving it a try and ask any questions or share observations.<p>If you are curious about feature parity with the existing MCP gateways, I've made a comparison matrix <a href="https://ray.run/compare" rel="nofollow">https://ray.run/compare</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49636609">https://news.ycombinator.com/item?id=49636609</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 10 Sep 2026 00:30:57 +0000</pubDate><link>https://ray.run/</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=49636609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49636609</guid></item><item><title><![CDATA[New comment by lucgagan in "Schedule tasks on the web"]]></title><description><![CDATA[
<p>Here goes my project.</p>
]]></description><pubDate>Fri, 27 Mar 2026 05:22:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47539335</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=47539335</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47539335</guid></item><item><title><![CDATA[New comment by lucgagan in "Claude can now search the web"]]></title><description><![CDATA[
<p>Can confirm. My website is flooded with AI bots despite attempts to block crawlers to certain parts of it.</p>
]]></description><pubDate>Thu, 20 Mar 2025 17:20:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=43426052</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=43426052</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43426052</guid></item><item><title><![CDATA[New comment by lucgagan in "Lm.rs: Minimal CPU LLM inference in Rust with no dependency"]]></title><description><![CDATA[
<p>Correct me if I am wrong, but these implementations are all CPU bound?, i.e. if I have a good GPU, I should look for alternatives.</p>
]]></description><pubDate>Fri, 11 Oct 2024 19:06:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=41812454</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=41812454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41812454</guid></item><item><title><![CDATA[Replacing GitHub Copilot with Local LLMs]]></title><description><![CDATA[
<p>Article URL: <a href="https://glama.ai/blog/2024-10-11-replacing-github-copilot-with-local-llms">https://glama.ai/blog/2024-10-11-replacing-github-copilot-with-local-llms</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41811299">https://news.ycombinator.com/item?id=41811299</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 11 Oct 2024 17:10:56 +0000</pubDate><link>https://glama.ai/blog/2024-10-11-replacing-github-copilot-with-local-llms</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=41811299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41811299</guid></item><item><title><![CDATA[New comment by lucgagan in "ASCII Silhouettify"]]></title><description><![CDATA[
<p>Woah, this is very _fun_!</p>
]]></description><pubDate>Fri, 07 Jun 2024 21:12:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=40613045</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=40613045</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40613045</guid></item><item><title><![CDATA[New comment by lucgagan in "ScrapeGraphAI: Web scraping using LLM and direct graph logic"]]></title><description><![CDATA[
<p>Something similar I worked on in the past <a href="https://github.com/lucgagan/auto-playwright/">https://github.com/lucgagan/auto-playwright/</a></p>
]]></description><pubDate>Tue, 07 May 2024 21:04:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=40291461</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=40291461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40291461</guid></item><item><title><![CDATA[Building free tools is a not a viable long-term SEO strategy]]></title><description><![CDATA[
<p>When I started https://ray.run/tools/, I started with a simple premise: I will build free tools relevant to my target audience, without ads or anything else that would negatively weigh on user experience, with one goal – building long-term SEO ranking.<p>I thought that if I build a collection of the most polished tools that are pleasant to use, over time Google will start recommending them to more and more people. My goal was to invest upfront into developing domain reputation, so that when I launch my SaaS in the future, I am not starting from 0.<p>At first, it looked like this strategy is working. The first month I got roughly 1k unique visitors. Then it quickly grew to 4k uniques, and maxed out at 5k uniques after 5 months. But then (2023 November) some Google update launched and it was a downhill ride since. It wasn't all at once, but it slowly dwindled to about 800 uniques per month and seems to be stable at around that number. What's worse is that most users are direct users, i.e. coming from bookmarks. Increasingly, Google started to deprioritize results even for things that Rayrun was ranking #1.<p>I don't know what this means for long-term SEO strategy, but it was pretty devastating learning for me. I am not focused on building the product and don't invest much back into SEO play, but wanted to share this as a cautionary learning with others.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40018496">https://news.ycombinator.com/item?id=40018496</a></p>
<p>Points: 8</p>
<p># Comments: 8</p>
]]></description><pubDate>Fri, 12 Apr 2024 22:55:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=40018496</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=40018496</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40018496</guid></item><item><title><![CDATA[New comment by lucgagan in "Show HN: VideoGist – Useful YouTube video summaries"]]></title><description><![CDATA[
<p>Very cool. I've been using a similar approach to summarize videos on my website <a href="https://ray.run/videos/112-playwright-installation-2022" rel="nofollow noreferrer">https://ray.run/videos/112-playwright-installation-2022</a> Doesn't cost much and getting great feedback about it.</p>
]]></description><pubDate>Thu, 07 Dec 2023 15:17:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=38557289</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=38557289</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38557289</guid></item><item><title><![CDATA[New comment by lucgagan in "Show HN: React Spreadsheet 2"]]></title><description><![CDATA[
<p>Is there a way to try this before I buy it?<p>I am building something that would probably benefit from this, but with that price tag (solo indy dev) that's going to be a big ask! might be worth it, just no way of knowing without trying it first</p>
]]></description><pubDate>Fri, 24 Nov 2023 23:31:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=38409551</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=38409551</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38409551</guid></item><item><title><![CDATA[New comment by lucgagan in "Ask HN: What constitutes plagiarism in open-source?"]]></title><description><![CDATA[
<p>Thanks for the response. I paused for a day responding to everyone to think through all the feedback I've received, and shared an update <a href="https://github.com/lucgagan/auto-playwright/issues/15">https://github.com/lucgagan/auto-playwright/issues/15</a></p>
]]></description><pubDate>Fri, 17 Nov 2023 13:47:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=38303460</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=38303460</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38303460</guid></item><item><title><![CDATA[New comment by lucgagan in "Ask HN: What constitutes plagiarism in open-source?"]]></title><description><![CDATA[
<p>Theirs is a commercial project with MIT client. I made an open-source version of their project. (Their backend is closed source. I have no knowledge of it.)</p>
]]></description><pubDate>Thu, 16 Nov 2023 01:58:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=38285050</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=38285050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38285050</guid></item><item><title><![CDATA[Ask HN: What constitutes plagiarism in open-source?]]></title><description><![CDATA[
<p>I recently have been called out for plagiarism in a Reddit thread.<p>https://www.reddit.com/r/programming/comments/17tccsc/comment/k8w5o26/?utm_source=share&utm_medium=web2x&context=3<p>I shrugged it off the first time it popped up, because in my eyes the person making the comment is more sour that I am impeding their ability to monetize the concept by making it open-source than they actually believe that I cloned their work.<p>However, the same user then started spamming my project users with their messages about this project being a clone of theirs without proper attribution and going as far as to double down by posting a new thread on /r/programming once again stating that it is a clone.<p>https://www.reddit.com/r/programming/comments/17w3toy/comment/k9etf1x/?utm_source=reddit&utm_medium=web2x&context=3<p>I saw this thread a few hours late, so by the time I got to respond everyone already had their pitchforks out. Bursting out a few responses in panic probably didn't help either.<p>Anyway, that's the context. The projects in question are https://github.com/zerostep-ai/zerostep and https://github.com/lucgagan/auto-playwright. I added a section to the documentation using every concrete piece of evidence I could think of to prove that these projects are as distinct as they possibly can be given the narrow scope of the problem and possible ways to implement it (https://github.com/lucgagan/auto-playwright#addressing-controversy).<p>I also think that, in retrospect, it would have been nice of me to acknowledge that their project was a source of inspiration for Auto Playwright. However, at no point did I copy their project, so the thought of LICENSE attribution did not even cross my mind.<p>I am trying to be cool head about this and think of what is the proper response. More importantly, I am trying to get a perspective from folks outside of the original debate to see if I am wrong with my actions.<p>Is copying parts of README enough to call for attribution to the original project?<p>Is copying error message enough to call for attribution of the original project?<p>Where is the line?<p>I still think this whole think exploded because I effectively released something that provides comparable functionality to a commercial solution that they are working and thats what spurred this debacle. However, I also acknowledge that I am struggling to reconcile dozens of people calling me "** code thief" in private messages and my sense of righteousness, which is why I would appreciate the insights.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=38284100">https://news.ycombinator.com/item?id=38284100</a></p>
<p>Points: 1</p>
<p># Comments: 4</p>
]]></description><pubDate>Wed, 15 Nov 2023 23:54:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=38284100</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=38284100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38284100</guid></item><item><title><![CDATA[New comment by lucgagan in "Ship Shape"]]></title><description><![CDATA[
<p>If I was the creator of the project, I'd be happy with it. Most companies would not have donated anything.</p>
]]></description><pubDate>Mon, 13 Nov 2023 16:15:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=38251879</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=38251879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38251879</guid></item><item><title><![CDATA[New comment by lucgagan in "Ask HN: How many of you still have a Facebook account?"]]></title><description><![CDATA[
<p>Most people I would imagine</p>
]]></description><pubDate>Sun, 12 Nov 2023 06:24:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=38237833</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=38237833</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38237833</guid></item><item><title><![CDATA[New comment by lucgagan in "Show HN: Flyscrape – A standalone and scriptable web scraper in Go"]]></title><description><![CDATA[
<p>This looks great. I wish I had this a few months ago! Giving it a try.</p>
]]></description><pubDate>Sat, 11 Nov 2023 15:30:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=38231162</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=38231162</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38231162</guid></item><item><title><![CDATA[New comment by lucgagan in "[dead]"]]></title><description><![CDATA[
<p>Hello HN community!<p>I'm excited to introduce Auto Playwright, an open-source tool that revolutionizes web testing by integrating AI with Playwright. Imagine writing your web app tests in plain, simple English and having AI turn those instructions into automated tests!<p>Key Features:
- AI-Driven Test Writing: Just write what you need in plain text, and let the AI do the rest.
- Playwright Compatibility: Works with all browsers compatible with Playwright.
- Open-Source: Dive into the code, contribute, and customize as you see fit.<p>How It Works:
1. Install `auto-playwright` via npm.
2. Set up your OpenAI API key.
3. Write tests using intuitive, plain-text prompts.<p>Examples: From testing a search function with a few lines of text to automating complex e-commerce cart tests – it's all made incredibly simple.<p><pre><code>    test("auto Playwright example", async ({ page }) => {
      await page.goto("/");

      // `auto` can query data
      // In this case, the result is plain-text contents of the header
      const headerText = await auto("get the header text", { page, test });

      // `auto` can perform actions
      // In this case, auto will find and fill in the search text input
      await auto(`Type "${headerText}" in the search box`, { page, test });

      // `auto` can assert the state of the website
      // In this case, the result is a boolean outcome
      const searchInputHasHeaderText = await auto(`Is the contents of the search box equal to "${headerText}"?` { page, test });

      expect(searchInputHasHeaderText).toBe(true);
    });
</code></pre>
Why It Matters: This isn't just about automating the usual; it's about rethinking test automation. It's faster, more intuitive, and accessible, even for those less familiar with traditional coding.<p>Get Involved: I am building a community around Auto Playwright. Join us on Discord (<a href="https://ray.run/discord" rel="nofollow noreferrer">https://ray.run/discord</a>), contribute to the GitHub repo (<a href="https://github.com/lucgagan/auto-playwright">https://github.com/lucgagan/auto-playwright</a>), and stay updated with our newsletter (<a href="https://ray.run/newsletter" rel="nofollow noreferrer">https://ray.run/newsletter</a>).<p>Looking forward to your thoughts, feedback, and seeing how you use Auto Playwright in your projects!<p>Check out Auto Playwright on GitHub:<p><a href="https://github.com/lucgagan/auto-playwright">https://github.com/lucgagan/auto-playwright</a></p>
]]></description><pubDate>Sat, 11 Nov 2023 14:41:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=38230666</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=38230666</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38230666</guid></item><item><title><![CDATA[New comment by lucgagan in "In search of the least viewed article on Wikipedia (2022)"]]></title><description><![CDATA[
<p>Ended up publishing to mainspace as per the guidance of a few commenters.<p><a href="https://en.wikipedia.org/wiki/Playwright_(software)" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Playwright_(software)</a><p>Thanks!</p>
]]></description><pubDate>Fri, 20 Oct 2023 19:01:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=37960096</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=37960096</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37960096</guid></item><item><title><![CDATA[New comment by lucgagan in "In search of the least viewed article on Wikipedia (2022)"]]></title><description><![CDATA[
<p>Contributing to Wikipedia has become really not fun. Or maybe it never was. I tried writing an article about Playwright - perhaps the most common test automation tool these days. It first got rejected and now just has been sitting in review state for 3 months.<p><a href="https://en.wikipedia.org/wiki/Draft:Playwright_(software)" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Draft:Playwright_(software)</a><p>It is highly demotivating to try to write a quality article for Wikipedia because someone can just reject your days of work in seconds and then leave it in draft forever.</p>
]]></description><pubDate>Fri, 20 Oct 2023 14:28:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=37956569</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=37956569</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37956569</guid></item><item><title><![CDATA[New comment by lucgagan in "Show HN: Autotab – An AI-powered Chrome extension to create Selenium scripts"]]></title><description><![CDATA[
<p>I am building _exactly_ the same thing for Playwright over at <a href="https://ray.run/" rel="nofollow noreferrer">https://ray.run/</a>. I think this is the future of writing tests no doubt. Planning to launch next week.<p>By the looks of it, I am taking a slightly different approach than you. I am using LLM only to identify elements, but the actual generators are created using <a href="https://ray.run/browser-extension" rel="nofollow noreferrer">https://ray.run/browser-extension</a></p>
]]></description><pubDate>Fri, 20 Oct 2023 01:53:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=37951395</link><dc:creator>lucgagan</dc:creator><comments>https://news.ycombinator.com/item?id=37951395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37951395</guid></item></channel></rss>