DEV Community

Lith SEO
Lith SEO

Posted on Originally published at foxyinvoice.com

Building FoxyInvoice — Chapter 12: Engagement & automation — UI first, then automate

This series is written in the open, from a real production system. This chapter is the engagement surface: onboarding, progress you don't lose, and gentle machines that act for the user. [All chapters and diagrams live in the public repo.]

"Engagement" conjures dark-pattern streaks and notification spam. It
shouldn't. Engagement is the product working so well that leaving it
half-finished feels like loss
— progress the user doesn't want to
abandon, moments of completion worth screenshotting, and gentle machines
that act on the user's behalf. This chapter is the engagement surface
we shipped, in the order it was built, under one governing rule:
build the manual UI first; automate only flows that already proved
themselves by hand.

The onboarding staircase (first five minutes)

A new signup lands on a three-step wizard: name your business + pick
currency → add your first client → "you're ready" (with the founding-
code hint for testers). Each step is one decision, skippable, and
writes real data — so finishing onboarding is having a workspace.
Then the dashboard's get-started checklist walks the rest: first
invoice, first send, first payment link. The metric this staircase
serves is the only one that matters early: time to first sent
invoice.
Everything that shortens it is engagement; everything that
lengthens it is churn you built yourself.

Progress you can see (and don't want to lose)

  • Draft save & resume, twice over. The invoice editor has a "Save draft" that stays on the page (URL swapping to the edit route so a refresh can't duplicate it), plus local autosave with a resume banner — mid-form work survives navigation. The template generator offers the same to anonymous visitors (Chapter 11's slice 1). The psychology is honest: no dark patterns, just don't lose the user's work, and they'll come back to it themselves.
  • The usage meter as an honest nudge. Free accounts see "4 / 10 invoice actions this month." Not a countdown timer, not a lock — a number, and when it approaches the limit, an upgrade page explains what Pro adds. Conversion pressure that respects the user converts the right users: the ones who grew.

Gentle machines: automation that acts for the user

  • Reminders. The worker scans daily: a pre-due nudge three days before, a friendly reminder at +3 days overdue, a firmer notice at +14 — each deduplicated so a client never gets spammed by a cron rerun. Invoice-sending anxiety is the freelancer's biggest tax; the product volunteering to chase payment is engagement of the deepest kind.
  • Recurring invoices. A template + schedule becomes Draft invoices on cadence, taxed and totaled through the same engine, optionally auto-sent. The user's "engagement" with their monthly retainers becomes checking that the machine did it — which is the goal.
  • Quote acceptance on the public link. The client clicks Accept on their phone; the system converts the quote to a real Draft invoice server-side and emails the owner. Closing a deal while the owner sleeps is the product's best trick.
  • Founding codes. Six months of Pro per code; the founder console generates batches and shares each with one tap (native share sheet or a ready-to-send clipboard message with redemption instructions). Generosity with a ledger — every code tracks redeemed status.

Each of these automated after a manual version proved the flow —
reminders were conceptually "send that email yourself," recurring was
"clone that invoice monthly," quote-accept was "click Convert when they
say yes." Automation amplified verified behavior instead of guessing at
it.

What we deliberately did not build

The refuse-list from Chapter 02, enforced in practice: no time
tracking, no expense ledger, no inventory, no notification inbox vying
for attention. Also — no streak mechanics, no badges, no emails
manufacturing re-engagement. The product's hook is the user's own
unpaid invoice; we just make sure it's easy to finish and easy to
chase.


Recap. Onboard to a finished-feeling workspace in three steps,
never lose work, show honest usage, and let gentle machines —
reminders, recurrence, quote acceptance — act on the user's behalf.
Automate only what proved itself manually, and measure everything
against time-to-first-sent-invoice.


Reading this and want your own dashboard of truth? Create a free workspace at
foxyinvoice.com, then redeem founding code
U8B4Z8S87X on the Upgrade page — 6 months of Pro, free, no card. If anything
breaks, there's a feedback button in the app. I read every one.


Next: Chapter 13 — War stories: six postmortems and what each one cost.

Top comments (0)