I made `!` easier to type on mobile via double-space (double-tap SPACE to insert `!` similar to how macOS/iOS adds a period with double-space): https://whiz.leftium.com
Cloudflare actually ran into the opposite problem: their employees' creativity was distracting them from using AI in a productive way.
The answer to both too little discoverability and too little/much creativity is to deploy the chatbox/voice UX with "champions" that can help others use the new UX effectively.
> Studying spreadsheet use at companies, Nardi and Miller found "local developers" – amateur enthusiasts who could write bits of code for their coworkers and guide their team up the gentle slope of spreadsheets.
Interestingly, Cloudflare solved the excess creativity problem in the short-term by changing the UX from a magic chat to a magic email. The email could only input work you wanted to automate, and the only output was the finished work. This helped the employees' requests become more focused.
While I was making a little app that converts text descriptions of events into calendar events[1], I was thinking an LLM could do this: consumes tokens and slower, but can work with even messier text descriptions.
I actually used an LLM to add coverage for the various ways different people represent dates and times in English (actually mostly Korean right now.) LLMs are even great at extracting data from text that is full of misspellings and ambiguous wording. I just give the LLM examples that were not parsed as expected. The LLM figures out the correct output itself, then adds logic so similar text will be parsed correctly in the future.
We've already seen apps that added an AI chat to their interfaces. And other apps use AI to generate "home-cooked" personal apps.
I think we will see a convergence of this: where users can chat with "malleable" apps to create features in the app itself.
So personal assistants will be creating the next generation of apps. Apps that are meant for a single user and/or even only intended to be run a single time before being thrown away.
Tip: you can install this as a PWA (progress web app) onto your mobile device home screen. (If you have recent iOS 26+ or Android.)
If the site adds a PWA manifest, Android (Chrome/Google app) will show a prompt to install as app on load. Also PWA install will be available for older iOS.
Thanks for the tip! Initially I dismissed the idea of installing it as a PWA because I didn’t think it would be very useful. But after all the feedback here, I realized I was wrong. So I just added PWA support.
A tip on the PWA: it’s the only way to get BIGWORDS.PAGE in Fullscreen on mobile.
Is there anyway to add a fullscreen button maybe near the open viewer/open in new window button? I used to use a similar app called bigtext.net (it's now gone, so that URL just goes to an ad), and they had a button that let you go fullscreen on a mobile browser in the non-PWA view.
I think actions vs calculations is a better framing here. It's not just about avoiding imperative code or nondeterminism. It's about being extra careful with actions because the order and number of times they run matter.
Here is an example of a calculation written imperatively. It remains easy to reason about because the actions don't leak out of the function:
function add(ns) {
let total = 0
for (const n of ns) {
total += n
}
return total
}
On the other hand, a deterministic state machine like `a = AddMachine` is harder to reason about because it still matters how many times the action `a.transition(1)` is called. (Note it is possible to implement the state machine as calculations.)
I made `!` easier to type on mobile via double-space (double-tap SPACE to insert `!` similar to how macOS/iOS adds a period with double-space): https://whiz.leftium.com
Still a work in progress; I need to make the UI more intuitive: https://github.com/Leftium/whiz/
reply