Once real users exist, two things happen quickly: someone writes to support, and you notice a workflow you never needed while building alone. This week was mostly about answering the first kind of message faster — and fixing the second kind of gap before it annoyed anyone else.
A small admin area for the people who run FxLedger
We added an internal Admin section in the app — visible only to addresses we explicitly allow. Nothing fancy: a overview of sign-ups and plans, a searchable user list, and enough controls to help without opening the database by hand.
The everyday cases are mundane but real. A user registers but the verification email lands in spam — we can mark the address as confirmed. Someone asks for a plan change after a billing hiccup — we can set it directly. Someone wants their account removed — we can delete it, but only after typing their email address back to us, so a mis-click cannot wipe the wrong person. You cannot delete your own admin account from there, which is deliberate.
We also put each user’s ID in the list, before the email address. Support threads are easier when both sides mean the same account — especially when two people share a name or someone typo’d their address in a ticket.
Support inbox on our own domain
Alongside admin, we stood up support.fxledger.de — a proper helpdesk for contactme@fxledger.de. Incoming mail is fetched automatically; we wrote a bilingual auto-reply (German and English in one message) so nobody waits on an empty inbox overnight. Tags and saved-reply macros would be nice later; for now, internal notes and copy-paste templates are enough.
The delete button that was never there
Editing a trade had save and cancel. Deleting one — something you expect in any journal — had no button at all. You could remove a trade only if you knew where to look elsewhere, which is not a fair bar for normal use.
We added a red Delete trade control at the bottom of the edit screen, with a confirmation step so a stray click does not erase history. First draft stacked it under the other buttons; it felt disconnected, like a footnote. The layout that stuck puts Update, Cancel, and Delete on one row — save actions on the left, delete on the right, where your eye already looks for “danger.” Small layout decision; much clearer in practice.