Tidal Harbor — being built

The Tidal Harbor phase is what is actively being built right now. Once it lands you will be able to:

  • :white_check_mark: Message the other party, pinned to the listing you are talking about
  • :white_check_mark: Send and accept offers on a listing
  • :counterclockwise_arrows_button: Pay with card or Revolut Pay
  • :counterclockwise_arrows_button: Mark a service delivered and acknowledge it
  • :white_check_mark: Use free-of-charge services (no payment, but still feedback)
  • :white_check_mark: Get email alerts when there is something to do
  • :counterclockwise_arrows_button: Get a refund when something has not gone to plan

:white_check_mark: = already live · :counterclockwise_arrows_button: = being worked on next

Replies very welcome — particularly anything that does not match how you would actually want to use it.

What landed today

Two big pieces of Tidal Harbor are now live on the site, and they sit on top of each other.

Messaging. Open any service listing while signed in and you’ll see a “Send a message” button at the bottom. Click it and you get a conversation thread pinned to that listing — both of you can scroll back through what you said and which service you were talking about. New conversations and replies show up in your Inbox at the top of the page, and the other party gets an email when something happens.

Offers. Inside a thread you own, you can now send the other party a formal offer — either free of charge, or for a set amount in pounds, with an optional note and an expiry date. They get an email, and on the listing thread they can accept or decline. Free offers go straight through. Paid offers currently show “Pay £X (coming soon)” — the actual card and Revolut Pay piece is what we’re building next.

That’s the rough order of things from here: paying for accepted offers, marking a service delivered and acknowledging it, weekly payouts to providers, and a moderator-side refund button for the unhappy paths.

As always — replies very welcome. Anything broken, anything that doesn’t fit how you’d actually want to use it, anything missing.

A big push today — the post-acceptance flow that takes a transaction from “we agreed” all the way through to “we’re done” is now live end to end.

When you accept an offer on Tessolari, the conversation no longer just sits there. You walk through:

  1. Confirm — both sides tick a quick “we’re agreed” prompt to unlock scheduling.
  2. Schedule — either party proposes up to three candidate times in a Doodle-style poll; the other ticks yes/no on each. If there’s exactly one yes, the appointment confirms automatically; otherwise the proposer picks. Recurring sessions (e.g. “every Mon/Wed/Fri for four weeks”) are supported in the same poll.
  3. Calendar — once a slot is confirmed, a standards-compliant .ics calendar invite arrives in both inboxes. A platform “Accept” button records confirmation on each side.
  4. Pre-call — a short, role-aware checklist (mic test if it’s a video call, address check if in-person, a simple scope review for async work). The checklist gates the next stage.
  5. Service delivery — for video, a Join button activates 15 minutes before the appointment; clicking goes through a small house-rules screen and into a private Jitsi room hosted at meet.tessolari.com. JWT-authenticated, no anonymous joins, recording disabled.
  6. Wrap up — once the appointment is over, both sides leave a quick H/M/L review. The buyer confirms completion, or raises a dispute if something went wrong. A dispute pauses the transaction and pings the moderator team.

Plus a new Events entry in the nav, showing every appointment you have on Tessolari in one chronological list — useful when you’ve got a few things in flight or a recurring pattern (daily check-ins, weekly tutoring).

Reminder emails fire automatically: 24 hours and 30 minutes before each appointment, and again 24 hours and a week after if the wrap-up is still pending.

Out of scope today, on the roadmap:

  • Real card / Revolut Pay payment for paid offers (currently shows “coming soon” — the rest of the flow already works for free offers).
  • Cancellation and rescheduling of confirmed appointments.

Would love to hear how it feels in practice — please drop your thoughts here as you try it.

Quick update on top of yesterday’s drop.

Cancel and reschedule — fully working now. You can cancel a single appointment, end a recurring series early (“just this one” or “this and all future”), or end the whole arrangement. If you give less than 24 hours’ notice you’ll be asked for a brief reason; otherwise it’s one click. Rescheduling rolls a cancel and a new-time proposal into one action.

Recurring series got smarter. When you reschedule a recurring series with “this and all future”, you can keep it recurring with a new pattern — for example, shift the rest of a Tuesdays-at-3pm series to Wednesdays. The old behaviour collapsed everything into a single one-off; that’s fixed. Your Events page and conversation view also show “X done · Y to go” alongside each series so you can see at a glance how far through you are.

Calendar apps stay in sync. When something gets cancelled, your calendar app (Google / Apple / Outlook) updates automatically. A single-occurrence cancel removes just that date from the series; ending the whole arrangement drops everything still scheduled.

Reliability matters now. Repeated short-notice cancellations gently lower your Ally Score after you’ve had at least 5 appointments. With-notice cancellations don’t count — only the disruptive ones. The cap is small and the impact only looks at the last 90 days, so a rough patch doesn’t follow you around forever.

Listings can pick their cutoff. Providers can choose how much notice they need for cancellations to count as “with notice” — anywhere from 4 hours for drop-in support up to 7 days for clinical or structured arrangements. The default stays at 24 hours. The cutoff in force when you accepted an offer is the one that applies to your booking; providers can’t quietly tighten the rules on you mid-arrangement.

That rounds out the booking flow end to end — from accepting an offer through to closing it cleanly, including the messy real-world stuff like “I need to move next week” and “I can’t make this one”.

Update — 2026-05-14: Tidal Harbor is mostly done.

Messaging, offers, scheduling polls, calendar invites, video calls, delivery markers, disputes, refunds and email alerts have all moved to Live now (see the Velvet Marmot thread).

What’s still actively in flight on this phase:

  • Card checkout — wired up to the merchant API but currently in test mode while we polish the integration. Real cards work, but the live-mode flip is gated on a final round of testing.
  • Provider payouts — weekly Faster Payments batches with semi-automatic moderator review. The outbound payment side is built and tested against the live API; the operator workflow (which payments to include in this week’s batch) is the last piece.
  • Save card details for repeat bookings without re-entering each time. We never see the PAN — this is a long-lived token reference with the payment processor.
  • Cancellation fairness signals — your Ally score now reflects how reliably you show up. First-time misses are forgiven; repeated short-notice cancellations gradually affect your score.

Discuss what should be in or out of this phase below.