SimpleLinks Docs

Changelog

Notable changes to the SimpleLinks Plugin API. Backwards-incompatible changes are flagged. Bugfix releases are not listed unless they change observable behaviour.

v3.23.1 — May 2026

  • Dashboard boot fix. A stray escape sequence inside an inline code snippet on the new Plugin page broke parsing of the entire dashboard script, leaving the workspace stuck on a spinner with an empty sidebar after sign-in. The offending string is now correctly escaped so every page renders again.

v3.23.0 — May 2026

  • Plugin downloads inside the dashboard. A new Plugin page in the workspace nav shows the latest published build with its version, file size, publish date, and SHA-256 — plus one-click download buttons and copy-ready wget/curl snippets that drop the plugin straight into oxide/plugins/SimpleLinks.cs.
  • Public manifest endpoint. GET /download/plugin/manifest returns a small JSON document with the current version and integrity hash so a Rust server (or your own CI) can detect new builds without scraping any page. GET /download/plugin always streams the latest build; GET /download/plugin/vX.Y.Z streams a pinned, immutable copy.
  • Promotion without redeploy. Builds live in R2 under plugin/SimpleLinks-<version>.cs with a tiny plugin/latest.json pointer. Publishing a new build is a single object PUT — the Worker never holds the plugin source in its bundle, so the platform team can ship plugin updates independently of dashboard releases.

v3.22.1 — May 2026

  • Server detail header cleanup. Removed dead client-side platform detection that referenced a column the server schema never stored, and replaced it with a stable Rust chip that reflects the only platform the runtime actually supports today.

v3.22.0 — May 2026

  • Dashboard visual refresh. The admin dashboard has been realigned with the public landing page so the entire product now speaks the same visual language. Page headers carry breadcrumb → title → subtitle → action zones; new platform chips (Discord, Steam, Rust, Oxide, Carbon) replace plain badges; stat cards put the label first with a dedicated delta slot; lists adopt the “hero row” pattern with status icons. A live All systems operational pill anchors the top of the Overview and Platform Admin pages.
  • Consistent header treatment across every page. Organization Dashboard, Linked Users, API Keys, Billing, Org Settings, Team, Guild Detail, Server Detail, Guild Settings, Custom Bot, Platform Admin, Organizations, Audit, Errors, Blacklist, Announcements, and Platform Settings all share the same header chrome and spacing.
  • Wider workspace. The main content max-width grew from 1080 px to 1280 px and the inner padding scales with viewport, giving large tables and stat grids more room without losing the calm gutter at small screens.
  • Refined component tokens. Primary buttons inherited the soft ember glow from the public site’s “Continue with Discord” CTA; muted hairlines, dot-prefix status pills, and underline tab affordances are now factored into a small set of reusable primitives.

v3.21.8 — May 2026

  • Platform Tools panel fix. The platform overview query that powers the super-admin Tools tab referenced a non-existent column when counting active blacklist entries. The count now uses the correct expiry-based check, matching how blacklist lookups already work everywhere else in the platform.

v3.21.7 — May 2026

  • Platform admin error visibility. The admin API now matches the regular dashboard API: any uncaught server error returns structured JSON instead of letting Cloudflare substitute a plain-text or HTML error page, and the client surfaces the real status and message. The Platform Settings → Tools tab and other super-admin views no longer show the opaque “Unexpected token” error.

v3.21.6 — May 2026

  • User detail page fix. Opening a user’s detail page from the Users list could fail with a database error because the account-graph query used an expression in ORDER BY across a UNION ALL, which SQLite rejects. The sort column is now part of each branch’s result set so the query runs cleanly. Affected only the user detail view; list and verification flows were unaffected.

v3.21.5 — May 2026

  • Dashboard error visibility. When a dashboard request failed mid-flight, the client used to surface a confusing “Unexpected token ‘<’” toast because the underlying response was an HTML error page rather than JSON. Dashboard endpoints now always reply with structured JSON on failure, log the failure to the in-dashboard error log, and the client renders the real status code and message. No behavioural changes to successful requests.

v3.21.4 — May 2026

  • Link page icon rendering fix. A regression in the previous release caused inline icons inside Step 3 (and a handful of secondary actions on the link page) to render at the browser’s default replaced-element size, producing a large stretched icon overlaying the card. Icons now render at their intended size in every context. No behavioural changes to verification or sync.

