diff --git a/content/en/releases/5_2_0.md b/content/en/releases/5_2_0.md
new file mode 100644
index 000000000..1ac9b62e9
--- /dev/null
+++ b/content/en/releases/5_2_0.md
@@ -0,0 +1,265 @@
+
+---
+title: "5.2.0 release notes"
+linkTitle: "5.2.0"
+sidebar:
+ exclude: true
+description:
+ Released 2026-06-26
+---
+
+## Highlights
+
+### Collapsable contact summaries
+
+Previously, the content fields for [contact summary condition cards](/building/contact-summary/contact-summary-templated/#condition-cards) were always visible to the user. Now, the body of the contact summary cards can be collapsed or expanded by tapping their headers. This reduces vertical scrolling for content-heavy cards like stock monitoring and immunizations. App developers can control the default state by configuring a property for the card.
+
+#### Demo Video
+
+
+
+### Tab customizations
+
+While the CHT has supported [hiding certain tabs](https://forum.communityhealthtoolkit.org/t/is-it-possible-to-hide-certain-tabs/601/2?u=mrjones) in the user interface, it has been impossible to set a new default tab or change the order of the visible tabs. CHT 5.2 enables deployments to customize the order and choose which tab a CHW sees when they first open their app. See [the config documentation](/building/reference/app-settings/header_tabs) for more details.
+
+
+### UI Extensions
+
+App developers can now build [configurable pages](https://forum.communityhealthtoolkit.org/t/the-ui-evolution-of-the-cht/3515/8) in the CHT application! UI extensions are [web components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) maintained and deployed as part of the CHT configuration code. They provide users with custom content ranging from static reference pages to interactive mini-apps. UI extensions can read/create/update data for contacts, reports, etc via stable apis. See the [docs](/building/reference/ui-extensions) for more info.
+
+[//]: # ( mrjones says: appologies for the crass amount of HTML - we should likely templatize the ability )
+[//]: # ( to put videos in cards if we use this going forward.)
+
+ {{< card image="../images/5_2_0_UI_extensions.png" title="New \"Help\" tab on bottom of screen, main page shows custom UI Extension help content" >}}
+
+
+
+
+
+
+
+### Search Field in Tasks UI
+
+During the [Smart Task Prioritization squad](https://github.com/medic/cht-roadmap/issues/191), it became clear CHWs managing large numbers of tasks would benefit significantly from a free-text search feature to quickly locate tasks. The search works instantly and offline - eliminating the need to scroll through long lists. Check out [the ticket](https://github.com/medic/cht-core/issues/10694) for more info.
+
+#### Demo Video
+
+
+
+### Identify users with replication failures
+
+Large-scale CHT deployments are serving ever-increasing numbers of users. With 20,000+ active users on some instances and 80,000+ users across multiple instances in national deployments, monitoring system health is critical.
+
+Users configured to sync more than 10,000 documents can experience replication failures that impact both their own device performance _and_ the overall server response time for all users. Previously, identifying these problematic users required manual investigation and API queries.
+
+CHT 5.2.0 introduces two new API endpoints that make it easy to identify users who have had replication failures or who have not successfully replicated within a configurable time interval. Administrators can now proactively identify and address users with excessive document loads, ensuring healthy synchronization for the entire deployment.
+
+- `/api/v1/replication-failure-logs` - [Docs](https://docs.communityhealthtoolkit.org/building/reference/api/#/User/v1ReplicationFailureLogsGet) [#10794](https://github.com/medic/cht-core/issues/10794)
+- `/api/v1/replication-health/failed` - [Docs](https://docs.communityhealthtoolkit.org/building/reference/api/#/User/v1ReplicationHealthFailedGet) [#11146](https://github.com/medic/cht-core/issues/11146)
+
+See also: [Monitoring user replication status](https://forum.communityhealthtoolkit.org/t/cpu-impacts-of-users-with-10k-documents-how-to-fix-them/5413)
+
+### Upgrade to CouchDB 3.5.2
+
+The new CHT version includes CouchDB `3.5.2`, which brings a ~60% performance improvement for Nouveau indexing - the technology which powers the CHT replication algorithm and online full-text searches. This upgrade also [fixes an issue](https://github.com/medic/cht-core/issues/11153) causing search timeouts. See [the ticket](https://github.com/medic/cht-core/issues/11080) for more details.
+
+### New REST apis for persons, places, and reports
+
+New REST apis have been added to the CHT server for creating and updating persons, places, and reports ([#9835](https://github.com/medic/cht-core/issues/9835)). These can be used by scripts or 3rd-party integrations to interact with the CHT data model. See our newly enhanced [API reference documentation](https://docs.communityhealthtoolkit.org/building/reference/api/) for more details!
+
+## Known issues
+
+Check the repository for the [latest known issues](https://github.com/medic/cht-core/issues?q=is%3Aissue+label%3A%22Affects%3A+5.2.0%22).
+
+## Upgrade notes
+
+### Breaking changes
+
+None.
+
+### UI/UX changes
+
+- [#10240](https://github.com/medic/cht-core/issues/10240): Add the option to hide target counts past the goal
+- [#10569](https://github.com/medic/cht-core/issues/10569): Indicate the number of households in a hierarchy
+- [#10694](https://github.com/medic/cht-core/issues/10694): Implement free text search feature in tasks page
+- [#10766](https://github.com/medic/cht-core/issues/10766): Support collapsing contact-summary cards
+- [#9834](https://github.com/medic/cht-core/issues/9834): Make login page responsive to LTR <-> RTL switching
+
+## And more...
+
+### Features
+
+- [#10224](https://github.com/medic/cht-core/issues/10224): Support custom UI Extensions
+- [#10240](https://github.com/medic/cht-core/issues/10240): Add the option to hide target counts past the goal
+- [#10438](https://github.com/medic/cht-core/issues/10438): Add telemetry for how many tasks the users see
+- [#10508](https://github.com/medic/cht-core/issues/10508): Serialize lists of primitive values returned from External Apps as space-delimited strings
+- [#10569](https://github.com/medic/cht-core/issues/10569): Indicate the number of households in a hierarchy
+- [#10694](https://github.com/medic/cht-core/issues/10694): Implement free text search feature in tasks page
+- [#10794](https://github.com/medic/cht-core/issues/10794): Implement failed user replication tracking
+- [#10810](https://github.com/medic/cht-core/issues/10810): Support calling extension-libs from form expressions
+- [#11146](https://github.com/medic/cht-core/issues/11146): Add API endpoint that returns which users have no replication successes within an interval
+- [#7005](https://github.com/medic/cht-core/issues/7005): Use OpenAPI to document endpoints
+- [#9339](https://github.com/medic/cht-core/issues/9339): Phone Widget display formatted phone number value
+
+### Improvements
+
+- [#10217](https://github.com/medic/cht-core/issues/10217): Record telemetry for External Android App calls
+- [#10695](https://github.com/medic/cht-core/issues/10695): Implement telemetry to track task selection duration
+- [#10766](https://github.com/medic/cht-core/issues/10766): Support collapsing contact-summary cards
+- [#10846](https://github.com/medic/cht-core/issues/10846): Allow configuring phone number display format in outgoing SMS messages (strip country code)
+- [#10862](https://github.com/medic/cht-core/issues/10862): Don't run database compaction on every version upgrade
+- [#10987](https://github.com/medic/cht-core/issues/10987): Login password visibility icon does not update after toggling
+- [#11071](https://github.com/medic/cht-core/issues/11071): Add monitoring data about users who fail to replicate
+- [#11196](https://github.com/medic/cht-core/issues/11196): Wrong translation in nepali for unsupported safari browser
+- [#4543](https://github.com/medic/cht-core/issues/4543): Marking inputs field's appearance as 'hidden' in person-create form generates empty pages
+- [#7948](https://github.com/medic/cht-core/issues/7948): Improve misconfigured "registration" transition error message
+- [#8226](https://github.com/medic/cht-core/issues/8226): Do not display a form page when all the contents are "hidden"
+- [#8816](https://github.com/medic/cht-core/issues/8816): Fragile text search can invalidate CouchDb admins on container restart
+- [#9834](https://github.com/medic/cht-core/issues/9834): Make login page responsive to LTR <-> RTL switching
+- [#9835](https://github.com/medic/cht-core/issues/9835): Add cht-datasource APIs for creation and update of contacts and reports
+
+### Security fixes
+
+- [#10209](https://github.com/medic/cht-core/issues/10209): Protect against XXE attack
+- [#10520](https://github.com/medic/cht-core/issues/10520): Remove dependency of on disk GH token for release notes
+- [#10559](https://github.com/medic/cht-core/issues/10559): Implement static analysis of github CI to check for security vulnerabilities
+- [#11075](https://github.com/medic/cht-core/issues/11075): Bump nginx to 1.31
+- [#11112](https://github.com/medic/cht-core/issues/11112): Bump nginx to 1.31.1
+- [#6571](https://github.com/medic/cht-core/issues/6571): Detect logged passwords and errors
+
+### Performance improvements
+
+- [#11080](https://github.com/medic/cht-core/issues/11080): Upgrade to CouchDB 3.5.2
+
+### Bug fixes
+
+- [#10341](https://github.com/medic/cht-core/issues/10341): Deleting roles does not result in users with those roles losing permission
+- [#10357](https://github.com/medic/cht-core/issues/10357): debug level messages printed on production instances
+- [#10661](https://github.com/medic/cht-core/issues/10661): Race condition in loading contact summary
+- [#10679](https://github.com/medic/cht-core/issues/10679): Geolocation acquisition timeout blocks submitting forms
+- [#10712](https://github.com/medic/cht-core/issues/10712): ContactChangeFilterService.isRelevantChange uses ?? instead of ||, making isRelevantContact and isRelevantReport dead code
+- [#10751](https://github.com/medic/cht-core/issues/10751): Duplicate phone number validation broken when using ""
+- [#10754](https://github.com/medic/cht-core/issues/10754): Cookies not being sent with `secure: true`
+- [#10802](https://github.com/medic/cht-core/issues/10802): Message getting sent to pending state even after it is sent.
+- [#10815](https://github.com/medic/cht-core/issues/10815): Existing helm chart fails after recent changes on helm chart
+- [#10852](https://github.com/medic/cht-core/issues/10852): accept_patient_reports can throw an error if configuration is missing the `messages` property
+- [#10879](https://github.com/medic/cht-core/issues/10879): Unsupported browser warning not shown on About page
+- [#10912](https://github.com/medic/cht-core/issues/10912): Authorization context drops duplicate replication-key matches because `Set.add()` only adds one id
+- [#11153](https://github.com/medic/cht-core/issues/11153): Nouveau requests timeout after 30 seconds
+- [#11154](https://github.com/medic/cht-core/issues/11154): Bump bikram-sambat to 1.8.1
+- [#11198](https://github.com/medic/cht-core/issues/11198): API fails to initialize after Node 22.23 release
+- [#8974](https://github.com/medic/cht-core/issues/8974): Form `end` meta field not correctly populated when the form ends
+
+### Technical improvements
+
+- [#10029](https://github.com/medic/cht-core/issues/10029): Upgrade to Angular 20
+- [#10113](https://github.com/medic/cht-core/issues/10113): Flaky test: CI compile fails due to rate limiting when downloading shellcheck
+- [#10144](https://github.com/medic/cht-core/issues/10144): Extract common patterns from CouchDB helm charts templates into reusable helper templates
+- [#10174](https://github.com/medic/cht-core/issues/10174): Cleanup workflow fails for all contributors with forked repositories
+- [#10302](https://github.com/medic/cht-core/issues/10302): Remove app management configure targets page
+- [#10378](https://github.com/medic/cht-core/issues/10378): Switch to UUID v7 everywhere
+- [#10416](https://github.com/medic/cht-core/issues/10416): Warning: patch-package detected a patch file version mismatch
+- [#10495](https://github.com/medic/cht-core/issues/10495): Flaky integration test: monitoring v1 should return empty values for empty db:
+- [#10498](https://github.com/medic/cht-core/issues/10498): Multiple e2e workflow tests are failing due to feedback documents being generated
+- [#10538](https://github.com/medic/cht-core/issues/10538): Add constant for 'privacy-policies' document ID
+- [#10539](https://github.com/medic/cht-core/issues/10539): Add constant for 'branding' document ID
+- [#10540](https://github.com/medic/cht-core/issues/10540): Add constant for 'partners' document ID
+- [#10541](https://github.com/medic/cht-core/issues/10541): Add constants for 'target-aggregates', 'migration-log', 'extension-libs', and 'zscore-charts' document IDs
+- [#10542](https://github.com/medic/cht-core/issues/10542): Add constant for 'data_record' document type
+- [#10544](https://github.com/medic/cht-core/issues/10544): Add constant for 'clinic' document type
+- [#10546](https://github.com/medic/cht-core/issues/10546): Add constant for 'district_hospital' document type
+- [#10550](https://github.com/medic/cht-core/issues/10550): Add constants for HTTP headers (e.g., common header names beyond `REQUEST_ID`)
+- [#10551](https://github.com/medic/cht-core/issues/10551): Add constants for user roles (e.g., common role strings beyond `ONLINE`)
+- [#10552](https://github.com/medic/cht-core/issues/10552): Add constants for Sentinel metadata (e.g., additional local document IDs)
+- [#10553](https://github.com/medic/cht-core/issues/10553): Add constants for common prefixes or patterns (e.g., `org.couchdb.user:`, `messages-` for translations)
+- [#10564](https://github.com/medic/cht-core/issues/10564): Flaky e2e test: User with contact should quit training in modal, and be able to complete it later in the Training Material page, verify completed trainings display in the list
+- [#10606](https://github.com/medic/cht-core/issues/10606): Switch minimum browser version for e2e tests from 90 to 107
+- [#10613](https://github.com/medic/cht-core/issues/10613): Hide dependabot commits when running release notes script
+- [#10653](https://github.com/medic/cht-core/issues/10653): Add frontend performance benchmarking suite
+- [#10702](https://github.com/medic/cht-core/issues/10702): release notes script: Exclude "chore" type, update readme
+- [#10704](https://github.com/medic/cht-core/issues/10704): Add e2e test that checks repeat fields are saved
+- [#10729](https://github.com/medic/cht-core/issues/10729): Fix bugs and typos in smsparser.js and related files
+- [#10780](https://github.com/medic/cht-core/issues/10780): Flaky e2e test: meta db replication should replicate meta db up
+- [#10813](https://github.com/medic/cht-core/issues/10813): Flaky integration test db-doc handler restricts offline users GET attachment:
+- [#10858](https://github.com/medic/cht-core/issues/10858): Flaky wdio test: should reply to an existing message and add a new recipient - raw phone number
+- [#10870](https://github.com/medic/cht-core/issues/10870): Add automated test to validate shared-libs testing script
+- [#10871](https://github.com/medic/cht-core/issues/10871): Flaky api integration test: Import Records JSON parses and stores the passed JSON:
+- [#10872](https://github.com/medic/cht-core/issues/10872): Flaky api integration test: auditing api db should only store 10 history entries
+- [#10873](https://github.com/medic/cht-core/issues/10873): Flaky api integration test: server DNS resolver nginx should resolve updated api ips
+- [#10878](https://github.com/medic/cht-core/issues/10878): Switching pages too quickly can throw errors in the contacts detail page
+- [#10881](https://github.com/medic/cht-core/issues/10881): Flaky wdio test: Tasks group landing page should open task from the same group
+- [#10882](https://github.com/medic/cht-core/issues/10882): Migrate small Angular templates from structural directives to built-in control flow
+- [#10883](https://github.com/medic/cht-core/issues/10883): Replace `any` types with proper interfaces in small service files
+- [#10891](https://github.com/medic/cht-core/issues/10891): Implement GHA concurrency
+- [#10892](https://github.com/medic/cht-core/issues/10892): Break down `ci-webdriver-default-workflows` in two separate actions
+- [#10931](https://github.com/medic/cht-core/issues/10931): Storage progress bar has broken aria-label binding and hardcoded English text
+- [#10944](https://github.com/medic/cht-core/issues/10944): updateMessageTaskStates crashes when allDocs returns rows without doc
+- [#10985](https://github.com/medic/cht-core/issues/10985): Nouveau query escaping misses documented special characters
+- [#11099](https://github.com/medic/cht-core/issues/11099): CI failing when pushing to ECR: maximum allowed number of tags per image which is '1000'
+- [#11118](https://github.com/medic/cht-core/issues/11118): Routing test fails for feature release branches
+- [#11179](https://github.com/medic/cht-core/issues/11179): Flaky e2e test: create-user-for-contacts.create-user.wdio-spec.js
+- [#11181](https://github.com/medic/cht-core/issues/11181): Release notes script failing: Cannot read properties of null
+- [#11182](https://github.com/medic/cht-core/issues/11182): Loading webapp without a valid user cookie logs an error
+- [#11191](https://github.com/medic/cht-core/issues/11191): Flaky integration test: mark_for_outbound error logging logs an error if the server cannot be found:
+- [#11204](https://github.com/medic/cht-core/issues/11204): Flaky integration test: should find existing outbound tasks and execute them, leaving them if the send was unsuccessful
+- [#11207](https://github.com/medic/cht-core/issues/11207): Run cht-conf integration tests in isolation
+- [#5936](https://github.com/medic/cht-core/issues/5936): Record test coverage
+- [#8758](https://github.com/medic/cht-core/issues/8758): Test report creation using SMS in default config
+- [#8799](https://github.com/medic/cht-core/issues/8799): Shared libs unit test failures are a chore to debug
+- [#9491](https://github.com/medic/cht-core/issues/9491): e2e tests should fail gracefully if the ports are not available (or find a new port)
+- [#9492](https://github.com/medic/cht-core/issues/9492): Webapp unit tests have very noisy logs
+- [#9927](https://github.com/medic/cht-core/issues/9927): Targets widgets
+
+
+
+## Contributors
+
+Thanks to all who committed changes for this release!
+
+- [mrjones](https://github.com/mrjones-plip)
+- [Joshua Kuestersteffen](https://github.com/jkuester)
+- [Diana Barsan](https://github.com/dianabarsan)
+- [Anurag Yadav](https://github.com/anurag2787)
+- [Sugat Bajracharya](https://github.com/sugat009)
+- [Apoorva Pendse](https://github.com/apoorvapendse)
+- [paulpascal](https://github.com/paulpascal)
+- [Sai Krishna Reddy](https://github.com/saikrishna488)
+- [Pratik Nadgouda](https://github.com/Carbonautics)
+- [Shivam Chaudhary](https://github.com/sh1vam31)
+- [Aravind](https://github.com/gmarav05)
+- [Megha](https://github.com/megha1807)
+- [Sneha Chaurasia](https://github.com/SnehaChaursia)
+- [Amir Saudagar](https://github.com/AmirSaudagar55)
+- [Vikrant](https://github.com/vikrantwiz02)
+- [1yuv](https://github.com/1yuv)
+- [Binod Adhikary](https://github.com/binokaryg)
+- [santhosh teja piridi](https://github.com/santhosh-7777)
+- [Harshit](https://github.com/blenbot)
+- [Yash Sharma](https://github.com/YASHSHARMAOFFICIALLY)
+- [Clifton McIntosh](https://github.com/cliftonmcintosh)
+- [Asish Kumar](https://github.com/officialasishkumar)
+- [Claude](https://github.com/claude)
+- [witash](https://github.com/witash)
+- [Andra Blaj](https://github.com/andrablaj)
+- [Abhishek](https://github.com/Abhishek9639)
+- [Original Gary](https://github.com/OriginalGary)
+- [Trevin Chow](https://github.com/tmchow)
+- [Shashi sah](https://github.com/shashi-sah2003)
+- [Manish Nemade](https://github.com/Manishnemade12)
+- [Saurabh Singh](https://github.com/saurabh12nxf)
+- [rovertrack](https://github.com/rovertrack)
diff --git a/content/en/releases/_index.md b/content/en/releases/_index.md
index 9ded38130..3f1fb6f7e 100644
--- a/content/en/releases/_index.md
+++ b/content/en/releases/_index.md
@@ -22,7 +22,8 @@ It is recommended that all projects update regularly multiple times a year to ge
| Version | Status | Release date | End of life |
|---------|-----------|--------------|-------------|
-| 5.1.x | Supported | 26-Feb-2026 | TBA |
+| 5.2.x | Supported | 26-Jun-2026 | TBA |
+| 5.1.x | Supported | 26-Feb-2026 | 26-Sep-2026 |
| 5.0.x | EOL | 20-Nov-2025 | 26-May-2026 |
| 4.22.x | Supported | 10-Oct-2025 | 20-Nov-2026 |
| 4.21.x | EOL | 25-Jun-2025 | 10-Jan-2026 |
@@ -92,6 +93,7 @@ Devices with more navigation systems are more likely to get a more accurate loca
## Release Notes
### 5.x
+- [5.2.0](/releases/5_2_0) - 2026-06-26
- [5.1.3](/releases/5_1_3) - 2026-06-05
- [5.1.2](/releases/5_1_2) - 2026-04-30
- [5.1.1](/releases/5_1_1) - 2026-04-08
diff --git a/content/en/releases/images/5_2_0_UI_extensions.png b/content/en/releases/images/5_2_0_UI_extensions.png
new file mode 100644
index 000000000..d3c2c25ef
Binary files /dev/null and b/content/en/releases/images/5_2_0_UI_extensions.png differ
diff --git a/content/en/releases/videos/CHT5.2.demo.collapsable.sections.mp4 b/content/en/releases/videos/CHT5.2.demo.collapsable.sections.mp4
new file mode 100644
index 000000000..871eef148
Binary files /dev/null and b/content/en/releases/videos/CHT5.2.demo.collapsable.sections.mp4 differ
diff --git a/content/en/releases/videos/CHT5.2.demo.collapsable.sections.png b/content/en/releases/videos/CHT5.2.demo.collapsable.sections.png
new file mode 100644
index 000000000..be9eff306
Binary files /dev/null and b/content/en/releases/videos/CHT5.2.demo.collapsable.sections.png differ
diff --git a/content/en/releases/videos/CHT5.2.demo.task.search.mp4 b/content/en/releases/videos/CHT5.2.demo.task.search.mp4
new file mode 100644
index 000000000..db906c6f8
Binary files /dev/null and b/content/en/releases/videos/CHT5.2.demo.task.search.mp4 differ
diff --git a/content/en/releases/videos/CHT5.2.demo.task.search.png b/content/en/releases/videos/CHT5.2.demo.task.search.png
new file mode 100644
index 000000000..e6aed2e17
Binary files /dev/null and b/content/en/releases/videos/CHT5.2.demo.task.search.png differ
diff --git a/content/en/releases/videos/CHT5.2.demo.ui.extensions.mp4 b/content/en/releases/videos/CHT5.2.demo.ui.extensions.mp4
new file mode 100644
index 000000000..18703a9d8
Binary files /dev/null and b/content/en/releases/videos/CHT5.2.demo.ui.extensions.mp4 differ
diff --git a/content/en/releases/videos/CHT5.2.demo.ui.extensions.png b/content/en/releases/videos/CHT5.2.demo.ui.extensions.png
new file mode 100644
index 000000000..bc3e5a341
Binary files /dev/null and b/content/en/releases/videos/CHT5.2.demo.ui.extensions.png differ