From 0db44145538c9ddb7ac924f3a0c43669d8d2e730 Mon Sep 17 00:00:00 2001 From: Adam Yang Date: Sat, 13 Jun 2026 16:22:30 +1200 Subject: [PATCH 1/3] feat: add LicenseKey option and concrete commercial pricing tiers Reserve a nullable LicenseKey config property on BotWireOptions (stored only; no validation in this release) so commercial users have a documented place for their Lemon Squeezy key. Document it in the README config table and the BasicEmail sample. Rework commercial licensing docs from "contact for terms" to fixed-price, self-serve tiers: $599/year annual and $1,499 one-time perpetual, purchased via Lemon Squeezy checkout (Merchant of Record, auto key delivery). Add an explicit usage-only / no-SLA support boundary and a priority-support add-on quoted per case. Co-Authored-By: Claude Opus 4.8 --- COMMERCIAL.md | 43 ++++++++++++++++-------- README.md | 8 ++++- samples/BasicEmail/Program.cs | 1 + src/BotWire.AspNetCore/BotWireOptions.cs | 9 +++++ 4 files changed, 46 insertions(+), 15 deletions(-) diff --git a/COMMERCIAL.md b/COMMERCIAL.md index 17b460c..d01ca20 100644 --- a/COMMERCIAL.md +++ b/COMMERCIAL.md @@ -1,6 +1,6 @@ # Commercial licensing -BotWire is open source under the [GNU Affero General Public License v3](LICENSE) (AGPL-3.0). A commercial license is available when AGPL terms do not fit your use case. +BotWire is open source under the [GNU Affero General Public License v3](LICENSE) (AGPL-3.0). A commercial license is available when AGPL terms do not fit your use case — and for most closed-source products, buying one is simpler and cheaper than meeting AGPL's source-disclosure obligations. ## What AGPL means for commercial users @@ -10,24 +10,39 @@ AGPL is a good fit when you can open-source your changes or when your use does n ## What a commercial license provides -A commercial license from Object IT Limited typically allows: +A commercial license from Object IT Limited lets you: -- Use of BotWire in **proprietary** products and services -- Distribution **without** AGPL source-code disclosure obligations for your application -- A **direct licensing relationship** with the copyright holder, separate from the public AGPL terms +- Use BotWire in **proprietary** products and services +- Distribute **without** AGPL source-code disclosure obligations for your application +- Hold a **direct licensing relationship** with the copyright holder, separate from the public AGPL terms -Specific terms (scope, pricing, support, updates) are agreed per customer. This document is informational only and does not constitute an offer. +If you'd otherwise be paying for a hosted support tool like Zendesk, Intercom, or Azure's bot services, a one-off or annual BotWire license is typically a fraction of those subscriptions — and you keep full control of your data and hosting. -## How to get in touch +## Pricing -Go to **[objectit.co.nz/botwire](https://www.objectit.co.nz/botwire)** and click **"Get a License"** to start a commercial-licensing conversation with Object IT Limited. Please include: +All prices are in USD. Final tax (VAT/GST/sales tax) is calculated and shown at checkout based on your location. -- Your company name and contact email -- How you plan to use BotWire (internal tool, SaaS, embedded in a product, etc.) -- Whether you need redistribution rights for a closed-source product +| License | Price | What you get | +|---|---|---| +| **Annual commercial license** | **$599 / year** | Right to use BotWire in closed-source / proprietary products and services without AGPL source-disclosure obligations. Includes all updates released during your active subscription. [Buy the annual license]({{LEMON_SQUEEZY_ANNUAL_CHECKOUT_URL}}) | +| **Perpetual buy-out license** | **$1,499 one-time** | Perpetual commercial-use rights to the current version **and all future versions**. One-time payment, no renewal — the "no recurring fees" option for businesses that prefer a one-time capital purchase. [Buy the perpetual license]({{LEMON_SQUEEZY_PERPETUAL_CHECKOUT_URL}}) | -We will respond with next steps for licensing terms and pricing. +**If an annual subscription lapses:** instances you've already deployed are not retroactively revoked, but you lose the right to use *new* versions commercially. To keep using newer releases commercially, either renew or comply with AGPL. -Prefer GitHub? You can instead open a [GitHub Discussion](https://github.com/adamy/BotWire/discussions) with the label **commercial-license**. +### How purchasing works -For general technical questions unrelated to licensing, use Discussions or open an issue on the repository. +Checkout is handled by [Lemon Squeezy](https://www.lemonsqueezy.com/), acting as Merchant of Record. They calculate and collect any applicable tax/VAT at checkout, handle invoicing, and deliver your license key automatically by email immediately after payment — there's no manual step on our side. The binding license terms are included with your purchase. + +## Support + +A commercial license grants **usage rights only**. It does **not** include any support commitment, SLA, or guaranteed response time. We've kept it this way deliberately so the price stays low and predictable. + +- **Updates and bug fixes** are published on the maintainer's own schedule via [GitHub releases](https://github.com/adamy/BotWire/releases). Paying customers and community (AGPL) users receive them the same way. +- **Public GitHub [Issues](https://github.com/adamy/BotWire/issues) and [Discussions](https://github.com/adamy/BotWire/discussions)** are open to everyone and are best-effort, with no guaranteed response time. +- If you need **guaranteed response times or one-on-one integration help**, a **Priority email support** add-on is available, quoted per case (it's separate from the license). Email us via the contact page below to inquire. + +## Questions & priority support + +For the **Priority email support** add-on, or for any non-standard licensing question (volume, redistribution beyond the standard terms, etc.), reach us at **[objectit.co.nz/botwire](https://www.objectit.co.nz/botwire)**, or open a [GitHub Discussion](https://github.com/adamy/BotWire/discussions) with the label **commercial-license**. + +The standard $599/year and $1,499 one-time licenses don't need a conversation — just use the checkout links above and your key arrives automatically. diff --git a/README.md b/README.md index 76d5a5f..4cd381f 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,7 @@ Reach for BotWire when you want to: | Property | Default | Description | |---|---|---| +| `LicenseKey` | `null` | Commercial license key from Lemon Squeezy. Required for closed-source use under the commercial license; not needed for AGPL-compliant deployments. Validation is not enforced in this release. | | `TopicDescription` | *(required)* | Short phrase describing your support scope, injected into the system prompt. Also enables the off-topic guard. | | `Documents` | `[]` | Paths to Markdown knowledge-base files. | | `ChatProvider` | *(required)* | LLM provider — `ApiKey`, `Model`, optional `BaseUrl` for OpenAI-compatible APIs (e.g. DeepSeek), optional `Temperature`. | @@ -413,4 +414,9 @@ BotWire is open source under the [AGPL v3](LICENSE) — free to self-host, with ### Commercial license -If AGPL doesn't fit (e.g. you ship BotWire inside a closed-source product), a commercial license is available. Click **[Get a License](https://www.objectit.co.nz/botwire)** at objectit.co.nz/botwire to start the conversation — see [COMMERCIAL.md](COMMERCIAL.md) for an overview. +Shipping BotWire inside a closed-source product? You don't have to deal with AGPL compliance — just buy an affordable commercial license and use it in proprietary code. + +- **$599/year** for an annual license (includes updates while active), or **$1,499 one-time** for a perpetual buy-out covering current and future versions. +- Self-serve checkout via Lemon Squeezy; your license key is delivered automatically. Licenses are **usage-only** — priority support is a separate paid add-on, not included. + +See [COMMERCIAL.md](COMMERCIAL.md) for full details, the support boundary, and checkout links. diff --git a/samples/BasicEmail/Program.cs b/samples/BasicEmail/Program.cs index 2d1e76f..91560d2 100644 --- a/samples/BasicEmail/Program.cs +++ b/samples/BasicEmail/Program.cs @@ -30,6 +30,7 @@ builder.Services.AddBotWire(opts => { + // opts.LicenseKey = "XXXX-XXXX-XXXX-XXXX"; // Commercial license key (required for closed-source use) opts.TopicDescription = "Customer support for Acme Store"; opts.Documents = [Path.Combine(AppContext.BaseDirectory, "docs", "faq.md")]; opts.ChatProvider = new OpenAIProviderOptions diff --git a/src/BotWire.AspNetCore/BotWireOptions.cs b/src/BotWire.AspNetCore/BotWireOptions.cs index f1b2f33..eef4e6f 100644 --- a/src/BotWire.AspNetCore/BotWireOptions.cs +++ b/src/BotWire.AspNetCore/BotWireOptions.cs @@ -24,6 +24,15 @@ namespace BotWire.AspNetCore; /// Top-level configuration for the BotWire support bot. public sealed class BotWireOptions { + /// + /// Commercial license key issued by Lemon Squeezy at purchase. + /// Required for closed-source / proprietary use under the commercial license; + /// not required for AGPL-compliant open-source use. + /// License validation is not enforced in this release and is planned for a + /// future version. + /// + public string? LicenseKey { get; set; } + /// Short description of the support topic, injected into the system prompt. [Required] public string TopicDescription { get; set; } = ""; From 376fb648247ec221de9575e25a245b69641ebd81 Mon Sep 17 00:00:00 2001 From: Adam Yang Date: Mon, 15 Jun 2026 20:29:23 +1200 Subject: [PATCH 2/3] docs: add Lemon Squeezy checkout URLs to COMMERCIAL.md Co-Authored-By: Claude Sonnet 4.6 --- COMMERCIAL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/COMMERCIAL.md b/COMMERCIAL.md index d01ca20..17cddea 100644 --- a/COMMERCIAL.md +++ b/COMMERCIAL.md @@ -24,8 +24,8 @@ All prices are in USD. Final tax (VAT/GST/sales tax) is calculated and shown at | License | Price | What you get | |---|---|---| -| **Annual commercial license** | **$599 / year** | Right to use BotWire in closed-source / proprietary products and services without AGPL source-disclosure obligations. Includes all updates released during your active subscription. [Buy the annual license]({{LEMON_SQUEEZY_ANNUAL_CHECKOUT_URL}}) | -| **Perpetual buy-out license** | **$1,499 one-time** | Perpetual commercial-use rights to the current version **and all future versions**. One-time payment, no renewal — the "no recurring fees" option for businesses that prefer a one-time capital purchase. [Buy the perpetual license]({{LEMON_SQUEEZY_PERPETUAL_CHECKOUT_URL}}) | +| **Annual commercial license** | **$599 / year** | Right to use BotWire in closed-source / proprietary products and services without AGPL source-disclosure obligations. Includes all updates released during your active subscription. [Buy the annual license](https://objectit.lemonsqueezy.com/checkout/buy/e2d582ef-469b-4892-a16e-ba99cf44d34e) | +| **Perpetual buy-out license** | **$1,499 one-time** | Perpetual commercial-use rights to the current version **and all future versions**. One-time payment, no renewal — the "no recurring fees" option for businesses that prefer a one-time capital purchase. [Buy the perpetual license](https://objectit.lemonsqueezy.com/checkout/buy/ca437b23-9244-495d-88ef-e20348660263) | **If an annual subscription lapses:** instances you've already deployed are not retroactively revoked, but you lose the right to use *new* versions commercially. To keep using newer releases commercially, either renew or comply with AGPL. From 779b0ad190dd2dc187df2dbc90101dac0b09bdad Mon Sep 17 00:00:00 2001 From: Adam Yang Date: Sat, 27 Jun 2026 11:35:59 +1200 Subject: [PATCH 3/3] docs: update Lemon Squeezy checkout URLs Point the annual and perpetual commercial-license buttons at the live Lemon Squeezy checkout links. Co-Authored-By: Claude Opus 4.8 --- COMMERCIAL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/COMMERCIAL.md b/COMMERCIAL.md index 17cddea..dfd98e8 100644 --- a/COMMERCIAL.md +++ b/COMMERCIAL.md @@ -24,8 +24,8 @@ All prices are in USD. Final tax (VAT/GST/sales tax) is calculated and shown at | License | Price | What you get | |---|---|---| -| **Annual commercial license** | **$599 / year** | Right to use BotWire in closed-source / proprietary products and services without AGPL source-disclosure obligations. Includes all updates released during your active subscription. [Buy the annual license](https://objectit.lemonsqueezy.com/checkout/buy/e2d582ef-469b-4892-a16e-ba99cf44d34e) | -| **Perpetual buy-out license** | **$1,499 one-time** | Perpetual commercial-use rights to the current version **and all future versions**. One-time payment, no renewal — the "no recurring fees" option for businesses that prefer a one-time capital purchase. [Buy the perpetual license](https://objectit.lemonsqueezy.com/checkout/buy/ca437b23-9244-495d-88ef-e20348660263) | +| **Annual commercial license** | **$599 / year** | Right to use BotWire in closed-source / proprietary products and services without AGPL source-disclosure obligations. Includes all updates released during your active subscription. [Buy the annual license](https://objectit.lemonsqueezy.com/checkout/buy/ac21528d-f7f7-4847-8201-e545bcbe22e5) | +| **Perpetual buy-out license** | **$1,499 one-time** | Perpetual commercial-use rights to the current version **and all future versions**. One-time payment, no renewal — the "no recurring fees" option for businesses that prefer a one-time capital purchase. [Buy the perpetual license](https://objectit.lemonsqueezy.com/checkout/buy/5c124e41-c354-4ccd-b5cb-d1e46676984a) | **If an annual subscription lapses:** instances you've already deployed are not retroactively revoked, but you lose the right to use *new* versions commercially. To keep using newer releases commercially, either renew or comply with AGPL.