What is Arc CMS

Arc CMS is an open-source content management system that runs on your own Firebase project. You use it to build a website, or you copy it and build your own app on top of it.

In plain words

Arc CMS gives you an admin area where you define content types, write and publish content, design how it looks with HTML templates, collect sign-ups and send email. Everything it stores lives in your Firebase project: Firestore for data, Firebase Authentication for accounts, Cloud Storage for files and Cloud Functions for the work that has to happen on a server.

When you publish, Cloud Functions write the page as a static HTML file to Firebase Hosting. Visitors get plain, fast pages; the admin area and the member area are an Angular app served from the same site.

What you get

Most capabilities are always on. Eleven switchable features can be turned on or off per app in src/custom/features.ts: ten are on unless you turn them off, and the installable app (pwa) is off until you turn it on (see Feature ids). The last column says which switch a capability belongs to.

CapabilityWhat it doesSwitch
ContentYour own content types with their own fields, drafts, a publish queue and bulk import, plus ready-made About, Contact and policy pages.content
TemplatesPlain HTML and CSS files that decide how lists and single items look.Part of content
MediaA media library for images, stored at several sizes and converted to WebP on upload.Always on
Authors and tagsAuthor profiles and tags for grouping content.Part of content
SearchSite search for visitors and search inside the admin area.search
SEO and discoverabilityMeta tags, sitemap, robots file, RSS feed and llms.txt, written for you.seo
LanguagesContent in more than one language, and an admin area in more than one language.Always on
Signup formsWaitlists and signup forms, with a verification code and a welcome email.forms (needs audience)
Contact formA contact form on your site, with a Messages inbox in the admin.contact
AudienceContacts, lists, tags and fields for everyone who signed up.audience
App audienceThe users of an app as a live audience you can email.Part of audience
Email engineSending through Gmail, SMTP or Resend, with logs and a shared brand kit.Always on
Email marketingBroadcasts, drip series and announcements to lists and audiences.email-marketing (needs audience)
AutomationsRules that send an email, add a notification or change list membership when something happens.Always on
SMSText messages, such as sign-in codes.sms
Sign-in methodsEmail and password, Google and phone sign-in.Always on; phone sign-in is part of sms
PaymentsCheckout, plans and payment events through Dodo Payments.payments
Premium entitlementsPremium access and credits that follow from payments.Part of payments
Users and rolesAccounts, roles and who may do what.Always on
Installable app (PWA)An app people can install on their phone.pwa (off by default)
Feedback buttonA button that sends feedback with a screenshot to the admins.Core, with its own switch on the Feedback page (off by default)
NotificationsNotifications inside the admin and member areas.Always on
AnalyticsA Google Analytics connection and dashboard.Always on
BannersA site-wide message banner and a site usage banner.Always on
Data import and exportExporting and importing your data.data

The full list, with what each feature needs, is in All features.

What it is built with

LayerTechnology
FrameworkAnalogJS 2 (full-stack Angular) on Angular 21
InterfaceAngular Material and Bootstrap 5
StateNgRx Signals
EditorTipTap 3
Build and dev serverVite 7
BackendFirebase: Firestore, Authentication, Cloud Storage, Cloud Functions (Node 22), Hosting
TestsVitest

There is no server of your own to run. The build ships the app as static files. Your home page and content are published as static pages, and all server work happens in Cloud Functions. See Architecture for how the parts fit.

Who it is for

What it is not

Next

Decide what you are building: A website or an app.