I believe branding is still possible, though more of a capability and platform approach like Stripe or Shopify. Local LLMs will likely make it more feasible in the future as costs decrease.
The branding part might be less relevant to B2B products, but it's critical for B2C. And the clarity/communication aspect is acutely relevant to both. I don't know how you handle that with everyone generating their own interfaces.
Imagine policy compliance too? You need a cookie banner for legal reasons, how do you enforce that everyone's interfaces add the cookie banner? I hate cookie banners, but it's a clear example of where compliance dictates UI, and there are others (sales, insurance, contracts, etc).
As for costs decreasing, sure, and local LLMs improve things... but building the UI once will always win out on costs. Even with local LLMs we'll still cache UI creation, so then why not share that cache? Maybe it takes a bunch of prompting to get the exact accessibility stuff you need in the UI, so now you share prompts for generating the bit you need.... why not just share the actual output, why not just use the one the service provides?
I think there's a version of this focused on customisation that I can see happening, but otherwise all I see is a ton more code, a ton more liability, and products being on the whole worse.
I wanted to explore a few technical areas, particularly packaging with Homebrew and using Rust as a CLI tool. Additionally, I am eager to give back to a community that has brought me joy over the past 10 years.
So, to be frank (though that's not my name), I grew tired of paying for ngrok for a basic use case: routing public -> local tunneling during development, with a persistent configuration I could start and stop as required.
LocalChannels is about the millionth public to local tunnel tool posted here. It's not groundbreaking; it uses SSE to route the requests to your local machine.
The platform is limited to 1000 "tenants" to maintain performance, and up to three persistent channels per tenant - so once it's full, it's full. I hope someone finds it useful :)
reply