Skip to main content

Published-page features

The opt-in interactive features an app owner can switch on for a published page — ask-the-data chat, live read/write collections and their SSE stream, the comment board, reactions, threaded replies, polls, live presence, applause, follow-the-presenter, annotations, and the forms engine — each with its tuning environment variables.

Every published IntelliApps page is a static, sandboxed document by default. The features below are opt-in per app and, where they persist data, are backed by the app-data plane and streamed with lightweight polling/SSE. This page documents each feature and the environment variables that tune it. Core service, secrets, data planes, assets, theming, branding, the ask-the-data LLM, and the Identity Bridge live on Configuration.

How viewers are identified

Collaborative writes are attributed via the Identity Bridge — an authenticated IntelliAsk viewer is named automatically, otherwise a guest name is captured. Rate limits below are per client fingerprint per 60 seconds unless noted; 0 disables a limit.

Ask-the-data chat

A viewer can ask natural-language questions about the app's data; answers are grounded in the app's dataset (or page text when there's no dataset) and streamed back. The LLM wiring and limits live on Configuration → Ask-the-data LLM.

Live collections

Turns a published page into a real multi-user app with its own read/write tables (one PostgreSQL schema per app). Used for sign-up lists, submissions, trackers, and anything that must persist and be shared between viewers.

NamePurposeDefault
MAX_COLLECTIONS_PER_APPCollections (tables) an app may define25
MAX_FIELDS_PER_COLLECTIONFields per collection40
MAX_COLLECTION_ROW_BYTESMax serialized bytes of one row64000
MAX_ROWS_PER_COLLECTIONHard cap on rows in a collection100000
MAX_COLLECTION_ROWS_RETURNEDMax rows returned by one read500
COLLECTION_INSERT_RATE_PER_MINInserts per viewer per minute60
COLLECTION_MAX_WRITE_RATE_PER_MINTotal writes per app per minute1200

Live collection stream (SSE)

Pushes inserts/updates/deletes to viewers so lists update in near real time without a manual refresh.

NamePurposeDefault
COLLECTION_STREAM_ENABLEDEnable the collection SSE streamtrue
COLLECTION_STREAM_POLL_MSServer poll interval feeding the stream150
COLLECTION_STREAM_MIN_POLL_MSFloor for the adaptive poll interval40
COLLECTION_STREAM_HEARTBEAT_SECONDSHeartbeat keeping the connection alive15
COLLECTION_STREAM_MAX_SECONDSMax lifetime of one stream connection before reconnect300
COLLECTION_STREAM_MAX_BATCHMax events delivered per flush200

Comment board

A moderated feedback wall for a page.

NamePurposeDefault
FEEDBACK_MAX_MESSAGE_CHARSMax characters per message2000
FEEDBACK_MAX_NAME_CHARSMax characters for a poster's name60
FEEDBACK_RATE_PER_MINMessages per viewer per minute5
FEEDBACK_MAX_LISTEDMax messages returned/retained in the listing200

Reactions, replies & polls

Shared collaboration primitives layered over comments and the page.

NamePurposeDefault
REACTION_EMOJISAllowed reaction emojis (comma list)👍,❤️,🎉,😂,😮,😢
REPLIES_MAX_DEPTHMax nesting depth for threaded replies1
POLL_MAX_OPTIONSMax options in a poll8
POLL_QUESTION_MAX_CHARSMax characters in a poll question200
POLL_OPTION_MAX_CHARSMax characters per poll option80

Live presence & applause

Ambient "who's here / react live" signals for shared viewing sessions.

NamePurposeDefault
PRESENCE_WINDOW_SECONDSWindow a heartbeat counts as "present"20
APPLAUSE_WINDOW_SECONDSWindow applause bursts are aggregated over10
APPLAUSE_RATE_PER_MINApplause taps per viewer per minute60

Follow the presenter

Lets one viewer drive the scroll/pointer position of everyone following, for guided walkthroughs and live demos. Followers can break away by scrolling manually.

NamePurposeDefault
FOLLOW_PRESENTER_STALE_SECONDSAfter this long with no presenter update, the session is considered idle12
PRESENTER_UPDATE_RATE_PER_MINPresenter position updates accepted per minute1200
FOLLOW_PRESENTER_POLL_MSFollower poll interval when not on the push stream500

Collaboration push stream (SSE)

The shared SSE channel that delivers comments, reactions, polls, presence, applause, and presenter updates. Presenter frames use a faster cadence and a short snapshot cache so many followers can be served cheaply.

NamePurposeDefault
COLLAB_STREAM_ENABLEDEnable the collaboration SSE streamtrue
COLLAB_STREAM_POLL_MSBase server poll interval1000
COLLAB_STREAM_PRESENTER_POLL_MSFaster poll while a presenter is active200
COLLAB_SNAPSHOT_CACHE_MSSnapshot cache window shared across followers100
COLLAB_STREAM_HEARTBEAT_SECONDSHeartbeat keeping the connection alive15
COLLAB_STREAM_MAX_SECONDSMax lifetime of one stream connection before reconnect300

Annotations

Viewers can drop point/ink annotations on the page for review and markup.

NamePurposeDefault
ANNOTATIONS_MAX_LISTEDMax annotations returned/retained500
ANNOTATIONS_RATE_PER_MINAnnotation writes per viewer per minute120
ANNOTATIONS_MAX_POINTSMax points in one ink stroke400
ANNOTATIONS_MAX_TEXT_CHARSMax characters in an annotation label500
ANNOTATIONS_MAX_NAME_CHARSMax characters for the author name60

Forms engine

Structured, validated forms with server-side submissions (surveys, applications, intake) stored in the app-data plane.

NamePurposeDefault
MAX_FORMS_PER_APPForms an app may define100
FORMS_MAX_FIELDSFields per form60
FORMS_TITLE_MAX_CHARSMax characters in a form title200
FORMS_DESCRIPTION_MAX_CHARSMax characters in a form description2000
FORMS_LABEL_MAX_CHARSMax characters in a field label300
FORMS_MAX_OPTIONSMax options in a choice field60
FORMS_OPTION_MAX_CHARSMax characters per option200
FORMS_ANSWER_MAX_CHARSMax characters in a single answer5000
FORMS_SUBMIT_RATE_PER_MINSubmissions per viewer per minute20
FORMS_SUBMISSIONS_PAGE_SIZEDefault submissions page size50
FORMS_SUBMISSIONS_MAX_PAGE_SIZEMax submissions page size200

Where data lives

Collections, form submissions, and datasets persist in the app-data plane (PostgreSQL). Comments, reactions, polls, presence, applause, presenter state, and annotations are collaboration data keyed to the app in the control plane. See Architecture.

Last updated on