Port Zero
Hi HN, Recently I wasted several hours wrangling my dev environment only to find out that the browser frontend was talking to the wrong version of the backend. This got me thinking--why on earth are we still using simple numbers to describe which process to connect to? Why not use names instead? I thought of all the times a program wouldn't start because of port conflicts. The more I thought about it, the crazier it seemed. Modern operating systems already offer no-conflict ports: if you make your TCP server listen on port 0, the OS assigns you a random available port. But that only solves half the problem. I built the other half: PortZero. It's a GPLv3 program that watches for processes (and docker containers!) with a special PZ_TUNNEL environment variable: PZ_TUNNEL=myapp-{branch}.portzero.local:80 npm run dev When it sees such a process or container, PortZero does this: 1. Create a virtual NIC (if it hasn't already) 2. Create a new virtual IP address 3. Create a DNS record that substitutes things like {branch} based on the working directory of the process, and points at that virtual IP address 4. Start listening on that virtual IP address on the port of your choice (e.g. port 80 for http, port 443 for https, port 5432 for postgresql) 5. Forward any TCP connections to that virtual IP address / virtual port to the random, OS-assigned port that your process or container is actually listening on The result is you don't have to think about ports anymore, you just have to think about subdomains. You can have multiple services available on port 80 without conflicts, as long as they have different portzero.local subdomains. It does some other cool stuff like: - Enable HTTPS on local HTTP services by creating a local CA and registering it on your machine - Enable cloud tunnels so you can access your apps on other devices (paid feature) Links: https://portzero.net/docs/ https://github.com/PortZeroNetwork/portzero
AI Analysis
Analysis coming soon.
Similar Products
Free Bible study that explains every chapter you read
Show HN: Free Bible study that explains every chapter you read
I mapped every US golf course
I got tired of Googling basic course info, so I made a free directory of every US course Google filters for golf course results are terrible so I built a better way to browse courses using OSM as the backbone.... https://golfcoursebrowser.com/ It's a work in progress and mostly US for now, but I want to expand to the rest of North America, the EU, and the rest of the world ASAP. It's free, no ads, no login, no bs. If you spot anything wrong (bad info, a missing course, wrong scorecard), you can flag it right on the course page. I actually read those and fix them. Still a lot of missing info, but I'm filling out more and more each day. The goal is the most complete, and current golf course directory in the world, verified and maintained by actual golfers. I think is attainable in the next few months. The base layer is OpenStreetMap, cross-checked against course websites and enriched with scorecards, USGA rating/slope, and public/private status. User corrections from golfers who know their home course have beaten every commercial data source we check against.
X402vps
Show HN: X402vps – Docker containers for AI agents, paid per hour with USDC
What's AI's go-to, public or private healthcare?
Show HN: What's AI's go-to, public or private healthcare?
Bento
Over the past few months, our team has been building more and more slidedecks using web frontend technologies with coding harnesses like Claude Code, but a common complaint is to make even small edits we need to edit the code either manually or via the harness. To avoid this loop, I ended up creating Bento, a single HTML file with everything you need in a slide tool including animations and shared editing. There's no install or cloud login, everything works offline. The default deck is around 560 KB and it doesn't need to fetch anything once you got it. Open it in a browser and then you can edit, present, print and save. Share it via email or via Airdrop and all they need is a browser to edit, present and also do live collab on the slides. Drop it in to Claude or ChatGPT to transform existing pptx files into Bento slides. There is no cloud involved, only an encrypted blind relay to allow for shared editing. The relay doesn't see any of the data. Check it out at https://bento.page/slides/ which takes you straight to the editor. Go to https://bento.page/guestbook/ to try out the live guestbook to experience share editing / collab. There is also a gallery with some sample decks on the website - https://bento.page/ All the code is MIT licensed and you can find it here - https://github.com/nyblnet/bento . I used reveal.js with several other libraries (including some homegrown ones), and Claude Code.