Inspiration
We're Alina and Pavel—a married couple and the entire team behind Crest Invoice. Alina is an emotionally-focused therapist in private practice, and that's where this story starts: her customers were forgetting to pay for therapy sessions, and that became a lingering problem in her practice.
Important that clients weren't refusing to pay. They genuinely forgot whether they had paid, lost the message with the payment details, or paid and never mentioned it. Alina ended up working two jobs: therapist and improvised accountant—keeping a spreadsheet of sessions, payment statuses, and due dates, and manually chasing anything unresolved (which was a bit embarrassing, honestly).
Neither of us is a software engineer—just two people with day jobs who wanted one nagging problem to go away. The first prototype we built together was a simple Telegram bot: no new app or account, just the messenger Alina's clients already used every day. Surprisingly, that first rough and ugly prototype worked like magic, completely solving the issue — clients received a telegram message which combined work description with a list of available payment methods (bank account requisites, Stripe and PayPal payment links) and were able to tap an "I've paid" button that informed Alina about the payment. And that was it — no late payments at all after that!
Then we interviewed other therapists, and all of them shared the same problem: payment follow-up was manual, fragmented, awkward, and easy to forget. Alina clearly was not alone, so we decided to try to solve this specific problem for other solo practitioners.
What it does
Crest Invoice helps sole proprietors and freelancers create invoices, send them to clients, and track payments in a delightfully easy way.
You create an invoice, add payment methods—e.g. an IBAN or a Stripe payment link—and send your client one live link. The client sees exactly how to pay and can report the payment with an "I've paid" button. You get a notification, verify that the money arrived, and close the invoice. In an early version we called this "cresting" the invoice—for reasons neither of us remembers, but the name stuck.
Crest can also generate a PDF, tell you when a live invoice is first viewed, and send a polite reminder.
What Crest deliberately doesn't do matters just as much. Many full-featured invoicing tools assume you want books, accounts, and integrations. Crest assumes you just want payment coordination. It keeps the instructions and status visible until both sides agree the invoice is done—and it never needs to touch the money or your bank.
How we built it
Neither of us can code; Codex is our development workhorse. At first Pavel steered the implementation while Alina conducted customer interviews. Today we both use Codex to build features, explore product decisions, review customer evidence, and iterate on the experience—discussing interviews, sketching interfaces, and finding ways to explain invoice management to people who may not be comfortable with digital tools.
Crest is a browser-based HTML, CSS, and JavaScript interface for creating invoices and PDFs, with a lightweight Python and SQLite backend managing live links, payment states, notifications, and reminders. It's packaged with Docker, served through Nginx, and deployed at crest-invoice.com.
Crest existed before Build Week, so we asked Codex to document a strict baseline in the README. With Codex and GPT-5.6, we hardened invoice delivery states and safe retries, prevented duplicate or concurrent sends, scoped asynchronous browser work to the correct invoice and role, and built regression tests around the failures we found.
Challenges we ran into
Our biggest challenge is turning a hardcoded tool for one private practitioner into a configurable product for many scenarios—without losing the lightweight, delightful experience that made the prototype work. Every new currency, payment method, reminder option, or invoice field creates pressure to add another setting. We constantly ask whether added flexibility genuinely helps or merely recreates the bookkeeping software we wanted to avoid.
We also made a major pivot around authentication. The original plan required Google OAuth login and used Google APIs for email, calendars, tasks, and reminders. Our first users showed us that Google authentication itself could be a serious obstacle: some didn't know which account or calendar they used; one described her calendar simply as "the one on my phone." We realized that simplicity means avoiding accounts, integrations, and concepts that users shouldn't need to understand.
Finally, steering AI remains a craft of its own. We often know what good should feel like, but translating that intuition into precise instructions is still difficult. Crest remains a little "vibey," but each iteration gets closer.
Accomplishments that we're proud of
Over three months, Alina processed 112 invoices through the prototype, and all of them were paid on time. The spreadsheet and manual chasing disappeared from her practice. Once paying and confirming became easy for clients, the problem stopped recurring.
We're proud that we unearthed another important finding — lots of users struggle with even "regular" user account setup which asks them to create a password and prompts for 2FA later; completeing Google OAuth is all but impossible for them. We've built Crest in a way that makes that account creation almost seamless — invoice owner just naturally verifies with an OTP sent to their email, and then the user session is saved in the browser. No need for passwords and authentication apps.
We're proud that such a small mechanic addressed a problem that had seemed to require expensive bookkeeping software or complicated payment integrations. And we're proud that we built Crest alongside two day jobs and a bustling household with five children and a granddaughter. Finding time was not easy, but the problem felt worth solving.
What we learned
In Alina's practice and our customer interviews, late payment was usually a coordination problem—and the best automation may be the smallest intervention that keeps both people oriented. A clear link and one confirmation button can accomplish more than a deep integration.
We learned how much of modern software quietly assumes a particular kind of user: someone with an IT background or years of corporate tools behind them. People outside that world genuinely struggle with logins, authentication flows, and quirky UI's—because nothing in their life ever required them to learn it. Products for these people have to account for that. This is not merely a simplification question; it is a question of inclusion.
And we learned that AI makes software development accessible to people who cannot code, but it does not replace product judgment. Someone still has to understand the customer, choose what not to build, describe the desired experience, test the result, and keep iterating.
What's next for Crest Invoice
First, we want to polish the free core product and learn whether it helps people beyond our initial group—through real usage, honest feedback, and evidence of traction before adding complexity.
If that validation arrives, a future paid Pro version could add automatic payment confirmation through providers such as Stripe, plus API, CLI, and MCP access for people who want Crest to act as a deterministic engine in their own "get paid" workflows. Reminders could extend beyond email to Telegram, SMS, iMessage, and WhatsApp.
But first, Crest must earn the right to become more powerful by proving that its simplest version is genuinely useful.
Log in or sign up for Devpost to join the conversation.