Changelog· Authexis

Changelog

All notable changes to Authexis are documented here.

Format

Format follows Keep a Changelog. Versions appear newest-first. Each entry links to the GitHub issue that shipped it where available.

Unreleased

changed Landing page & GTM

  • Landing page reshaped for the Phase 1 GTM ("solo-thought-leader-first"): new outcome-first hero ("Your ideas, in your voice, published consistently. Without the grind."), all primary CTAs unified to "Start writing", and Who it's for rebuilt from 2 cards to 3 (Solo primary, Marketing consultants + Internal marketing teams as a secondary row). Tagline at the bottom CTA and pricing strip unchanged (#2338, parent #2220).
  • SMS provider migrated from Brevo to Twilio for outbound notifications (#2278). Twilio's Messaging API replaces Brevo's transactional SMS; sender resolution prefers TWILIO_MESSAGING_SERVICE_SID and falls back to TWILIO_FROM_PHONE. Real sends remain gated by SMS_SENDING_ENABLED until A2P 10DLC approval lands on the Twilio account. Privacy disclosure updated; Brevo is no longer listed as the SMS sub-processor.

added API & MCP surface

  • GET /api/v1/workspace and GET /api/v1/workspace/members -- first read endpoints on the public /api/v1 surface. Returns safe workspace profile fields (id, name, slug, plan, created_at) and active members (user_id, role, joined_at, is_active). Auth: ax_k_ bearer with workspace:read scope, or session JWT. Explicitly omits Stripe identifiers, feed/calendar tokens, owner IDs, and any internal preferences. New workspace:read scope is opt-in on API key generation (#2421, part of #2368).
  • Settings > API key generation now offers an opt-in voice:draft scope checkbox, letting users mint API keys that grant external MCP callers permission to draft text in the workspace's voice (#2335).
  • Settings > API shows a read-only MCP draft history for the latest voice drafts generated by connected MCP clients (#2337).
  • MCP adapt_for_platform tool adapts text for linkedin, bluesky, newsletter, or blog with scope-gated, rate-limited, humanized output logged to mcp_draft_log. MCP get_mcp_draft tool retrieves a previously generated draft by ID, scoped to the workspace (#2336).
  • MCP draft_in_voice tool generates scope-gated, rate-limited, humanized workspace-voice drafts and logs them to mcp_draft_log (#2332).
  • MCP get_voice_profile tool returns structured workspace voice profile fields for voice-aware clients (#2333).
  • Inbound ideas API -- POST /api/v2/ideas/ingest (#2053).
  • llms.txt at authexis.app/llms.txt for AI discoverability (#2054).

added SEO & marketing pages

  • /for-consultants pillar page -- first ICP-targeted SEO pillar in the SEO.md target-pages list. Primary keyword "content workflow for marketing consultants" in title, description, H1, and a dedicated H2; secondary keywords ("white-label content tool for marketing agency", "ghostwriter alternative for linkedin") each get their own H2 section. Multi-client positioning: one workspace per client, voice profile per client, ghostwriter-replacement economics ($40--67 per client vs $1,500--3,000 for a senior LinkedIn ghostwriter). Trial CTA carries ?ref=for-consultants (#2344).
  • /bloomberry-alternative comparison page -- P2 named-competitor SEO page targeting "bloomberry alternative." Frames interview-first capture (voice + POV from speech) against Bloomberry's style-cloning from written samples. Completes the named-competitor shortlist alongside Jasper, Copy.ai, and Pressmaster.ai (#2343).

added Content creation

  • Speaking-engagement prompt defaults for abstracts, speaker notes, pre-talk teasers, post-talk recaps, and social cuts, with seeded slug-keyed prompts and engine fallbacks (#2315).
  • Voice-analyzer signup mints a seeded interview-stage draft from the three voice-shaped prompts (#2292). Trial users land on the dashboard with "Your first interview" already in the queue, ready to answer.
  • PDF export for approved content -- server-rendered via Chromium (@sparticuz/chromium + puppeteer-core), downloadable from the distribution panel (#2298).

added Content repurposing

  • One-click repurpose: turn any finished piece into LinkedIn posts, social teasers, newsletter intros, and threads.
  • Adaptations panel on content detail with copy, edit, and send-to-queue actions.
  • Platform-aware queuing -- LinkedIn posts go to LinkedIn, social teasers offer platform picker.

added Newsletter channel

  • Generate newsletters from your recent published content.
  • Newsletter page in Distribute nav -- select articles, add optional title and guidance.
  • Export as HTML, markdown, or download for use in any email tool.
  • Branded email template matching Authexis design.

added Content series

  • Plan multi-week campaign arcs with the new Series feature.
  • Series management UI -- create, edit, reorder, track progress.
  • Link any content piece to a series from the content detail page.
  • Series badges and filters on the content list.
  • Series progress in daily briefings.

added Workspace templates

  • 8 pre-built voice profile templates covering thought leaders, consultants, and internal teams.
  • Template picker appears for new/unconfigured workspaces.
  • One click to pre-fill voice, tone, specialization, and focus areas.

added Other

  • WordPress blog publishing via REST API.
  • Stripe webhook handler test coverage (35 tests).
  • Image generation migrated from DALL-E 3 to gpt-image-1 (faster, half the cost).
  • Dashboard ideas are now clickable -- navigate to idea detail.
  • Three-audience positioning in PRODUCT.md (thought leaders, consultants, internal teams).

fixed Bug fixes

  • Revise mode field mapping -- direct edits no longer silently discarded (#2067).
  • Image upload auth -- Bearer token added to upload request (#2068).
  • Generated Supabase types replace SupabaseClient<any> (#2059).
  • React hooks exhaustive-deps suppressions properly fixed (#2058).
  • Rate limiting added to podcast generate and calendar reschedule endpoints (#2057).
  • 4 unprotected app routes added to middleware (#2061).
  • Removed unused rehype-raw dependency (#2055).
  • Removed dead rejected stage filter code (#2063).
  • Removed legacy website field fallback (#2064).
  • Cleaned up stale pipeline comment (#2060).
  • N+1 query in social metrics -- batched to 2 queries per platform instead of 2N.
  • Race condition in social post slot assignment -- database-level unique constraint.
  • App layout parallelized -- 3 sequential queries now run concurrently.
  • Onboarding email linked to non-existent /onboarding route (now links to /dashboard).
  • SSRF validation on click tracker and article URL fetcher.
  • Social queue no longer hardcoded to 200 posts -- lazy-loads with pagination.
  • Error context added to LinkedIn, Bluesky, Mastodon HTTP calls.
  • WordPress/GitHub publishers now surface API error responses.
  • Guard JSON.parse on interview_qa field update.

security Security

  • Inbound ideas API input sanitization (#2066).
  • IDOR fix on social-slots endpoint.
  • SSRF validation on web_scraper and page_scrape.

1.0.0 — 2026-01-28

Initial production release at authexis.app.