Plugins

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
ToolPageWhat it does
Waitlist/waitlistCollects 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/changelogReleases per language (version, date, new / improved / fixed tags, rich text), with drafts
Feedback and voting/feedbackUsers 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 pagesadminPrivacy 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).