Skip to content

Add tiered managed pricing to Magistrala product page - #171

Merged
dborovcanin merged 27 commits into
mainfrom
magistrala-pricing-tiers
Jul 10, 2026
Merged

Add tiered managed pricing to Magistrala product page#171
dborovcanin merged 27 commits into
mainfrom
magistrala-pricing-tiers

Conversation

@dborovcanin

@dborovcanin dborovcanin commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a full pricing experience to the Abstract Machines site: a reusable, tabbed pricing block, a dedicated /pricing page, a matching header CTA, and an aligned pricing FAQ.

Pricing is split into three operating models (tabs): Community, Private Cloud, Self-managed.

Tabs

Community — free, open-source Community Edition card ("Your free ticket to IoT"): unlimited devices/assets, unlimited updates, ability to contribute, community support. Install + Documentation links.

Private Cloud — fully managed, dedicated instances with a monthly/annual toggle (annual ~10% off):

Tier €/mo €/yr Transfer
Starter 50 540 3 TB
Prototype 200 2,160 5 TB
Business (Popular) 500 5,400 8 TB
Enterprise 1,000 10,800 8 TB
Custom Contact

Self-managed — Magistrala Enterprise Edition in your own environment, with a monthly/perpetual toggle:

  • License only — €300 / cluster / month or €3,999 / cluster perpetual; full EE feature set.
  • Managed by us — we deploy and operate EE on your infrastructure, aligned to your SLA, security, data-residency, and compliance requirements (contact).

Details

  • Pricing.astro component (single source of truth) — mounted on /products/magistrala and the new /pricing page (showHead prop suppresses its section header where the page supplies its own hero).
  • Tabs + panel-scoped toggles: one generic, data-driven handler powers both the annual and perpetual toggles; monthly prices render server-side (progressive enhancement).
  • Header CTA changed from "Contact us" to Pricing/pricing (desktop + mobile). Contact remains in the footer and hero.
  • Pricing FAQ updated for the three models (Community/Private/Self, per-cluster licensing, monthly vs perpetual, etc.).
  • Product-page FAQ refresh: corrected self-hosting (Community free, Enterprise commercial), replaced the stale free-tier entry, and added /pricing links via a new optional link field on FAQAccordion.

Testing

  • astro build passes (Complete!, exit 0); /pricing and /products/magistrala generated, /pricing in the sitemap.
  • Headless-Chrome renders verified all three tab panels (Community card, aligned Private Cloud 5-tier grid, Self-managed two-card layout) and the FAQ; no €null/€undefined leaks.

Replace the two-tier (Community / Enterprise) pricing block with five
managed tiers — Starter, Growth, Business, Enterprise, Dedicated — each
showing capacity, price, and cumulative features. Add a monthly/annual
billing toggle (annual ~10% cheaper) driven by a small progressive-
enhancement script, and keep an open-source self-host note.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 8, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
absmach-website 451847e Commit Preview URL

Branch Preview URL
Jul 10 2026, 03:46 PM

Add a Custom / bring-your-own-cloud banner below the tier grid covering
own-cloud/on-prem deployment, custom SLA, HA clustering, dedicated
infrastructure, and priority support. Add a pricing-focused FAQ
(managed scope, device counting, limits, plan changes, billing, custom
SLA, self-hosting) rendered with the existing FAQAccordion.
Rework tiers to Starter, Prototype, Business, Enterprise, Custom with
updated prices (50/200/500/1000 EUR/mo). Add a 'Good for' line per tier,
move the capacity summary and data-transfer limit into each Included
list, and turn the standalone Custom banner into a fifth Contact-priced
card. Drop internal cost columns.
Add FAQ entries clarifying that every plan is a dedicated instance and
explaining what the '~N devices · M messages / month' figures mean,
including why messages/second is not used as a metric. Extend
FAQAccordion with an optional numbered points list for the latter.
@dborovcanin
dborovcanin force-pushed the magistrala-pricing-tiers branch from 632168d to 2214555 Compare July 9, 2026 08:58
Reorder each card to name -> price -> description -> included, wrap the
price and billing note in a fixed-height block, and give the description
a min-height so the four bands line up horizontally across all tiers
regardless of copy length.
Clarify that Magistrala core and the Community Edition are free to
self-host, while the Enterprise Edition (rules engine, alarms, reports,
audit logs, dashboards) is not.
Extract the pricing block into a reusable Pricing component and mount it
on a new /pricing page (with its own hero) as well as the Magistrala
product page. Point the header CTA to Pricing instead of Contact us.

Refresh the product-page FAQ: correct the self-hosting answer for the
Community/Enterprise edition split, replace the stale free-tier message
-limit entry with a pricing overview, and add pricing links via a new
optional link field on FAQAccordion.
@dborovcanin
dborovcanin force-pushed the magistrala-pricing-tiers branch from 0daef74 to 5580f62 Compare July 9, 2026 10:00
Replace the single tier grid with a tabbed layout:
- Community: free, open-source Community Edition card with install links.
- Private Cloud: the existing managed dedicated tiers with a monthly/
  annual toggle.
- Self-managed: Magistrala Enterprise Edition run in your own environment
  — a license-only option (EUR 300/cluster/month or EUR 3,999 perpetual,
  toggled monthly/perpetual) and a managed-by-us option (contact).