v3.21.3 — May 2026

  • Steam group verification fix. The Step 3 “I’ve joined — Verify” button now always asks Steam directly instead of replaying a cached group list, which could be up to ten minutes old. Users who join the group can now verify immediately. Bulk plugin polls keep using the cache so Steam isn’t hammered from server-side checks.

v3.21.2 — May 2026

  • Tenant isolation hardening. Bot-scoped API keys are now minted with an explicit action whitelist instead of the legacy all permissions default, so a compromised bot can no longer reach dashboard-grade actions or queries outside its own workspace. Existing bot keys are clamped to the new whitelist automatically on next refresh. The legacy getBotGuildMapping action — which returned platform-wide guild metadata to any authenticated caller — has been removed. Defense-in-depth scope checks were added so every authenticated call now reverifies that the key’s recorded guild and server match the resolved request scope.

v3.21.1 — May 2026

  • Shared bot identification fix. Hotfix for a rollout regression where the shared SimpleLinks bot was still running the previous template and could not authenticate against the new tenant-scoped /bot/guilds endpoint. The bot template now supports an explicit mode switch — the shared bot identifies as platform and continues to serve every workspace that has not enabled a dedicated bot, while dedicated bots keep reporting their own Discord user id. No customer-visible changes; verification and sync resume immediately on rollout.

v3.21.0 — May 2026

  • Stronger tenant isolation for dedicated bots. Each customer’s dedicated bot now identifies itself to the platform on every request, and the platform responds with only the workspaces tied to that exact bot. Previously every customer runner held configuration for the full active fleet in memory; the new scoping means a customer bot can only ever see its own workspaces — even if its host or process were somehow compromised, no other tenant’s data is reachable from inside.
  • Per-bot provisioning pipeline. The dedicated-bot setup flow has moved off a platform-wide sweep onto a per-bot pipeline that drives each new bot independently. Setup feels noticeably faster — allocate → install → deploy → start now advances every few seconds rather than every minute — and one slow node can no longer hold up provisioning for other customers.
  • Bot template v4.2.0. All dedicated bots have been refreshed to the latest template, which carries the new identification header and the stricter tenant scope. Existing customers do not need to take any action — the rollout happens transparently in the background and the bot stays online throughout.
  • Cleaner Custom Bot card. Provisioning states now refresh in near-real-time on the Custom Bot card, so you see Installing your bot transition to Starting your bot and then to online without needing to refresh the page repeatedly.

v3.20.1 — May 2026

  • Reliable bot provisioning. The dedicated-bot setup flow has been rewritten as a short state machine that advances once per minute, instead of trying to install, configure, and start the bot inside a single dashboard request. The previous approach hit request-time limits on slower nodes and left some bots stuck with empty disks — the new flow always completes within two to three minutes regardless of node speed.
  • Customer name on every runner. The dedicated host now carries the workspace name and Discord server name directly on the panel, so operations can tell at a glance which customer each bot belongs to instead of seeing only a numeric ID.
  • Granular status messages. The Custom Bot card now reports each provisioning phase distinctly — Allocating dedicated bot host, Installing your bot, Starting your bot — with a final transition to online once the bot is live in your Discord.

v3.20.0 — May 2026

  • Dedicated bot hosting — zero setup. Subscribing to the Custom Bot tier now does more than store a token. The moment you save and validate, SimpleLinks automatically provisions a dedicated runner for your bot and brings it online in your Discord server with the green dot and a live Watching N Linked Accounts presence. No external host, no node index.js, no PM2 — the bot just appears in your guild within about a minute of saving the token.
  • Live runner status on the Custom Bot card. A new status row sits beneath the bot identity, showing whether the dedicated runner is online, paused, starting up, or failed, alongside the memory it’s using and how long it has been up. Status updates every time you open the page, so you always know whether your bot is healthy without leaving the dashboard.
  • Auto-suspend on cancellation, instant resume on resubscribe. Cancelling the Custom Bot subscription now pauses the dedicated runner instead of leaving it running indefinitely. Your bot drops offline gracefully, the configuration is retained, and resubscribing reactivates the exact same runner — same identity, same token, no reconfiguration. The platform’s shared bot continues to keep verification working for your members in the meantime.
  • Token rotation refresh. Replacing the bot token from the Custom Bot card now hot-reconfigures the running bot in place: the new token is written into the live runner and the process is restarted automatically. Previously a token swap required a manual restart of your own host.

