When a cost changes with the inputs, should the number or the assumptions lead the UI?
I am working on a small XAUUSD overnight-cost calculator, and the difficult part is not the arithmetic. It is making the result hard to misread.

Launching today: let your users bring the AI subscription they already pay for
Every AI app I've built ended up with the same screen. Paste your API key, we'll store it. I never liked shipping that, and users don't love it either.
So I built ai-oauth-sdk. It lets someone sign in with the AI plan they already pay for, using the providers' real OAuth flows, the same ones their official CLIs use. The token stays on their device, so you never hold a key and you never pay for their inference.
Eight providers today: ChatGPT, Claude, Gemini, Grok, Copilot, Qwen, OpenRouter and Azure. Zero dependencies in the core package, MIT, and it runs in Node, the browser, React Native and the usual frameworks.
The OAuth was the easy half. What took the time was the things nobody documents. OpenAI's CLI client id is registered for one exact port, localhost:1455, and if it's busy the flow just fails with nothing useful in the error. Cross-Origin-Opener-Policy: same-origin quietly severs window.opener, so a popup callback completes and the parent never hears about it. Google validates redirect_uri strictly enough that a hosted callback is rejected outright, so the loopback URL has to be copied back by hand.
🚀 Building BONX – A Business Operations Platform for Installation-Led Businesses
Hi Product Hunt!
Over the past several months, I've been building BONX, a business operations platform designed for installation-led businesses such as solar installers, interior contractors, fabrication companies, EV charging providers, and field service teams.
While talking to business owners, I kept seeing the same pattern:
Leads scattered across WhatsApp
Quotations created manually
Site visits tracked in notebooks
Installation progress shared over phone calls
Payments followed up manually
The Next Generation of Travel Starts With Stablecoins and Better Payments.
The Next Generation of Travel Starts With Stablecoins and Better Payments. Coming Soon to Google Play & the App Store.
Your next trip might not start at the airport. It might start with a stablecoin.
Every year, millions of travelers lose money to foreign exchange markups, international transaction fees, and unnecessary payment friction. Booking flights, reserving hotels, managing multiple currencies, and tracking travel expenses is still more complicated than it should be.
Why we are not building another AI chat interface
Why AI API workflows become messy as projects grow
Building a cleaner operating layer for AI APIs
AI API management becomes a team problem
What indie makers need when building with AI APIs
Open-source, multi-tenant PBX you actually own
ICTPBX is an open-source, self-hosted PBX platform for ISPs, ITSPs, and service providers who want to run white-label voice, fax, and SMS without per-user licensing fees.
It pairs the FreeSWITCH media engine with a unified ICTCore REST API and a modern Angular dashboard so extensions, IVR, queues, trunks, billing, and quotas are all managed from one place.
Key things that make it different from hosted PBX SaaS tools:
Full multi-tenancy with isolated domains per client, and per-tenant branding for a true reseller model
WebRTC softphone built in call from the browser, no plugin needed
Fax over IP + inbound Fax-to-Email
Fraud/credit controls to cap concurrent calls per tenant
Runs entirely on your own infrastructure your data, your uptime, your rules