Feature ids
An app turns Arc CMS features on or off by id in src/custom/features.ts. This page lists every id, its default, what it needs, and what goes when it is off.
export const CUSTOM_FEATURES: FeatureChoice = {
on: ['pwa'],
off: ['sms', 'payments'],
};
An empty choice means every feature is on except pwa. The choice is checked when npm run dev or npm run build starts and before every functions build: an unknown id, an id in both lists, or a feature whose need is off stops it with a message that says what to change. How to choose is on Choose your website's features and Choose your app's features.
The ids
| Id | Default | Needs | What goes when it is off |
|---|---|---|---|
content | On | None | The Content menu and its admin pages (content types, templates, tags, authors), the public content pages, the default content types onboarding creates, the content preset in data export, and content in search. Functions: processPublishQueue, onContentTypeDeleted, seedStaticPages. See Content. |
search | On | None | The public search page, the search box on published pages, the admin search box in the page header, Search settings, and related content on content pages. Functions: search, reindexSearch, listSearchCollections, sampleCollectionFields, the trigger for each searchable collection, and onSearchQueued (which also needs content). See Search. |
seo | On | None | Discoverability settings, the sitemap, RSS feeds, robots.txt and llms.txt files published with the site, and IndexNow notices on publish. Function: regenerateSeoFiles. See SEO and discoverability. |
forms | On | audience | Signup forms: their admin pages, form email templates, joined users, the public form, and the default form onboarding creates. Functions: the form, signup code and form email template functions. See Signup forms. |
audience | On | None | Contacts, lists, the list hub, contact tags, contact fields, App users and App audience settings. Nothing creates contacts or keeps them in step with users and form sign-ups. Functions: the contact, list, import and App audience functions. See Audience. |
email-marketing | On | audience | Broadcasts, drip campaigns and announcements, with their menu items. Joining a list does not start campaigns. Functions: processBroadcast, continueBroadcast, processScheduledBroadcasts, previewBroadcastAudience, processDripQueue, activateDripCampaign, archiveDripCampaign, migrateWelcomeToSequences, sendAnnouncement. See Email marketing. |
sms | On | None | SMS settings, SMS logs and phone sign-in (it needs an SMS provider). Functions: the phone sign-in and PIN functions, checkPhoneSignIn and sendTestSms. See SMS. |
payments | On | None | Products, transactions and payment settings in the admin; pricing, checkout and account pages; the member area's premium and payments pages. Functions: checkout and test checkout links, the payment webhook, payment event processing, the connection test, the daily scans (trial endings, updates ending, expired entitlements) and consumeCredits. See Payments. |
data | On | None | The Data menu and its import and export pages. It has no functions. See Data import and export. |
pwa | Off | None | Turned on with on: ['pwa']. While off there is no web manifest, no app icons and no service worker, and the install tracking function trackPwaEvent is not deployed. See Installable app (PWA). |
contact | On | None | The Messages menu item and page, and contact forms on published pages (they are removed from the page). Functions: submitContactMessage, onContactMessageCreated. See Contact form. |
analytics | On | None | Google Analytics: no tracking code loads in the browser at all, and the admin dashboard's analytics section and the Analytics settings page go. Functions: connectGoogleAnalytics, selectAnalyticsProperty, refreshAnalyticsData, disconnectGoogleAnalytics, testAnalyticsConnection. See Analytics. |
A page of a feature that is off answers with the not-found page. A full functions deploy deletes the functions of a feature that is off; the exact functions of each feature are in Cloud Functions.
Turning a feature off and then running a full functions deploy deletes its deployed functions. npm run deploy lists them and asks first; npm run deploy:dev and npm run deploy:prod do not ask. The feature's data in Firestore stays.
Always on
Everything that is not in the table is core and cannot be turned off:
- Users and roles, onboarding and the first admin, profiles and account deletion.
- Sign-in methods with email and Google. Phone sign-in belongs to
sms. - Media, including the Unsplash search.
- Languages (localization settings).
- The Email engine: email settings, the brand kit, the composer, email logs, sending and retries, unsubscribe and the preference center.
- Automations settings.
- Notifications and the admin digest.
- The Feedback button.
- Banners: the site message and the site usage banner.
- The member dashboard and profile, see Build the member area.