<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: mnapoli</title><link>https://news.ycombinator.com/user?id=mnapoli</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 20 Oct 2026 12:14:18 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mnapoli" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mnapoli in "/dev/null: social network for developers"]]></title><description><![CDATA[
<p>yeah that's fixed</p>
]]></description><pubDate>Fri, 16 Oct 2026 17:48:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=50121772</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=50121772</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50121772</guid></item><item><title><![CDATA[New comment by mnapoli in "/dev/null: social network for developers"]]></title><description><![CDATA[
<p>Yep our bad, we fixed this, no landing page anymore</p>
]]></description><pubDate>Fri, 16 Oct 2026 17:39:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=50121663</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=50121663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50121663</guid></item><item><title><![CDATA[New comment by mnapoli in "/dev/null: social network for developers"]]></title><description><![CDATA[
<p>That's fixed</p>
]]></description><pubDate>Fri, 16 Oct 2026 17:39:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=50121660</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=50121660</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50121660</guid></item><item><title><![CDATA[New comment by mnapoli in "/dev/null: social network for developers"]]></title><description><![CDATA[
<p>Fixed! Check out the website it shows content now, no landing page anymore</p>
]]></description><pubDate>Fri, 16 Oct 2026 17:39:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=50121649</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=50121649</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50121649</guid></item><item><title><![CDATA[/dev/null: social network for developers]]></title><description><![CDATA[
<p>Article URL: <a href="https://dev-null.sh">https://dev-null.sh</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=50121004">https://news.ycombinator.com/item?id=50121004</a></p>
<p>Points: 182</p>
<p># Comments: 171</p>
]]></description><pubDate>Fri, 16 Oct 2026 16:57:49 +0000</pubDate><link>https://dev-null.sh</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=50121004</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50121004</guid></item><item><title><![CDATA[New comment by mnapoli in "[dead]"]]></title><description><![CDATA[
<p>I built favicon.show because I needed a way to display the favicon of any website.<p>This is built on Cloudflare Workers and their KV store.</p>
]]></description><pubDate>Wed, 22 Apr 2026 21:16:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47869405</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=47869405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47869405</guid></item><item><title><![CDATA[Show HN: Family Tree Maker]]></title><description><![CDATA[
<p>I'm writing a book of my family's history and I want to add good looking trees for each family.<p>I started building them by hand but it's a lot of work to design and maintain.<p>So I built this "Family Tree Maker".<p>You can use the built-in form and download the image, as well as save the URL to come back to your tree later.<p>It also works as an API and MCP server, for use with AI like ChatGPT or Claude. I'm using this to automate building this trees: I ask Claude to take the FamilySearch data and build the tree image of a single family.<p>The website is free and the code is open-source on GitHub: <a href="https://github.com/mnapoli/family-tree-maker" rel="nofollow">https://github.com/mnapoli/family-tree-maker</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47848659">https://news.ycombinator.com/item?id=47848659</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 21 Apr 2026 13:38:18 +0000</pubDate><link>https://family-tree-maker.mnapoli.fr/</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=47848659</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47848659</guid></item><item><title><![CDATA[New comment by mnapoli in "Executable specs: running Gherkin tests with Claude Code"]]></title><description><![CDATA[
<p>The problem: coding accelerates, I can't keep up with tests. Either I review everything and we're not moving faster, either I don't and don't trust them<p>The idea: executable specs
Write plain text tests, i.e. revive Cucumber/Behat (the "gherkin" language), BUT without the implementation step. AI run the tests in a browser, like human QA would.<p>I've been trying it out for 3 weeks:<p>1. serves as specs for new features
2. serves as acceptance criteria (Claude/Codex runs them after implementing)
3. serves as regression testing: run the full test suite every night<p>`npx exspec` runs Claude Code under the hood (with your existing Pro/Max subscription) with Playwright, all built-in. So using exspec is as easy as running PHPUnit/Pest/Vitest/… tests, nothing to install.<p>To be clear, it comes on top of unit tests, it doesn't replace them. It's great for covering happy paths and important business logic. It helps increase confidence, and also helps specifying new features.<p>I am cautious with letting AI "interpret" how to execute each step. But so far I'm pleasantly surprised :
- Claude seems to respect the steps (and not fake it)
- AI being very resilient, it's able to figure things out and recover (e.g. it needs to create a user but the email is already used -> no problem, it tries again with a different email address)
- It uses the website UI and nothing else, it's like a human QA -> it cannot edit files, cannot touch the database, or run code
- It reports failure with plenty of details, making it super easy to create issues from failures<p>I'm still careful and I want to scale up testing the idea, that's why I'm sharing publicly.</p>
]]></description><pubDate>Fri, 27 Mar 2026 13:58:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47542734</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=47542734</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47542734</guid></item><item><title><![CDATA[Executable specs: running Gherkin tests with Claude Code]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/mnapoli/exspec">https://github.com/mnapoli/exspec</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47542733">https://news.ycombinator.com/item?id=47542733</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Fri, 27 Mar 2026 13:58:09 +0000</pubDate><link>https://github.com/mnapoli/exspec</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=47542733</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47542733</guid></item><item><title><![CDATA[New comment by mnapoli in "Show HN: Get the Favicon of Any Website"]]></title><description><![CDATA[
<p>They are cached</p>
]]></description><pubDate>Mon, 18 Aug 2025 08:49:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=44938597</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=44938597</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44938597</guid></item><item><title><![CDATA[Show HN: Get the Favicon of Any Website]]></title><description><![CDATA[
<p>This is my week-end project. I needed this for another project that shows a list of website.<p>Showing the favicon of websites can be surprisingly hard if you want it to be more than just blindly grabbing website.com/favicon.ico.<p>This is built on Cloudflare Workers.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44933347">https://news.ycombinator.com/item?id=44933347</a></p>
<p>Points: 3</p>
<p># Comments: 2</p>
]]></description><pubDate>Sun, 17 Aug 2025 17:37:53 +0000</pubDate><link>https://favicon.show/</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=44933347</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44933347</guid></item><item><title><![CDATA[New comment by mnapoli in "A bank runs serverless with PHP and AWS Lambda"]]></title><description><![CDATA[
<p>PHP is great for serverless because its execution model is compatible with it.<p>Unlike Node, Python, Java, etc. that start a long-lived server, each request is handled by PHP in a separate process.<p>That's what makes it really to use with serverless (and lift-and-shift, like what Treezor did).</p>
]]></description><pubDate>Wed, 01 Nov 2023 16:15:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=38100431</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=38100431</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38100431</guid></item><item><title><![CDATA[New comment by mnapoli in "A bank runs serverless with PHP and AWS Lambda"]]></title><description><![CDATA[
<p>Their clients have very variable traffic patterns because they are in very different industries. They have traffic spikes at lunch, or at the end of every month for example:<p>> infrastructure must be able to scale and be resilient to accommodate various usage patterns. Whether it's a luncheon voucher transaction spike at lunchtime or a monthly batch of transactions by corporate clients</p>
]]></description><pubDate>Wed, 01 Nov 2023 16:13:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=38100391</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=38100391</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38100391</guid></item><item><title><![CDATA[New comment by mnapoli in "A bank runs serverless with PHP and AWS Lambda"]]></title><description><![CDATA[
<p>You can deploy using the CDK for example: <a href="https://bref.sh/docs/deploy/aws-cdk" rel="nofollow noreferrer">https://bref.sh/docs/deploy/aws-cdk</a></p>
]]></description><pubDate>Wed, 01 Nov 2023 15:52:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=38099997</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=38099997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38099997</guid></item><item><title><![CDATA[A bank runs serverless with PHP and AWS Lambda]]></title><description><![CDATA[
<p>Article URL: <a href="https://bref.sh/docs/case-studies/treezor">https://bref.sh/docs/case-studies/treezor</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=38098185">https://news.ycombinator.com/item?id=38098185</a></p>
<p>Points: 111</p>
<p># Comments: 126</p>
]]></description><pubDate>Wed, 01 Nov 2023 13:53:01 +0000</pubDate><link>https://bref.sh/docs/case-studies/treezor</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=38098185</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38098185</guid></item><item><title><![CDATA[New comment by mnapoli in "Launch HN: Depot (YC W23) – Fast Docker Builds in the Cloud"]]></title><description><![CDATA[
<p>Happy Depot user here, our builds are now 10 to 20 times faster: <a href="https://twitter.com/matthieunapoli/status/1620090744408244224" rel="nofollow">https://twitter.com/matthieunapoli/status/162009074440824422...</a></p>
]]></description><pubDate>Wed, 22 Feb 2023 20:25:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=34902097</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=34902097</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34902097</guid></item><item><title><![CDATA[2022 Serverless Community Survey]]></title><description><![CDATA[
<p>Article URL: <a href="https://serverless-survey.paperform.co/">https://serverless-survey.paperform.co/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=31989615">https://news.ycombinator.com/item?id=31989615</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 05 Jul 2022 15:44:38 +0000</pubDate><link>https://serverless-survey.paperform.co/</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=31989615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31989615</guid></item><item><title><![CDATA[New comment by mnapoli in "AWS Lambda function URLs: Built-in HTTPS endpoints"]]></title><description><![CDATA[
<p>Last step: <a href="https://bref.sh" rel="nofollow">https://bref.sh</a></p>
]]></description><pubDate>Wed, 06 Apr 2022 22:14:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=30938131</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=30938131</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30938131</guid></item><item><title><![CDATA[New comment by mnapoli in "It’s fine, Rewind: Revert a migration without losing data"]]></title><description><![CDATA[
<p>This is pretty incredible TBH</p>
]]></description><pubDate>Thu, 24 Mar 2022 13:57:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=30789813</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=30789813</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30789813</guid></item><item><title><![CDATA[New comment by mnapoli in "PHP in 2021"]]></title><description><![CDATA[
<p>With your webhost, you have to setup and maintain the server, including patching/updating it, setting up SSL, etc.<p>I used to do that for side projects, but I've had too many servers, and maintaining them was a pain.<p>For something with high traffic, Lambda provides the instant scalability. Imagine servers autoscaling, but instantly. And again, without having to setup or maintain that.</p>
]]></description><pubDate>Fri, 16 Apr 2021 08:23:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=26831112</link><dc:creator>mnapoli</dc:creator><comments>https://news.ycombinator.com/item?id=26831112</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26831112</guid></item></channel></rss>