Verticals, marketing automation & website builder — release 1.17.1
This release broadens GrowERP from one admin app into a family of vertical apps, adds a full marketing/sales automation suite, a website builder that can import an existing site, and moves the whole repo to Apache-2.0 — on top of a large round of store publishing, CI and backend hardening since 1.16.16.
Highlights
- New vertical apps —
marketingandrentalapps shipped, plus new building blocksgrowerp_rental(Gantt/rates/statistics extracted from hotel) andgrowerp_wiki.healthandelearnerretired. Newgrowerp createAppCLI scaffolds a vertical from the block registry, with AI-assisted--describe. - Marketing & sales automation — author-once
MasterContentadapted to 6 platforms, AI content-plan generation, auto-publish of approved content with daily limits, X and Substack publishing (Notes, subscriber sync, engagement collection), social engagement monitor, native email nurture-sequence engine, sales pipeline board + funnel report withnextStepauto-activity, and a marketing/sales dashboard. - Outreach — LinkedIn connections and Apollo lead CSV import (async, with completion notification), assisted LinkedIn send queue, tenant-SMTP campaign sending, retries, owner scoping, and personalizer channel rules.
- Hotel — seasonal rates, web booking, housekeeping that follows the stay, occupancy reports and tourist tax, with integration tests.
- Freelance — time billing for assistants: approval flow, invoicing from time entries, and a billing report.
- Website builder & storefront — selectable modern Tailwind/Lumina templates with brightness-aware theming and a theme colour picker, per-page SEO metadata and lead-capture form builder, custom HTML home-page templates, a support website generator page with export/import, conversion of an existing public website into a GrowERP owner, AI/LLM-readable hosted sites, a Verticals page linking every app store, and DB-fallback product search when OpenSearch is absent.
- Localization — user-facing strings across every
growerp_*package and app extracted into ARB files and translated, with Thai joining English, Dutch, German, French and Chinese; each package now ships its ownl10n.yamland localization delegate. On top of the apps, a website translation function in the support app translates a whole tenant site into the six languages with Gemini: a translated page is an ordinary wiki page with the locale as its first path segment (nl/about), served at/nl/content/about, so versioning, the markdown twin, SEO caches and tenant editing all work unchanged. Store, category and product names resolve throughmoqui.basic.LocalizedEntityField; the shared site chrome comes fromLocalizedMessageseed rows. Untranslated pages still render in the language the site is written in. - Subscriptions & payments — public plan list, auto-renewal with dunning, trial-expiry renewal with currency conversion, and one-page checkout fixes (spinner, double-submit block, USD→company-currency conversion).
- OKF knowledge bundle — OKF v0.1 entity-model exporter,
okf_*MCP tools with RAG ingest and artifacts, bundle hosted in the growerp component, browsable/editable through the newgrowerp_wikiblock. - AI platform (ADK/MCP) — breaking: MCP screen tools dropped, service-only toolset; tenant-scoped agent jobs; tenant-configurable LLM model defaulting to flash-lite; SSE transport and scheduler fixes; per-tenant interactive chat agents.
- CRM & activities — Google Meet bookings and Gemini meeting minutes captured as CRM activities; internal appointment scheduling removed in favour of external calendars; dashboard tiles added for every module (catalog, orders, inventory, accounting, manufacturing, agent control, outreach).
- Chat & email — templated chat notification emails with dynamic app names, per-application welcome message, receiver-side unread indicator, selectable message text, N+1 query fix in
get#ChatRoom. - Store publishing & CI — central app config (
release_config.json) drives every store workflow; iOS/macOS/Windows/Android/Snap publishing unblocked for the new verticals; screenshot tests for the five remaining store apps; integration-test and store-status reports published to GitHub Pages; a mergedstatusworkflow with failure drill-down; test slices now fail the job when the run fails (they silently reported success before); the register-button hide scoped to iOS/macOS release builds so store review is covered without breaking local dev and tests. - Android/build — target API 36, Gradle 8.14, AGP 8.11.1, Kotlin 2.2.20; Flutter SDK constraint
>=3.33.0across all packages. - Licensing & packaging — repo relicensed from CC0 1.0 to Apache-2.0; 14
growerp_*packages published to pub.dev with LICENSE, examples and complete dependency declarations. - Refactor —
classificationIdrenamed toapplicationIdthroughout (backend keeps a deprecated alias).
344 commits since 1.16.16 (91 features, 138 fixes).