Generalise the billing toggle to be panel-scoped and data-driven so both
the annual and perpetual toggles share one handler, and update the
pricing FAQ and page hero for the three operating models.
- Rewrite the Community Edition card in our own words (free forever, full
  control, open source, no lock-in) instead of the reference wording.
- Self-managed License-only: drop bundled support (support is purchased
  separately) and state there are no limits on devices, messages, or
  features.
- Private Cloud: mark data-transfer limits with an asterisk and note that
  extra transfer is billed at EUR 20 per additional TB per month.
@dborovcanin
dborovcanin force-pushed the magistrala-pricing-tiers branch from 8fb6319 to f256c73 Compare July 9, 2026 11:07
Remove the Starter tier and fold its inclusions into Prototype, now the
entry plan at EUR 150/mo (EUR 1,620/yr), ~200 devices and 1M messages,
covering commercial UI, UI/backend patches, security updates and fixes,
community support, dashboards, and audit logs. Reflow the tier grid to
four columns and update the pricing FAQ example and stale Starter
references in the page description and product-page FAQ.
Rewrite the Community / Private Cloud / Self-managed comparison as a
bulleted list with bold labels, fix the 'In includes' typo, and tighten
the wording. Add an optional bullets field (label + text) to FAQAccordion
to support this.
The Community Edition backend is open source under Apache 2.0, but the UI
is not open source — it is free to use and deploy as a Docker container.
Update the Community card copy and features, the models FAQ bullet, and
the self-hosting FAQ answers accordingly.
Show disk storage for messages above the data-transfer line on each
Private Cloud tier: 80 GB (Prototype), 180 GB (Business), 300 GB
(Enterprise). Also drop an unsupported strokeWidth prop on the Community
card icon to clear a type-check error.
- Add a Community vs Enterprise Edition comparison table, with EE split
  into its Business and Enterprise service levels.
- Add a 'Features, not fences' emphasis band: no artificial caps, only
  soft hardware-bound limits, and every deployment a dedicated instance.
- Rewrite the custom-SLA FAQ to make clear a formal uptime SLA and HA
  clustering are Custom-plan (and 'Managed by us') only, and clean up the
  awkward self-managed wording in the deploy FAQ.
Drop the SLA/HA row from the table (kept in the FAQ and as a footnote),
and switch the columns from the two EE levels to Community plus every
Private Cloud tier (Prototype, Business, Enterprise, Custom). Add a
Capacity group with devices, messages, message storage, and data
transfer per tier; self-hosted Community shows 'Your hardware'.
- Turn the UI row into a 'Commercial UI with whitelabeling' checkbox row.
- Prefix message capacities with ~ and use 'Higher priority' support.
- Add an asterisk on the unlimited-resources row with a footnote making
  clear limits are purely hardware- and setup-related, never artificial
  caps. Keep the comparison table capacities in sync with the tier cards.
Drop the explanatory subtitle under the 'Community vs Private Cloud
plans' heading.
Emphasize that deployments aren't locked or tracked via license keys, so
data stays in the chosen deployment, and that the anonymous deployment
statistics we collect can be turned off.
@dborovcanin
dborovcanin force-pushed the magistrala-pricing-tiers branch from a3e4557 to 063fb51 Compare July 9, 2026 14:06
… separators

- Replace 'non-critical message loss' with 'best-effort delivery'.
- Rewrite the plan-change FAQ: upgrades anytime, downgrades need a
  migration so contact us.
- Format prices with thousands separators (e.g. EUR 1,000, EUR 3,999)
  via a shared en-US formatter, applied to both the rendered amounts and
  the toggle data attributes.
@dborovcanin
dborovcanin force-pushed the magistrala-pricing-tiers branch from 3a298bb to d2f6b9f Compare July 9, 2026 14:50
Give the Community tab the same intro treatment as Private Cloud and
Self-managed.
@dborovcanin
dborovcanin force-pushed the magistrala-pricing-tiers branch from d2f6b9f to 2cb351d Compare July 9, 2026 15:01
Make the license updates line toggle-aware: monthly shows 'Priority
security patches & updates', while perpetual shows '... for the purchased
version', since a one-time license does not include indefinite updates.
Extend the term toggle to swap .mg-term text.
Explain that a monthly license stays on the latest release while paying,
and a perpetual license covers the purchased version indefinitely with
patches and minor updates, but not future major releases.
Replace 'keep paying' with 'your subscription is active'.
@dborovcanin
dborovcanin force-pushed the magistrala-pricing-tiers branch from b329852 to 8f0d06f Compare July 9, 2026 17:32
Signed-off-by: dusan <borovcanindusan1@gmail.com>
Signed-off-by: dusan <borovcanindusan1@gmail.com>
@dborovcanin
dborovcanin force-pushed the magistrala-pricing-tiers branch from 12f4d6c to c1509e4 Compare July 10, 2026 12:03
Signed-off-by: dusan <borovcanindusan1@gmail.com>
Signed-off-by: dusan <borovcanindusan1@gmail.com>
@dborovcanin
dborovcanin merged commit db68343 into main Jul 10, 2026
2 checks passed
@dborovcanin
dborovcanin deleted the magistrala-pricing-tiers branch July 10, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant