GeekWare — ordering software by text or voice
A mobile-first site for ordering software by text or voice message; each order reaches a Bale bot with status buttons and stays in step with the admin panel.
Live at geekware.ir: about 7k lines of JavaScript with no front-end framework, keeping an order on one path from request to payment and delivery across the site, two Bale bots and the panel.
The problem
Someone with an idea for a piece of software usually does not know how to write it down, and a long form sends them away. After the order, it scatters across phone calls, messengers and a spreadsheet: what state it is in, who answered, whether the payment arrived. And a payment gateway and an SMS panel are, at the start, a cost and a hassle that are not needed yet.
Node.js and Express 5 rendering on the server, storage in JSON files, and Bale's bot API — no front-end framework, installable as a PWA.
An order in three steps, by voice if you like. One three-step form, shared by the order page and the MVP card on the home page, where recording a voice message — with a choice of microphone — can replace typing.
Two bots, one order. The admin bot brings each order with its audio and
status buttons: message the customer, a private note, search, /stats. A
change in Bale shows in the panel at once, and the other way round. The
customer bot takes orders inside Bale (text or voice), shows their status and
carries messages to the team; after ordering on the site, one "track in Bale"
button links the customer's chat to that order.
The admin's status is not the customer's. Internal stages map onto a few plain ones for the customer, and a public tracking page opens with the tracking code.
Payment without a gateway. Card-to-card: the receipt comes from the site or Bale, one button accepts or rejects it, and the order moves to "in progress" by itself. Polite payment reminders go out on days 1, 3, 7 and 14, and only between 10 am and 8 pm.
Around it: the admin panel, a blog, an FAQ, and a catalogue of software types and plans.