v3.19.2 — May 2026

  • Invite landing fix. Resolved a regression that left the dashboard stuck on the loading spinner when visiting workspace invite links, caused by an escape-layer bug in an inline route matcher. Invite preview, sign-in redirect-back, and acceptance now render reliably.

v3.19.1 — May 2026

  • Dashboard boot fix. Hotfix for an inline-script syntax error that prevented the dashboard from initialising for some accounts after the v3.19.0 release. The fix is internal — no API impact.

v3.19.0 — May 2026

  • Teams & roles. Each workspace now has a dedicated Team page listing every member with a role badge — Owner, Admin, or Staff — and a one-line summary of their effective permissions. The Owner can edit any member at any time, with a permission matrix grouped by area (Organisation, Links, Servers, Audit, Analytics) so each capability can be toggled independently. Sensible per-role defaults are pre-filled when changing role, but every checkbox stays adjustable for true fine-grained control. Non-owners can leave the workspace from the same page; the Owner cannot leave without first transferring ownership.
  • Invite links replace add-by-Discord-ID. Inviting a teammate now creates a shareable link of the form /invite/<code>, which can be pasted into any chat. The invite carries its target role and the exact permission set that will be applied on acceptance, plus an optional note and a configurable expiry — 1 day, 7 days, 30 days, or never. Open invites are listed on the Team page with one-click copy and revoke, and codes can be re-issued at any time without touching existing members.
  • Sign-in redirect-back on invite acceptance. Visiting an invite link while signed out now shows a public preview of the workspace, the role being offered, and the permissions that will be granted, with a single “Sign in with Discord” button. After authenticating, the user lands directly back on the invite page to accept — no more being dropped on a generic dashboard and having to find the link again. Acceptance is idempotent: clicking accept twice never creates a duplicate membership.
  • Per-route permission enforcement. Every workspace endpoint now declares the exact permission it requires, and access is checked against the caller’s personal permission set rather than a coarse member-vs-non-member flag. Owners implicitly hold every permission; Admins and Staff see the dashboard scoped to what they can actually do, with disabled actions clearly indicated rather than silently failing.

v3.18.3 — May 2026

  • Real-time error alerting. Unhandled exceptions in the platform are now pushed to the operations on-call channel within seconds, on top of the in-dashboard error log. Repeated occurrences of the same error are deduplicated so the channel does not get flooded, and a circuit breaker caps the outbound rate so a runaway loop cannot starve the platform of its request budget. Customer-facing behaviour is unchanged — errors still surface as a clean 500 page.

v3.18.2 — May 2026

  • Invite-only registration honoured by the UI. When the platform is set to invite-only, the Create Organisation screen now shows a dedicated invite-code field and clear guidance. Previously the form had no way to enter a code, so every submission failed with a generic error. Closed registration is now surfaced up front with a banner instead of as a submit-time rejection.
  • Platform Settings redesigned. The operator settings page has been rewritten as three tabs — Feature flags, Maintenance mode, and Tools — with iOS-style switches, severity-aware cards, immediate save (no global Save button), and a live preview pane for the maintenance message.
  • Operator maintenance tools. The new Tools tab adds one-click actions to purge expired cache and orphaned dismissals, drop sessions inactive for seven or more days, and force-sign-out every user except the current operator. Each action is audit-logged. A database snapshot beneath the tools shows live counts for sessions, cache, organisations, guilds, servers, audit logs, errors, blocklist entries, invite codes, and subscriptions, alongside a list of recently active super-admins.

v3.18.1 — May 2026

  • Dashboard boot fix. Resolved an inline-script syntax error that prevented the Dashboard from initialising for accounts on certain configurations, leaving the page stuck on the loading spinner. The fix is internal — no API impact.

v3.18.0 — May 2026

  • Announcement banners. SimpleLinks can now surface platform-wide announcements directly inside the dashboard. Banners stack above the navigation, support four severities (info, success, warning, critical), can carry an optional link, and remember which announcements each account has dismissed. Targeting supports all users, a specific tier, or all paid customers.
  • Scheduled maintenance windows. When the platform is undergoing planned maintenance, the dashboard now renders a full-screen maintenance card with the operator-supplied message and a clean dark surface instead of stale data. Public link flows and plugin endpoints are unaffected.
  • Blocklists. Accounts and networks identified as abusive can now be blocked from completing OAuth. Blocked attempts are stopped before any token exchange or role assignment and surfaced with a clear error page; the original session is never bound.
  • Platform admin upgrade. Internal tooling refresh for the SimpleLinks operations team — errors center, subscription tooling, expanded audit log. No customer-facing changes from these.

