v2.0.0
twentyhq/twentyv2.0.0Apr 21, 2026by Weiko
AI Summary
This major release launches the new website, moves admin panel to a dedicated GraphQL endpoint, and standardizes AI acronym to "Ai". It also requires PKCE for OAuth clients and aligns OAuth discovery with MCP/RFC 9728 spec.
Key Highlights
- New website launch with articles section
- Admin panel moved to /admin-panel GraphQL endpoint
- AI acronym standardized to "Ai" (PascalCase)
- PKCE required for public OAuth clients
- OAuth discovery aligned with MCP/RFC 9728
Breaking Changes
- PKCE code_challenge required for public OAuth clients
- AI terminology change to "Ai"
New Features
- New website with articles
- Admin panel GraphQL endpoint
- PKCE OAuth requirement
- MCP/RFC 9728 OAuth alignment
- ViewSorts in app manifests
- Hero 2.0 design
Full Release Notes
## What's Changed * Fix app design 4 by @martmull in https://github.com/twentyhq/twenty/pull/19803 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19805 * Fix indexFieldMetadata select missing workspaceId by @Weiko in https://github.com/twentyhq/twenty/pull/19806 * Add SVG export and refine halftone studio controls by @Bonapara in https://github.com/twentyhq/twenty/pull/19813 * Fix deactivated tabs not visible in new tab action by @Weiko in https://github.com/twentyhq/twenty/pull/19811 * fix: socket.io allows an unbounded number of binary attachments by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19812 * Twenty for twenty app by @bosiraphael in https://github.com/twentyhq/twenty/pull/19804 * Disable reset to default when custom tab or widget by @Weiko in https://github.com/twentyhq/twenty/pull/19814 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19817 * Add reset page layout in record page layout edit mode tab by @Weiko in https://github.com/twentyhq/twenty/pull/19800 * Add twenty-managed Docker target with AWS CLI for EKS deployments by @neo773 in https://github.com/twentyhq/twenty/pull/19816 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19819 * Add page layout tab icon picker by @Weiko in https://github.com/twentyhq/twenty/pull/19818 * Fix app design 5 by @martmull in https://github.com/twentyhq/twenty/pull/19820 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19821 * fix(server): normalize empty composite phone sub-fields to NULL by @NathanDrake2406 in https://github.com/twentyhq/twenty/pull/19775 * fix(server): make `workspace:seed:dev --light` actually seed only one workspace by @charlesBochet in https://github.com/twentyhq/twenty/pull/19822 * fix(server): log inner errors of WorkspaceMigrationRunnerException in workspace iterator by @charlesBochet in https://github.com/twentyhq/twenty/pull/19823 * chore(server): bump logic-function executor lambda memory to 512MB by @charlesBochet in https://github.com/twentyhq/twenty/pull/19826 * fix(server): skip standard page layout widgets referencing missing field metadatas during 1.23 backfill by @charlesBochet in https://github.com/twentyhq/twenty/pull/19825 * fix(server): honor X-Forwarded-* via configurable trust proxy by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19824 * chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19828 * fix oauth permission check by @neo773 in https://github.com/twentyhq/twenty/pull/19829 * perf(server): reuse ESM module cache across warm Lambda invocations of logic functions by @charlesBochet in https://github.com/twentyhq/twenty/pull/19830 * fix(server): deliver user-scoped metadata events only to the owning user by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19832 * perf(sdk): split twenty-sdk barrel into per-purpose subpaths to cut logic-function bundle ~700x by @charlesBochet in https://github.com/twentyhq/twenty/pull/19834 * Bump twenty-sdk, twenty-client-sdk, create-twenty-app to 1.23.0-canary.1 by @charlesBochet in https://github.com/twentyhq/twenty/pull/19841 * refactor(server): rename Agent exception to Ai; add THREAD_NOT_FOUND / MESSAGE_NOT_FOUND codes (fixes 500s) by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19831 * chore: remove draft email feature flag by @neo773 in https://github.com/twentyhq/twenty/pull/19842 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19843 * fix(server): require PKCE code_challenge for public OAuth clients by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19840 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19844 * fix(server): align OAuth discovery metadata with MCP / RFC 9728 spec by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19838 * fix(server): expose WWW-Authenticate header for browser-based MCP clients by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19836 * Hero 2.0 by @Bonapara in https://github.com/twentyhq/twenty/pull/19846 * [Website] Fix testimonials shape, diamond direction, and integrate partner application form. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19835 * fix: correct sSOService → ssoService camelCase typo by @avasis-ai in https://github.com/twentyhq/twenty/pull/19845 * refactor: standardize AI acronym to Ai (PascalCase) across internal identifiers by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19837 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19851 * feat: move admin panel to dedicated /admin-panel GraphQL endpoint by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19852 * chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19866 * Partners, customers and more by @Bonapara in https://github.com/twentyhq/twenty/pull/19862 * fix(server): add registration_client_uri to DCR response for Claude.ai connector by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19858 * Fix app design 6 by @martmull in https://github.com/twentyhq/twenty/pull/19827 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19869 * Billing - fixes by @etiennejouan in https://github.com/twentyhq/twenty/pull/19867 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19873 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19874 * fix(front): suppress full-page skeleton inside auth modal by @charlesBochet in https://github.com/twentyhq/twenty/pull/19875 * fix: prototype pollution via parse in nodejs flatted by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19870 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19880 * fix(front): gate renewToken Apollo logger on IS_DEBUG_MODE by @charlesBochet in https://github.com/twentyhq/twenty/pull/19878 * feat(sdk): support viewSorts in app manifests by @charlesBochet in https://github.com/twentyhq/twenty/pull/19881 * fix 1.22 upgrade command add-workspace-id-to-indirect-entities by @neo773 in https://github.com/twentyhq/twenty/pull/19868 * Bump twenty-sdk, twenty-client-sdk, create-twenty-app to 1.23.0-canary.9 by @charlesBochet in https://github.com/twentyhq/twenty/pull/19883 * Redesign why-twenty page with three-section narrative by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19882 * Billing - Adapt to new unit by @etiennejouan in https://github.com/twentyhq/twenty/pull/19886 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19888 * fix(ui): make CardPicker hover cover the whole card and align content left by @charlesBochet in https://github.com/twentyhq/twenty/pull/19884 * Website - Plan pricing update by @etiennejouan in https://github.com/twentyhq/twenty/pull/19887 * Cleanup files that were committed with website PR, but should not be there. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19891 * Fix applications query cartesian product causing read timeouts by @charlesBochet in https://github.com/twentyhq/twenty/pull/19892 * Translate standard page layouts by @Weiko in https://github.com/twentyhq/twenty/pull/19890 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19893 * [Website] Self-host billing migration and some responsiveness fixes. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19894 * fix(server): scope loadingMessage wrap/strip to AI-chat callers by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19896 * feat(infra): add Dockerfile for twenty-website-new by @charlesBochet in https://github.com/twentyhq/twenty/pull/19901 * Fix Apps UI: replace 'Managed' label with actual app name and unify app icons by @charlesBochet in https://github.com/twentyhq/twenty/pull/19897 * fix(infra): copy nx.json and tsconfig.base.json into website-new image by @charlesBochet in https://github.com/twentyhq/twenty/pull/19902 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19903 * chore(workflow): temporarily lift credit-cap gate on workflow steps by @charlesBochet in https://github.com/twentyhq/twenty/pull/19904 * fix(website-new): pre-resolve wyw-in-js babel presets to absolute paths by @charlesBochet in https://github.com/twentyhq/twenty/pull/19905 * Fix activity relation picker by @Weiko in https://github.com/twentyhq/twenty/pull/19898 * Release v1.23.0 for twenty-sdk, twenty-client-sdk, and create-twenty-app by @charlesBochet in https://github.com/twentyhq/twenty/pull/19906 * chore(server): bump current version to 2.0.0 and add 2.1.0 as next by @charlesBochet in https://github.com/twentyhq/twenty/pull/19907 * docs: use twenty-sdk/define subpath in docs and website demo by @charlesBochet in https://github.com/twentyhq/twenty/pull/19908 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19909 * Release v2.0.0 for twenty-sdk, twenty-client-sdk, and create-twenty-app by @charlesBochet in https://github.com/twentyhq/twenty/pull/19910 * Website last fixes by @Bonapara in https://github.com/twentyhq/twenty/pull/19895 * fix: pricing card cutoff on website by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19913 * feat(website-new): add robots.txt, sitemap.xml and legacy redirects by @charlesBochet in https://github.com/twentyhq/twenty/pull/19911 * fix(settings): force display "Standard" and "Custom" for app chips by @charlesBochet in https://github.com/twentyhq/twenty/pull/19912 ## New Contributors * @NathanDrake2406 made their first contribution in https://github.com/twentyhq/twenty/pull/19775 * @avasis-ai made their first contribution in https://github.com/twentyhq/twenty/pull/19845 **Full Changelog**: https://github.com/twentyhq/twenty/compare/v1.23.0...v2.0.0