Kept apart
Its Own Database, Functions and Site
Arc CMS keeps its own Firestore database and storage bucket, and its own hosting site if you want
one. Every function it deploys is prefixed arccms-.
Sign-in, roles, email, payments, an admin area and a CMS, ready on day one. Copy the repository, switch off what you don't need, and write only what makes your app yours.
The parts every product needs and nobody wants to rebuild, working and tested before you write your first feature.
Email with codes, Google, and phone with a PIN, on one page. Password resets never leave your app.
Roles travel in signed claims, checked by security rules and server functions.
One-time and subscription checkout through Dodo Payments, with Stripe and PhonePe coming soon. Plans, credits and premium-only pages.
Transactional and marketing email through Gmail, SMTP or Resend, with logs and one-click unsubscribe.
Users, content, audience, email, media and settings, ready for your team. Add your own screens to its menu.
A signed-in home for your users, with profile, billing and account deletion.
An installable PWA with icons, offline start and an update prompt, switched on in one line.
Content types, media, site search and SEO for your product's marketing pages.
Your app is a copy of Arc CMS with your own code in a custom space. Arc CMS never touches that space, so its updates never conflict with your work.
Copy the repository and point it at your Firebase project with npm run arc:configure.
Switch off the features your app doesn't need in one file. They leave no menu, page or function behind.
Add your pages, routes, Cloud Functions, security rules and menu items in the custom space.
Pull each Arc CMS release with a git merge. npm run check:core confirms you never edited core.
Each app keeps its choices in src/custom/: the features it uses, its brand, its
routes, its sign-in rules, and changes to the admin and member menus by item id and role.
Arc CMS ships these files empty and never edits them again.
// src/custom/features.ts
export const CUSTOM_FEATURES: FeatureChoice = {
off: ['sms', 'payments'],
on: ['pwa'],
};What each part does for you, and where you take over.
Sign-in and accounts
Email and password, Google, or phone with a 6-digit PIN, all on one page. New addresses and numbers are confirmed by a code. Forgotten passwords are reset in place, accounts can link an extra email or phone, and you choose strict or simple password rules. For shared devices, there are PINs and app accounts with no email at all.
Payments
One-time and subscription checkout through Dodo Payments, with Stripe and PhonePe coming soon. A pricing page, prepaid credits and tiered prices come with it. Lock a page, a section or a route to a plan: the plan is written only by the server, so nobody can promote themselves. Payment emails and webhook handling are done.
Email and automations
Transactional and marketing email through Gmail, SMTP or Resend, with a brand kit, a block composer and a full log. Automations react to sign-ups, payments and your own app's events by sending an email, adding a notification or changing a list.
Admin and member areas
Give the admin area your name, logo and colours, add your own screens to its menu, and change or hide Arc CMS's items by id and role. Members get their own area with profile, billing and account deletion, which you extend the same way.
Installable and offline
Turn on the PWA and Arc CMS makes every icon size from one image, adds a service worker, opens without a connection, and asks before switching to a new version. An offline data cache is one setting away.
Content and marketing
The same install runs your product's website: content types, a media library, site search,
structured data and llms.txt, signup forms and email campaigns. One login for the
app and its marketing.
Install Arc CMS next to your Firebase app as its admin area, content store and email engine. Neither app touches the other's data.
Kept apart
Arc CMS keeps its own Firestore database and storage bucket, and its own hosting site if you want
one. Every function it deploys is prefixed arccms-.
Your users, emailable
Read your app's user collection as live lists, filtered by their fields, and email them from Arc CMS. Fields that look like credentials are never shown.
Connect your app's usersOne sign-in
Both apps share one sign-in pool. Arc CMS uses its own claim names, so your app's roles and Arc CMS access never mix.
The account contractA modern stack, real tests and documentation that keeps up with the code.
More than 8,000 automated tests, a type check in every test run, and security rules tested on the Firebase emulator.
More than 100 pages of docs, checked by tests so they never name a file, script or feature that no longer exists.
npm run deploy builds for the right project, checks every new function, and
releases the site in one step. CI deploys are documented too.
Each Firebase project has its own settings, and a build can never talk to the wrong one.
Against paid starter kits, including where they are the better choice.
| Feature | Arc CMS | ShipFast | Supastarter | MakerKit |
|---|---|---|---|---|
| Price | Free (MIT) | $199 to $249 one-time | $349 to $1,499 one-time | $299 to $599 one-time (Lite is free) |
| Stack | Angular 21, Firebase | Next.js, MongoDB or Supabase | Next.js, Nuxt or TanStack | Next.js, React Router or TanStack, Supabase |
| Admin area | Full admin | Not listed | Superadmin | Super Admin |
| Website and CMS | Full CMS, static pages, SEO, llms.txt | Blog and SEO helpers | MDX blog and docs | Blog and docs |
| Email marketing | Lists, broadcasts, drips, automations | Transactional email | Transactional email | Transactional email |
| Sign-in | Email and password, Google, phone with PIN | Google, magic links | Passkeys, OAuth, 2FA, magic links | Supabase or Better Auth |
| Teams and organisations | Not yet (admin and user roles) | Not listed | Yes | Yes |
| Payments | Dodo Payments; Stripe and PhonePe coming soon | Stripe, Lemon Squeezy | Stripe, Lemon Squeezy, Polar, Creem, Dodo | Stripe, Lemon Squeezy, Paddle |
Prices and features as of October 2026, from each vendor's website.
The things worth knowing before you copy the repository.
Yes. Arc CMS is MIT licensed: use it, change it, and sell what you build, with no licence fees.
Firebase gives you sign-in, a database, storage, functions and hosting with no servers to run. Angular 21 gives the admin and member areas a typed, structured base. If your team works in React, a React starter kit will suit you better.
Your code lives in the custom space, which Arc CMS never edits. Merge each release from the
Arc CMS repository, run npm run check:core and the tests, then deploy.
Build it as a general feature or plug point in Arc CMS and pull it into your app. That keeps every copy upgradeable, and the change helps everyone.
Yes. Your app's own Firestore rules, storage rules and indexes go in their own files and are combined with Arc CMS's before every deploy.
Not yet. Arc CMS has admin and user roles, and your app can add its own roles through custom claims.
Payments run through Dodo Payments today, with Stripe and PhonePe coming soon. Sign-in codes by SMS go through MSG91, with a test provider for development. Email works with Gmail, SMTP or Resend.
Day-to-day development runs against a real Firebase project, so keep a separate project for development. Security rules are tested on the Firebase emulator.
Share a few lines about what you're building: who it's for, the main features, and your timeline. We'll reply by email with next steps.
Rather build it yourself? Start with the app docs.