v3.17.0 — May 2026

  • Platform admin upgrade. Internal tooling refresh for the SimpleLinks operations team. No customer-facing changes.

v3.16.0 — May 2026

  • New brand mark: the Anvil. SimpleLinks now carries a proper logo — a forged anvil with sparks lifting off the working face, in the SimpleLinks orange family. Replaces the placeholder “S” badge across the landing site, dashboard, docs, and tab favicon. Designed to sit alongside its sibling product MapWipe (the bolt).

v3.15.1 — May 2026

  • Changelog wording polish. Tightened the wording across recent release notes to focus on observable behaviour and public surface (endpoints, events, headers) rather than internal naming. No functional changes.

v3.15.0 — May 2026

  • Landing reframed around three differentiators. A new What only we ship section sits above the four feature pillars and showcases the capabilities no other Rust linker offers: two-way Oxide ↔ Discord role bridge, Trust Score with 30-day history, and the cross-server Account Graph. Each card carries an inline animated SVG illustration. Hero eyebrow updated to Two-way Oxide ↔ Discord sync.
  • Comparison table extended. The #compare grid now lists the two-way role bridge, Trust Score, and Account Graph as explicit rows. Column headings rephrased neutrally (DIY scripts / Other Rust linkers / SimpleLinks).
  • Trust Score history (sparkline). Every recompute now snapshots the score, with 1-hour debounce and identical-score skip to keep storage bounded. The Users detail drawer renders a 30-day sparkline with first-vs-last delta chip directly under the four-factor bars, backed by a new GET /api/orgs/:id/users/:key/trust-history?days=30 endpoint that returns score points with full component breakdown.

v3.14.1 — May 2026

  • What’s-new strip is now auto-generated. The four-item ribbon below the hero on simplelinks.cc no longer ships as hand-written HTML. A new parseLatestChangelog() reads this very page, extracts the four most recent <h2>v…</h2> entries, derives a tag from the title (Billing / Plans / Branding / Logging / Identity / API / Dashboard / Landing / Perf / Update), and trims the body to the first sentence. Shipping a release — i.e. adding a new <h2> to this file — is now the only step needed to update the landing surface.
  • Per-version deep links. Every <h2> on this page is rendered with an id attribute (e.g. id="v3-14-0") so the landing strip can deep-link to a specific release.

v3.14.0 — May 2026

  • Navigation Links editor (all tiers). A new card in Settings → Organization lets you manage the buttons shown in the top-right of your link page. Each entry has a label (24 chars max), a URL (https/http only), one of 12 preset icons (Discord, Steam, YouTube, Twitter/X, Twitch, GitHub, shop, forum, news, download, globe, external), and an Open in new tab toggle (on by default to preserve the verification session). Rows are drag-sortable, and the cap is enforced both client- and server-side: Free 3, Standard 5, Pro 10.
  • Hardened link-page URL handling. Nav URLs are normalised through new URL() on save, restricted to http: / https: protocols, and rendered with rel="noopener noreferrer" when opening in a new tab. Legacy nav_links rows (only name + url) auto-upgrade to icon = none / target = _blank on first render.

v3.13.1 — May 2026

  • Custom Domain setup is now a guided 3-step walkthrough. The Settings → Custom Domain card has been rebuilt as a numbered checklist: (1) enter the subdomain you own, (2) add a single CNAME at your DNS provider with one-click copy buttons for both Name and Target values, (3) wait 1–10 minutes for automatic SSL provisioning. Cloudflare DNS users get an inline note to keep the proxy on DNS only (grey cloud). Any extra TXT records returned by hostname validation now render under Step 3 with plain-English labels (“Extra ownership check” / “SSL validation”) instead of jargon.
  • Hero mockup label clarified. The right-hand verification preview in the landing hero now reads demo · verification preview instead of demo.simplelinks.cc / verify, so it no longer looks like a clickable route. The visual remains the same.

