Light
Dark
All diagrams ← Simple data flow
Candid Leap · WF-Algolia

Technical Architecture

Sync pipeline
Search path
API / data access
Failure & recovery
Webflow — customer environmentDesigner, published site, platform APIs

Designer Extension

React 18 panel inside the Designer — onboarding, field mapping, sync health, Build Mode.

JWT HS256React Query v5

Data + CDN API

CMS collections and items/live pagination; webhook registration.

OAuth 2.0REST v2

Webhooks

site_publish, item published / unpublished / deleted.

HMAC-SHA256

Published Site

Customer's live site. Loads the search script from the CDN via a script tag.

visitors

Search Script

Attribute-driven search, browse and filter UI. No customer JavaScript required.

search-only keyno telemetry
Cloudflare — edge ingressDecouples Webflow from the backend, absorbs bursts

Worker — ingress

Verifies webhook signature, ±5 min replay window; normalizes events into SyncTrigger messages.

HMAC verify

Queue — webflow-sync

Durable, at-least-once delivery to the backend consumer.

5 retries30-min backoff

Dead-letter queue

Events that exhausted queue retries; retained and replayed automatically.

swept every 5 min
Application — RailwaySingle always-on Node 20 service, in-process workers

Express API

OAuth + JWT auth, site and mapping CRUD, sync control, analytics proxy. Internal ingress gated by a shared secret.

rate-limitedZod-validatedshared secret

Sync Worker

Claims jobs atomically (1.5 s poll). Three-phase reconcile: fetch → transform → save, with per-page checkpoints.

5 attempts → dead_letterreaper 10 min

Cron Scheduler

Hourly scheduled syncs per collection, daily health sweeps, dead-letter replay every 5 minutes.

in-process
Data & searchOperational store and customer-owned indices

MongoDB Atlas

Site · SiteConfig · CollectionMapping · SyncJob · ReconcileCursor.

AES-256-GCM credentialsUS region

Algolia

Customer-owned search indices. Writes batched at ≤1,000 ops / 900 KB with rate-limit backoff.

admin key server-side only
Observability

PostHog

Business events: sync started / completed / failed, dead-letter landings, funnel events.

Postmark

Operator alerts: stale site token, stale Algolia key, repeated sync failures.

Delivery & CI

GitHub Actions

Per-PR: lint, typecheck, unit + browser tests, security audit. Publish and docs-deploy run as separate manual workflows.

npm + jsDelivr

Search script published to npm; served to customer sites via jsDelivr CDN.

Stack
TypeScript
Node 20
React 18
Vite 7