All systems operational200+ sites we watch overReply in under 2h+54 9 11 7820-8554
SaaS · AI assistant · Live

Your site answers customers and shows its source.

WelcomeAI is a product of ours that answers your visitors from your own documents. You upload them and add one line to your site. Visitors get answers at any hour, each with the passage behind it. When your documents don’t cover a question, it says so. The assistant in the corner of this page runs on it: try it.

The WelcomeAI mark: four rounded modules in a violet ramp, the last one a lime speech bubble
Four rounded modules, the last a lime speech bubble, on a 64×68 canvas. Shown here on the product’s own ink-900 layer, which is where the mark is meant to sit.
Our role
Product design + build
Surfaces
Workspace · site · widget · admin
Stage
Live · embedded on this site
Languages
EN / ES
1
Line on your site

One 38 KB script tag, cached at the edge

6
Ways to answer

Bubble, inline panel, spotlight, inline field, docs assistant or hosted page

3
Platforms kept in sync

WordPress, Webflow and Shopify, on a schedule

24h
Instant repeat answers

The same question reuses its answer for 24 hours

What WelcomeAI is

Your visitors ask, your documents answer.

You upload PDFs, Word files and Markdown, point it at your website or connect your CMS. WelcomeAI indexes all of it into a knowledge base, in the background. It reports on every file, so if a page fails to load, you see it.

Then your visitors ask. Each answer comes with the passages it used and a score for how closely each one matched. So you fix the document instead of guessing at the prompt. When no passage is close enough, the assistant says so, names what it can answer and makes nothing up.

WelcomeAI itself works in English and Spanish. The Spanish is a full mirror, written to the same register and length as the English rather than passed through a machine. One app serves the four places it lives, listed below.

Where it lives
SurfaceWhereWhat
Workspaceapp.welcomeai.dev/[orgSlug]Where you run it: knowledge bases, widgets, conversations, leads, analytics, integrations and billing. Light and quiet, on a 248px sidebar with no width cap on the content.
Marketing sitewelcomeai.dev (+ /es)Landing, product, use cases, integrations, docs, pricing and blog, on the dark violet brand layer at a centred 1180px measure.
Widgetcdn.welcomeai.dev/widget.jsSix ways to answer from one runtime, dark or light. It runs inside an open Shadow DOM on somebody else’s page.
Adminapp.welcomeai.dev/adminThe same shell plus a dark admin bar: bug queue, plans, per-organisation overrides and the blog CMS.
What it does

From your files to a new lead.

Your content goes in, you decide how it is found, the answer appears on your page, and each conversation can become a lead.

01

Bring what you already have

PDF, Word, Markdown, your website or your CMS. It reads them in the background and tells you how each file went.

  • —Upload files, or let it crawl your site
  • —WordPress, Webflow and Shopify stay in sync on a schedule, item by item
  • —A REST endpoint for anything the connectors don’t cover
  • —Per-file status, including failed crawls
  • —Source names edit in place: click, Enter saves, Esc cancels
02

Answers you can tune

Chunking, score threshold and answering model are yours to set. A Playground shows the passages exactly as the model saw them.

  • —Hybrid search fuses vector and keyword results with RRF
  • —Passages per answer and a score threshold below which passages are dropped
  • —Claude Haiku 4.5, Sonnet 5 and Opus 5 as answering models
  • —Bring your own key: answers signed with your Anthropic key instead of ours
  • —Identical questions reuse the last answer for 24 hours
03

Six ways onto your page

One script tag gives you all six: a bubble, an inline panel, a spotlight, an inline field, a docs assistant and a hosted page.

  • —A bubble in the corner, or inline in an element you choose
  • —A spotlight field in your hero, and an inline field that answers in place
  • —A Cmd K docs assistant over your documentation
  • —A hosted page at chat.welcomeai.dev/your-slug, custom domain on higher plans
  • —An allowed-domain list: the widget refuses every other site
04

After the conversation

Every conversation, every captured lead, your analytics and your plan’s allowances, in one workspace.

  • —Full transcripts showing the passages each answer cited
  • —An optional lead form that asks for a name and email once the conversation is going
  • —Captured leads sent on to your CRM
  • —Usage always shown as used / total, so you know where you stand
  • —A log of every ingest, sync and administrative action
Our lab, your site

What it means for your site.