v3.13.0 — May 2026

  • Landing page rebuilt around four feature pillars. The marketing surface at simplelinks.cc has been overhauled to organize the platform into four explicit pillars — Identity verification, Rust server integration, Discord automation, and Your brand, our edge. Each pillar lists every shipped capability with new / tier pills (Standard, Pro) so visitors can match features to the plan that unlocks them.
  • New “What’s new” strip. A four-item ribbon below the hero highlights the most recent four releases (v3.12.0, v3.11.1, v3.11.0, v3.10.1) with deep links to the changelog. The strip is regenerated when the docs source is republished, so it follows the changelog automatically.
  • Verification Logs live demo. A new section between Features and How-it-works renders both green (linked) and red (unlinked) Discord embeds in pure CSS — visitors can see the exact shape of the message that will land in their channel before they install anything.
  • Compare table. A new comparison block under How-it-works contrasts Roll your own / Generic bot / SimpleLinks across seven capabilities (OAuth flow, Oxide hook, verification logs, custom domain, multi-server identity, hosted infra, REST API) so prospects don’t have to do the math themselves.
  • API & integrations section. A new #api anchor near the bottom of the page documents the three key types (Plugin, Bot, Custom) with a copy-paste-ready curl example for findBySteam and a direct link into /docs. The top navigation now exposes API and Docs entries.

v3.12.0 — May 2026

  • Hard tier limits across all dimensions. The previous “unlimited” allotments on Standard and Pro have been replaced with concrete ceilings so every plan now has a clear ladder. Free: 1 org / 1 guild / 2 servers / 500 active links (unchanged). Standard: 3 orgs / 3 guilds / 15 servers / 20,000 active links. Pro: 10 orgs / 10 guilds / 50 servers / 100,000 active links. Limit checks already used a single code path keyed on these numbers, so the change is transparent — existing Orgs above any new ceiling keep their current resources but can’t add more until they’re back under the cap.
  • Landing page pricing matrix. The three tier cards now list explicit numbers in place of the old Unlimited wording. Functional inclusions and the $0 / $5 / $10 (and $0 / $50 / $100 yearly) price points are unchanged; only the resource ceilings are now numeric.

v3.11.0 — May 2026

  • Verification logs to Discord. Every Guild now publishes a rich embed to its configured Log Channel whenever a player links or unlinks. Linked embeds are green and include Discord ID, mention, Discord and Steam display names, the Steam profile URL, and country; unlinked embeds are red and include the cause (user, admin, plugin, relink, zombie-cleanup) and how long the account had been linked. Available on every tier — Free included. Configure the destination by setting Log Channel ID on the Guild settings page; leave it blank to disable.
  • All unlink paths emit logs. Verification logs fire from the public unlink page, plugin remove calls, dashboard single and bulk unlinks, zombie cleanup, and both relink paths (same Discord, new Steam — or same Steam, new Discord). Failures are best-effort and never block the underlying unlink.
  • Pricing copy cleanup. The landing page no longer advertises HTTP Webhooks as a paid feature — the underlying infrastructure remains but is unannounced until a dashboard UI ships. The REST API & webhooks feature card is now REST API & verification logs, and the pricing matrix lists verification logs as a Free-tier capability.

v3.10.1 — May 2026

  • Self-healing Stripe customer ID. Fixed a 500 on Subscribe / Manage Billing for Orgs whose stored Stripe customer was created against a different Stripe mode than the platform is currently keyed for (e.g. a live-mode customer surviving a switch to test mode). The lookup path now verifies the stored ID against the active mode and transparently recreates the customer when it can't be retrieved.

v3.10.0 — May 2026

  • Standard and Pro tier subscriptions. Two paid plans on top of Free: Standard at $5 / month or $50 / year, and Pro at $10 / month or $100 / year (both yearly options save two months). The landing page pricing section now has a monthly / yearly toggle and live Subscribe buttons; if you're signed out, the button captures your choice in localStorage, sends you through Discord OAuth, and resumes checkout the moment you land on the Dashboard.
  • Plan picker in Dashboard Billing. The Billing tab now shows a three-tier comparison card with a monthly / yearly toggle, ribbons for your current plan and the most popular tier, and feature lists. Upgrades from Free run through Stripe Checkout. Switches between tiers or intervals while you already have a plan run through the Manage Billing portal so Stripe can prorate the swap correctly.
  • Webhook-driven tier sync. customer.subscription.created, updated, and deleted events for plan products now re-derive the Org tier server-side — Pro wins over Standard, both win over Free. Checkout creation moved to POST /orgs/:id/billing/plan/checkout; the Stripe webhook receiver at POST /billing/webhook is unchanged.

v3.9.1 — May 2026

  • Billing page in Dashboard. New top-level Billing entry in the sidebar showing active subscriptions, monthly recurring total, plan tier, and a one-click Manage Billing button to the Stripe customer portal. Each subscription row links back to its Server's Custom Bot page.

