Skip to content
  • Product Design
  • Full-Stack Development

Enkria

Designing a client page where the next step is always obvious

Timeline
2026 (ongoing)
Tools
  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • PostgreSQL
  • Prisma
  • Redis
  • Stripe
  • Resend
Visit live site
Challenge
Freelancers’ clients get the offer in Word, the contract by email, the IBAN on WhatsApp and the files on Drive, and still don’t know what to do next.
My role
Founder, sole Product Designer & Full-Stack Developer
Outcome
A client portal for Romanian freelancers: offer, contract, deposit and delivery, one step at a time

The Problem

Freelancers in Romania, from event photographers and videographers to designers and consultants, run every client across four tools. The offer goes out as a Word file, the contract by email, the IBAN on WhatsApp (often more than once), and the final files on Drive or WeTransfer.

The client never knows what to do next, so the freelancer explains it again.

I lived this in my own client work, then heard the same story from more than ten freelancers. The cost lands on the freelancer: chasing a signature, re-sending the IBAN, matching an unlabelled transfer to the bank statement, and remembering to send the files once the money arrives.

Research & Discovery

What I did

  1. Mapped my own client projects, from the first offer to the final files
  2. Talked to 10+ freelancers in Romania, most of them event photographers and videographers
  3. Listed every place a single project lived: Word, email, WhatsApp, Drive, WeTransfer and the bank statement
  4. Found the order every project follows, whatever the trade: offer → contract → deposit → delivery
Key insight
Clients aren’t careless. Each step arrives in a different app with no sign of what comes after it, so every project needs the freelancer to explain it again.

Where one project lived

  • Word
  • Email
  • WhatsApp
  • Google Drive
  • WeTransfer
  • Bank statement

Design Decisions

  1. 01

    One page, one next step

    The offer has its own public link, where the client accepts or refuses without logging in. Once it’s accepted, the contract, the payments and the files live on one project page, and a “Next action” card shows the single thing the client has to do, in a fixed order: sign, then pay, then download.

    Why: Keep the client’s part to one thing at a time, so the freelancer doesn’t have to walk them through each step.

    Next action, in order

    1. sign
    2. pay
    3. download
  2. 02

    No sign-up for the client

    The client never registers: the freelancer adds them by email, which creates their account. The email has one button, a single-use link, with a 6-digit code as a fallback. The link opens a “Continue” screen instead of logging in on load, so email scanners can’t use it up. The session lasts 30 days on that device; after that, the client logs in again with an emailed code. No password, ever, and one login shows every freelancer who added them.

    Why: A client hiring someone once won’t create an account or remember a password.

  3. 03

    Bank transfer first

    The page shows the freelancer’s IBAN and a payment reference for each installment (PREFIX-0001), so the transfer can be matched on the bank statement. The client can attach proof, and “I paid” puts the installment in confirmation until the freelancer confirms or rejects it. Card payment exists but is switched off on purpose: card money would land in Enkria’s Stripe account, not the freelancer’s.

    Why: Romanian clients pay deposits by transfer, and the money goes straight to the freelancer, with no fee.

  4. 04

    Delivery unlocks on payment

    There’s no manual switch to remember. For each deliverable the freelancer picks a rule: always, after the deposit (the default), after full payment, or manual. Files and links never reach the client’s browser until the rule passes, and when it does, the client gets an email.

    Why: Freelancers want the work handed over only after they’re paid, without having to remember to release it.

The Solution

For clients

  • Accept or refuse the offer from its link, without logging in
  • One page per project, with a Next action card: sign → pay → download
  • Log in from one email button, or a 6-digit code; no password
  • An email when the files are ready

For freelancers

  • Offers with their own public link; an accepted offer becomes a draft contract and payment plan
  • Contracts from Romanian templates, signed by the client on the page, then countersigned
  • Installments with their own references, and a confirm or reject for each transfer
  • Deliverables as links (WeTransfer, Drive) or small uploads, each with an unlock rule
  • A message thread per project

Pricing follows the same idea. The first 3 clients are free, sending and signing contracts is always free, and after that one credit unlocks the full client page. Enkria takes no fee on the client’s transfer.

Impact & Learnings

Built and shipped

  • 56

    data models

  • 151

    API routes

  • 1,046

    test files, plus 24 end-to-end specs

  • Live at enkria.com in Romanian and English since September 2026
  • Designed and built end to end as the sole designer and developer
  • Every signed contract kept as an unchanged version with a SHA-256 hash, as evidence of what was signed

What I learned

  • The hardest design work was deciding what the client never sees: no account, no password, no step before its turn.
  • Money shapes the design. Switching card payments off was a product decision, not a technical one: it keeps the freelancer’s money in the freelancer’s account.
  • Small details carry trust. A reference per installment and a “Continue” screen do more for confidence than visual polish.

What I’d Do Differently

  1. Ship a thinner first version. I built most of the platform (56 data models, anti-abuse, encryption, invoicing) before the first freelancer used it. A thinner version would have reached real use sooner.
  2. Test the client side with real clients. I talked to freelancers, but the page is for their clients. I’d watch a few clients go through sign → pay → download before building more.
  3. Prototype the client page first. I designed in code again, and a clickable prototype would have let freelancers react before anything was built.
  4. Measure from day one. I launched without the numbers to show impact. I’d track the funnel (invited → signed → paid → downloaded) from launch.

Let’s work together.

I’m currently open to Product Designer and UX Designer opportunities across Romania and Europe. Whether it’s a full-time role, a contract, or just a conversation — I’d love to hear from you.