GraceSoftGraceSoft

Say Hello to Concierge on gracesoft.dev

Davina LeongOctober 29, 20262 min read

The GraceSoft website has a new resident: Concierge, a chat assistant that answers visitors’ questions about GraceSoft and its products.

Why a chat assistant?

GraceSoft is a one-person studio, so I can’t always be around to answer questions the moment they come in. I also wanted a way to show what GraceSoft’s AI work actually looks like, rather than just describing it on a page.

Concierge does both. Ask it what a product does, how pricing works, or what our terms say, and it answers from GraceSoft’s own published content. If you’d rather talk to a human, it can book a meeting with me.

What it can do

I built the chat in seven milestones, each one small enough to test properly before moving on:

  • Conversation that feels live. Replies stream in as they’re written, and any formatting is rendered as safe Markdown, so nothing in a reply can run as code on your page.
  • Answers you can check. Each answer shows its sources, any relevant legal notes, and the date the product information was last updated. If Concierge says something, you can see where it came from and how fresh it is.
  • Booking built in. Concierge uses the same booking engine as the rest of the Concierge product. Confirmed bookings appear as a card in the chat, with a calendar file you can add to your own calendar.
  • Guardrails and bot protection. Messages pass a Cloudflare Turnstile check, and the chat explains clearly when it can’t help with something instead of guessing.
  • Follow-up suggestions. After each answer, Concierge suggests a few natural next questions you can tap, so you don’t have to work out what to ask.

Security still comes first

Adding a chat widget to a website can easily weaken its security. So alongside the chat, I rolled out a site-wide Content Security Policy, and built the chat’s styles to work within it. The site now tells your browser exactly which sources are allowed to load, and everything else is blocked.

On the backend, when Turnstile rejects a request, the reason is now logged, so I can tell a real bot apart from a misconfiguration.

When things go wrong

AI services and calendars don’t always cooperate. When a booking can’t go through, Concierge now says so quickly rather than leaving you waiting. And when the AI can’t produce an answer, it falls back to a clear, templated reply instead of an error.

Try it

Concierge is live on gracesoft.dev now. Ask it about any of our products, try to trip it up, and let me know how it does. 😄

Share this post

← Back to Blog