v3.9.0 — May 2026

  • Custom Bot add-on. Run the verification flow under your own Discord bot — your bot, your name, your avatar on every link page. $5 / month per Discord server, billed through Stripe. Tokens are encrypted at rest, and cancellation falls back to the shared platform bot with zero downtime. See Custom Bot.
  • Stripe integration. Subscriptions, customer portal, and webhook-driven state sync. New endpoints: POST /orgs/:id/guilds/:gid/billing/checkout, POST /orgs/:id/billing/portal, GET /orgs/:id/billing/subscriptions, and the public POST /billing/webhook handler.
  • Per-guild bot resolver. Every code path that talks to Discord now resolves the bot identity through a single helper that honours an active Custom Bot subscription, decrypts the guild-scoped token, and falls back to the shared platform bot transparently.

v3.8.2 — May 2026

  • Users page filters. Added Discord-server and game-server filters to the Users list, with cascading server selection and an active-filter chip row that lets you remove filters individually or clear them all at once.
  • Docs reorganised. Split the docs sidebar into Guide, API Reference, FAQ, and Changelog so dashboard-only topics (User Management, Trust Score, Account Graph, Custom CSS) are no longer mixed in with Plugin API endpoints.
  • FAQ page. New FAQ with 18 entries across General, Linking, Plugin API, Trust & Users, Billing, and Privacy categories.
  • API fix. GET /orgs/:id/users?server_id= now correctly filters — the parameter was previously read but ignored.

v3.8.1 — May 2026

  • Dashboard boot fix. Resolved an inline-script syntax error that prevented the Dashboard from initialising in some builds, leaving the page stuck on the loading spinner. Internal change — no API impact.

v3.8.0 — May 2026

  • Users page. A new top-level Dashboard view consolidating every linked Steam ↔ Discord identity in your Org, with search, filters, and a six-card detail view. See User Management.
  • Trust Score. Each identity now carries a 0–100 composite score (Stability 35% + Cross-server reputation 25% + Age 20% + Multi-account penalty 20%) and a tier label (Trusted / Normal / Watch / Risk). See Trust Score.
  • Account Graph. Native SVG view of every Discord and Steam ever bonded to the user, including archived links. See Account Graph.
  • Country attribution. Linked records now store the country of the most recent verify request (privacy-respecting — country only, no city). Visible in the Users list and Geo card.
  • Multi-server Oxide groups. The Users page aggregates groups across every server in the Org with tier-aware priority sorting. Top three pills in the list, full list in the detail view.
  • Oxide group tier overrides. Per-Org overrides for the keyword-based tier classification, set on the Org Settings page. Affects Trust Score and pill colors.
  • Zombie cleanup. Configurable inactivity threshold for flagging dormant accounts (default 90 days). Opt-in cleanup via the Users page.

v3.7.1 — May 2026

  • New Custom CSS reference. Documents every design token and link-page selector available to Pro overrides, plus six copy-paste recipes (hot-pink accent, light theme, background image, custom font, hide footbar, glassmorphism rail).

v3.7.0 — May 2026

  • API permissions system. Every key now carries an explicit allow-list of actions. See the new Permissions page.
  • Three key types: Plugin (auto-minted per Server, locked to 12 plugin actions), Bot (platform-managed), Custom (user-created on Standard / Pro plans, freely composed from 5 groups or individual actions).
  • API Keys dashboard redesigned: type badge, permission pills, group picker with Advanced action-level toggles.
  • Denied calls return 403 PERMISSION_DENIED with the offending action name in the body.
  • Permission changes apply on the next request — no propagation delay.

v3.6.0 — May 2026

  • Public docs site at docs.simplelinks.cc.
  • API Keys page redesigned: one key per Server, no manual create / delete, Regenerate kept.
  • Inline reference for all 32 actions with cURL examples.

v3.5.0 — May 2026

  • Custom Domain support (Standard / Pro) — bring your own subdomain with automatic SSL.
  • Custom CSS editor in dashboard (Pro).
  • 7 new design-system classes (badges, tier-lock, code-block, code-editor, upgrade-prompt, form-display, verify-status).

v3.0.0 — Apr 2026

  • Initial multi-tenant rewrite — served globally from the edge with sub-30ms cold start.
  • Org → Guild → Server hierarchy.
  • 32 plugin actions ported from legacy v2 with response-shape compatibility.