An assistant that answers from your own pages, shows its source and admits what it doesn’t know. If your content is three pages, a search box serves you better, and we’ll say so.

The design system

One palette, two layers, and the rules that hold them.

The product resets every framework default and uses one palette. Everything below was read out of its own source: the Tailwind v4 theme block, the component barrel and the lint rules that reject a violation in code review. None of it was reconstructed from screenshots.

Palette

Violet 600

#6D4AFF

The accent, and the only primary colour in the product. Violet 700 (#5730F0) is its hover: a hover changes the colour and nothing else.

Ink 900

#0E0A1F

The dark brand layer: the landing page, the widgets and every code surface. It never appears in the workspace.

Lime 400

#C6F24E

A signal, not a colour. One lime element per screen, and only on the marketing layer and the widgets.

Canvas

#FAFAFB

The workspace ground. White cards sit on it; the product has no gradients and no dark panels except code.

Border

#E8E7EE

Elevation in the workspace is a one-pixel line, not a shadow. Inputs get the slightly darker #DDDCE6.

Text

#14131A

Heading and body ink on light surfaces, with #6B6880 as the muted level below it. Text is never transparent.

Lavender 300

#C9A9FF

Eyebrow labels on the ink layer only. The system does not put it on white.

These are WelcomeAI’s colours, printed here as documentation. Nothing on werun.dev is drawn from them.

Typefaces

Space Grotesk

Display and headings

Display is 44px at −0.03em tracking; h1 34, h2 22, h3 16, all negative. Product page titles are 24px; the 34 and 44px sizes belong to marketing. The product loads it through next/font, so the design system loads the same family from Google Fonts and invites a licensed copy to replace it.

Plus Jakarta Sans

Body

15px base at 1.55 line height, 13px small, and 12px for placeholders and hints, the smallest type in the product. Body copy is set with text-wrap: pretty.

JetBrains Mono

Anything countable

Ids, quantities, file paths and similarity scores, in tabular figures. It also carries the one uppercase treatment in the system: the 11px eyebrow label at 0.14em tracking.

Named, not loaded: this page sets every family above in werun.dev’s own type.

The rules

Two layers, kept apart

The workspace is light and quiet. The ink layer belongs to the marketing site and the widgets, and there it allows exactly two backgrounds: a 120px vertical grid of 1px lines at 5% white, and one 420px violet halo bleeding off a corner. Nothing else.

Lime is a signal: one per screen

One lime element per screen, and only on the marketing layer and the widgets. On the landing page that is the sign-up button, then the hero call to action below the fold, and never both in view. A second lime element makes the first one mean nothing.

Quantities always show used / total

Never the used value alone: 12,480 / 20,000, 6.2 / 10 GB, 3 / 10. Unlimited is ∞, not the word. A number without its ceiling does not tell a customer whether to worry, which is the only reason they looked.

Hint popovers, searchable selects, editable grids

title= is banned in favour of a hint popover, more than five options become a searchable select, and every listing is a div grid whose cells edit in place. Lint and tests enforce all three, so an icon-only button with no label is a failing build rather than a review comment.

Under it

What it runs on.

Next.jsReactTailwind v4PostgreSQLpgvectorAnthropic APIPreactShadow DOMMulti-tenantFont Awesome 6

Every token was read from the app

The colour, type, radius, elevation, spacing and motion tokens were copied out of the app’s own theme block: 135 of them, 66 of those colour, 7 radii from the 6px chip to the 999px pill. The design system is a diff against the product, not a drawing of it.

The off-grid values are deliberate

9px nav rows, 18px card padding, 11px badge sides, 13.5px grid-cell text. They are written into the spacing scale on purpose so that a rebuild does not quietly tidy them onto a 4px grid and change the density of every screen.

Every primitive mirrors the product

The 45 primitives mirror the product’s own component barrel. The pieces that need real logic to be faithful are named as not rebuilt, so nobody assumes they were missed: the chart wrapper, the Markdown renderers, command-K, the guided tour and the bug reporter.

Pictures are built from CSS

No photography, no illustration library, no stock imagery, no generated art. Where a concept needs a picture it is made from CSS on real elements, and the product screenshots inside marketing pages are live component mocks rather than images.

Want your site to answer like this?

Tell us what your visitors ask most, and where the answers live today. We’ll tell you what it takes.

No commitment. Just a conversation.
WelcomeAI questions