Sajt · Docs

Known limitations

What is disabled, gated, partial, or a deliberate non-goal — so you don't promise what Sajt can't do.

Be honest about the edges. This page lists what is disabled, gated on external setup, partial, or a deliberate non-goal. Don't promise a user something here without the caveat. Status discipline matters: distinguish Working, Partial, Gated, and Planned. The live audit is current-state.

Editor

  • Canvas drag-to-reorder is DISABLED. Sections are reordered with up/down arrow buttons on the section frame, not by dragging on the page. (The Pages/layer panel and list-item cards do support drag; the main canvas does not.) Reordering many sections via arrows is slow — a real friction point, not a hidden feature.
  • Mobile editing is partial. The desktop/mobile preview toggle works and inline fields scroll above the keyboard, but there is no dedicated mobile drawer for the side panels, so panel editing is cramped on a phone. Viewing and light edits work; heavy layout work is best on desktop.
  • No on-exit "unsaved changes" prompt. Autosave makes this low-risk, but there is no beforeunload confirmation.

Gated on external credentials (built, but off until configured)

These features exist in code but do nothing useful until an operator sets the relevant credentials. Don't tell a user they're ready unless they've been turned on:

  • Online card payment (Stripe Connect) — needs the owner's connected Stripe account; the "pay now" button and auto-mark-paid stay inert otherwise.
  • Live billing / subscriptions — the live Stripe operator setup is not yet run; plan/credit logic works, but real charging is unverified.
  • Custom-domain connect — runs against a dev fallback until real hosting (Vercel) credentials are set; a real address won't actually serve until then.
  • Buying a new domain — scaffolded; runs in dev/mock until registrar + payment credentials are configured. No real domain is bought and no money moves in mock mode.
  • Outbound email (invites, lead/booking/offer/invoice notifications) — skipped silently without an email key; invites are copy-link only today.
  • AI features — every AI surface no-ops gracefully without an AI key: site generation falls back to the deterministic recipe, and AI polish, AI chat, AI images, and publish-time translation simply don't run. The product works without AI; AI is additive.

Partial / known correctness gaps

  • Analytics undercounts at scale — summaries read a bounded slice, so a busy site's numbers can be low. Treat them as indicative, not exact.
  • The public site is dynamic (no cache/revalidate-on-publish yet) — correct, but every load hits the backend.
  • Default social-share (OG) image is absent — pages without a featured image fall back to a generated endpoint; there's no branded default yet.
  • The "Made with Sajt" badge is mentioned in plan copy but not actually rendered.

Platforms

  • Web is the source of truth and works. Desktop (macOS) and iOS are thin shells over the live web app and are partial (not store-shipped). Android does not exist.

Deliberate non-goals (do NOT propose these)

These are intentionally out of scope — don't suggest them as features or workarounds:

  • A template/theme marketplace or design gallery.
  • Raw HTML / CSS / React injection, custom code per site, or "let AI write the page as code."
  • Raw hex color pickers or unconstrained fonts (themes are AA-safe tokens).
  • A freeform drag-and-drop canvas / absolute positioning (Webflow/Figma-style layout).
  • Accounting / ERP / bookkeeping (bokföring, VAT declarations, payroll). The invoicing stays light; export to tools like Fortnox/Bokio is the future direction, not a rebuild.
  • A full CRM with a sales pipeline. Contacts stay a lightweight dedupe-by-email list plus an interaction timeline; "customer actions" are typed CTAs, not pipeline stages.
  • Enterprise SSO, approval workflows, or complex permissions. Sharing is owner / editor / viewer only.

If a request reduces to one of these, say so plainly and point to the constrained alternative. See Concepts for why these limits exist and Escalation for when to hand back to the owner.

On this page