ngx-richtext workspace

August 12, 2026 · View on GitHub

Angular workspace for the ngx-richtext npm package — a professional rich text editor with free and premium feature tiers.

Live demo → https://ngx-richtext.ebdev-design.com

Projects

ProjectPathDescription
ngx-richtextprojects/ngx-richtextPublishable Angular library
demoprojects/demoShowcase app (forms, image upload, dark mode, HTML preview) — deployed at ngx-richtext.ebdev-design.com

Scripts

npm start            # serve demo at http://localhost:4200
npm run build        # build the library to dist/ngx-richtext
npm run build:demo   # build the demo app
npm test             # unit tests (Vitest)
npm run e2e          # Playwright end-to-end tests
npm run license      # generate a signed premium license key
npm run publish:dry  # npm publish --dry-run of the built package

License key tooling

# rotate the signing key pair (embed the public half in src/lib/license/public-key.ts)
node tools/generate-license.mjs --keypair

# issue a customer key — bound to their hostnames, one year by default
RTE_LICENSE_PRIVATE_KEY=... node tools/generate-license.mjs \
  --licensee "Acme Inc" --domains "acme.com,*.acme.com"

--domains is mandatory: the generator refuses to issue an unbound key, because a key with no host restriction is worth stealing out of a shipped JS bundle. Local development hosts (localhost, 127.0.0.1, *.localhost) always pass, so customers never need a separate key for ng serve.

Keys are stamped with a kid naming the signing generation that produced them, and the client trusts an ordered keyring rather than a single key. The successor for the next rotation ships roughly a year before it signs anything, which is what makes rotation a server-side change instead of a coordinated customer upgrade. Full runbook: tools/README.md.

Never commit a production private key. tools/license-private*.key is gitignored.

License

Not MIT. ngx-richtext is source-available under the ngx-richtext License Agreement: the free tier is free forever in any application including commercial ones, premium features require a purchased key, and redistributing the library itself — or patching out the feature gate — is not permitted.

Docs

See projects/ngx-richtext/README.md for the package API and usage guide.