Marketing tools
The official marketing plugin (free) brings four marketing tools you need around a launch. It
ships with the framework (plugins/marketing); its tables are created on first use.
node node_modules/nuxtcms/scripts/plugin.mjs add marketing
pnpm build:cf && pnpm deploy
| Tool | Page | What it does |
|---|---|---|
| Waitlist | /waitlist | Collects e-mails before launch. Everyone gets an invite link and moves up a few places (default 5) for each friend who joins; a confirmation e-mail carries the place and the link. The admin searches, sorts by referrals, exports CSV and sends invitation e-mails in batches |
| Changelog | /changelog | Releases per language (version, date, new / improved / fixed tags, rich text), with drafts |
| Feedback and voting | /feedback | Users suggest ideas and vote (one vote per visitor, can be taken back). New ideas are public after approval by default; the admin sets a status (open / planned / in progress / done / closed) and answers |
| Legal pages | admin | Privacy policy, terms of service and cookie policy from the company details, the region (mainland China / EU GDPR / US / elsewhere) and the site's features (accounts, payments, analytics, newsletter, AI), in Chinese or English, created as draft pages to check before publishing. Existing pages are never replaced silently |
Forms use the site captcha (waitlist: "subscribe", feedback: "comment") and rate limits. Votes and authors are identified by a salted visitor hash; no IP address is stored.
On any page
With the page builder, add a "Plugin component" block and pick Waitlist, Feedback and voting or Changelog. Or use the components in a site's own pages:
<MarketingWaitlist />
<MarketingFeedback />
<MarketingChangelog :limit="10" />
A site page at the same path (e.g. pages/waitlist.vue) replaces the default page.
SaaS kit lifecycle e-mails
The SaaS kit 1.3 adds automatic e-mails (switch on "Automatic e-mails" in its settings; off by default):
- Welcome after sign-up;
- Plan ending reminders some days before a term ends (default 7 and 1), not for Stripe subscriptions that renew by themselves;
- Plan ended once, inviting the user back.
A scheduled task runs them hourly (e-mail and the cron worker must be set up); every e-mail is sent once.
Testing
pnpm smoke:marketing --base http://localhost:3192 --db .data/saas-demo.sqlite covers the
waitlist (referrals, duplicate sign-ups, CSV export with formula protection, invitations), the
changelog (language, drafts), feedback (moderation, votes, taking a vote back, answers), legal
pages (drafts, no silent replacement, GDPR wording), plugin components in blocks (allow-list) and
the SaaS lifecycle e-mails (cron secret, sent once).