diff --git a/docs/download/76.md b/docs/download/76.md
index 93067029f8d2..7096db4453af 100644
--- a/docs/download/76.md
+++ b/docs/download/76.md
@@ -146,6 +146,23 @@ Note: There may be additional commits on the [maint/maint-76](https://github.com
## Known Issues
+* Some segmentation changes should have been made as part of the Unicode 16 integration,
+ but were delayed to ICU 77:
+ * Word break: Root tailoring of colon reverted, Swedish & Finnish tailorings removed
+ ([ICU-22941](https://unicode-org.atlassian.net/browse/ICU-22941))
+ ([ICU 77 PR #3249](https://github.com/unicode-org/icu/pull/3249))
+ * These tailorings were introduced in ICU 72, but feedback has been negative,
+ and the UTC declined to adopt these changes.
+ * Updated Indic grapheme clusters to use the latest `Indic_Conjunct_Break` data
+ ([ICU-22956](https://unicode-org.atlassian.net/browse/ICU-22956))
+ ([ICU 77 PR #3257](https://github.com/unicode-org/icu/pull/3257))
+* New APIs for colloquial C++ use of C USet ([ICU-22876](https://unicode-org.atlassian.net/browse/ICU-22876))
+ and C UCollator ([ICU-22879](https://unicode-org.atlassian.net/browse/ICU-22879))
+ * Some of the new APIs do not actually compile with `U_SHOW_CPLUSPLUS_API=0`.
+ They have been fixed in ICU 77 and thoroughly tested.
+ ([ICU-22954](https://unicode-org.atlassian.net/browse/ICU-22954))
+ * For details about these APIs and an example see the
+ [“C++ Header-Only APIs” section below](#migration-issues).
* One late CLDR 46 bug fix was accidentally omitted from ICU 46:
[CLDR-18002](https://unicode-org.atlassian.net/browse/CLDR-18002) Fix likely subtag inconsistency
([CLDR PR #4105](https://github.com/unicode-org/cldr/pull/4105))
@@ -193,6 +210,9 @@ These are C++ definitions that are not exported by the ICU DLLs/libraries,
are thus inlined into the calling code,
and which may call ICU C APIs but not into ICU non-header-only C++ APIs.
+Note: Some of these new APIs did not actually compile with `U_SHOW_CPLUSPLUS_API=0`.
+They have been fixed in [ICU 77](77.md) and thoroughly tested.
+
The header-only APIs are defined in a nested `header` namespace.
If entry point renaming is turned off (the main namespace is `icu` rather than `icu_76` etc.),
then the new `U_HEADER_ONLY_NAMESPACE` is `icu::header`.
@@ -261,4 +281,4 @@ ICU locale data was generated from CLDR data equivalent to:
icu4j
76.1
-```
\ No newline at end of file
+```
diff --git a/docs/download/77.md b/docs/download/77.md
new file mode 100644
index 000000000000..34f8d65d5078
--- /dev/null
+++ b/docs/download/77.md
@@ -0,0 +1,184 @@
+---
+layout: default
+title: ICU 77
+nav_order: 899
+has_children: false
+parent: Downloading ICU
+---
+
+
+
+# ICU 77
+
+ICU is the [premier library for software internationalization](https://icu.unicode.org/#h.i33fakvpjb7o),
+used by a [wide array of companies and organizations](https://icu.unicode.org/#h.f9qwubthqabj).
+
+## Not released yet!
+
+**ICU 77 is still under development.
+Once we have a release candidate, use it for testing, but do not use it in production!**
+
+## Release Overview
+
+* TODO -- below is old
+
+ICU 77 updates to
+[CLDR 47](https://cldr.unicode.org/downloads/cldr-47)
+(TODO: blog)
+locale data with new locales, and various additions and corrections.
+
+TODO: Highlights
+
+The Java technology preview implementation of the CLDR MessageFormat 2.0 specification has been updated to match the
+[CLDR 46.1 spec](https://www.unicode.org/reports/tr35/tr35-74/tr35-messageFormat.html).
+
+The C++ technology preview implementation of MessageFormat 2.0 is not yet quite up to date with CLDR 46.1.
+
+For more details, including migration issues, see below.
+
+Please use the [icu-support mailing list](https://icu.unicode.org/contacts) and/or [find/submit error reports](https://icu.unicode.org/bugs).
+
+### Version Number
+
+The initial release has library version number 77.1.
+
+* Release date: 2025-03-TODO
+ * [List of tickets fixed in ICU 77](https://unicode-org.atlassian.net/issues/?jql=project%20%3D%20ICU%20AND%20status%20%3D%20Done%20AND%20resolution%20in%20%28Fixed%2C%20%22Fixed%20by%20Other%20Ticket%22%29%20AND%20fixVersion%20%3D%2077.1%20ORDER%20BY%20component%20ASC%2C%20created%20DESC)
+
+If there are maintenance releases, they will be 77.2, 77.3, etc. (During ICU 77 development, the library version number was 77.0.x.)
+
+Note: There may be additional commits on the [maint/maint-77](https://github.com/unicode-org/icu/tree/maint/maint-77) branch that are not included in the prepackaged download files.
+
+## Common Changes
+
+* [CLDR 47](https://cldr.unicode.org/downloads/cldr-47)
+ (TODO: blog):
+ * No major data collection for existing locales; focus on bug fixes and structural improvements
+ * New regional variants: English in several European countries, and Cantonese in Macau (`yue_Hant_MO`)
+ * Improved RBNF (number spellout) and transliteration data
+* Subtle segmentation changes to make ICU fully conform to Unicode 16
+ * Word break: Root tailoring of colon reverted, Swedish & Finnish tailorings removed
+ ([ICU-22941](https://unicode-org.atlassian.net/browse/ICU-22941))
+ * These tailorings were introduced in ICU 72, but feedback has been negative,
+ and the UTC declined to adopt these changes.
+ * Updated Indic grapheme clusters to use the latest `Indic_Conjunct_Break` data
+ ([ICU-22956](https://unicode-org.atlassian.net/browse/ICU-22956))
+* Time zone data (tzdata) version 2025a (2025-jan).
+
+## ICU4C Specific Changes
+
+* [API changes since ICU4C 76 (Markdown)](https://github.com/unicode-org/icu/blob/maint/maint-77/icu4c/APIChangeReport.md) / [(HTML)](https://htmlpreview.github.io/?https://github.com/unicode-org/icu/blob/maint/maint-77/icu4c/APIChangeReport.html)
+ * New APIs for colloquial C++ use of C USet ([ICU-22876](https://unicode-org.atlassian.net/browse/ICU-22876))
+ and C UCollator ([ICU-22879](https://unicode-org.atlassian.net/browse/ICU-22879))
+ * These were added in ICU 76, but some of the new APIs did not actually compile with `U_SHOW_CPLUSPLUS_API=0`.
+ They have been fixed in ICU 77 and thoroughly tested.
+ USetElementIterator now returns std::u16string instead of icu::UnicodeString,
+ and therefore it and related APIs have been changed to `@draft ICU 77`.
+ ([ICU-22954](https://unicode-org.atlassian.net/browse/ICU-22954))
+ * For details about these APIs and an example see the
+ “C++ Header-Only APIs” section of the [ICU 76 Migration Issues](76.md#migration-issues).
+
+## ICU4J Specific Changes
+
+* [API Changes since ICU4J 76](https://htmlpreview.github.io/?https://github.com/unicode-org/icu/blob/maint/maint-77/icu4j/APIChangeReport.html)
+* The Java technology preview implementation of the CLDR MessageFormat 2.0 specification has been updated to match the
+ [CLDR 46.1 spec](https://www.unicode.org/reports/tr35/tr35-74/tr35-messageFormat.html).
+
+## Known Issues
+
+* TODO -- below is old
+* One late CLDR 46 bug fix was accidentally omitted from ICU 46:
+ [CLDR-18002](https://unicode-org.atlassian.net/browse/CLDR-18002) Fix likely subtag inconsistency
+ ([CLDR PR #4105](https://github.com/unicode-org/cldr/pull/4105))
+
+## Migration Issues
+
+* TODO -- below is old
+
+### C++ Header-Only APIs
+ICU 76 is the first version where we add what we call C++ header-only APIs.
+These are especially intended for users who rely on only binary stable DLL/library exports of C APIs
+(C++ APIs cannot be binary stable).
+
+_Please test these new APIs and let us know if you find problems —
+especially if you find a platform/compiler/options combination
+where the call site does end up calling into ICU DLL/library exports._
+
+Remember that regular C++ APIs can be hidden by callers defining `U_SHOW_CPLUSPLUS_API=0`.
+The new header-only APIs can be separately enabled via `U_SHOW_CPLUSPLUS_HEADER_API=1`.
+
+([GitHub query for `U_SHOW_CPLUSPLUS_HEADER_API` in public header files](https://github.com/search?q=repo%3Aunicode-org%2Ficu+U_SHOW_CPLUSPLUS_HEADER_API+path%3Aunicode%2F*.h&type=code))
+
+These are C++ definitions that are not exported by the ICU DLLs/libraries,
+are thus inlined into the calling code,
+and which may call ICU C APIs but not into ICU non-header-only C++ APIs.
+
+The header-only APIs are defined in a nested `header` namespace.
+If entry point renaming is turned off (the main namespace is `icu` rather than `icu_76` etc.),
+then the new `U_HEADER_ONLY_NAMESPACE` is `icu::header`.
+
+([Link to the API proposal which introduced this concept](https://docs.google.com/document/d/1xERVccTYsptzjfbjcj6HDtoKVF_mEKmslPsOiQzzaFg/view#heading=h.cf4bmhjgozry))
+
+For example, for iterating over the code point ranges in a `USet` (excluding the strings):
+
+```c++
+U_NAMESPACE_USE
+using U_HEADER_NESTED_NAMESPACE::USetRanges;
+LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴]", -1, &errorCode));
+for (auto [start, end] : USetRanges(uset.getAlias())) {
+ printf("uset.range U+%04lx..U+%04lx\n", (long)start, (long)end);
+}
+for (auto range : USetRanges(uset.getAlias())) {
+ for (UChar32 c : range) {
+ printf("uset.range.c U+%04lx\n", (long)c);
+ }
+}
+```
+
+(Implementation note: On most platforms, when compiling ICU itself,
+the `U_HEADER_ONLY_NAMESPACE` is `icu::internal`,
+so that any such symbols that get exported differ from the ones that calling code sees.
+On Windows, where DLL exports are explicit,
+the namespace is always the same, but these header-only APIs are not marked for export.)
+
+### Migration Issues Related to CLDR
+* See [CLDR 47 migration issues](https://cldr.unicode.org/downloads/cldr-47#migration)
+
+## ICU4C Platform Support
+
+ICU4C requires C++17 and has been tested with up to C++20.
+
+We routinely test on recent versions of Linux, macOS, and Windows.
+
+We accept patches for other platforms.
+
+Windows: The minimum supported version is Windows 7. (See [How To Build And Install On Windows](../userguide/icu4c/build.html#how-to-build-and-install-on-windows) for more details.)
+
+## ICU4J Platform Support
+
+ICU4J works on Java 8..21 (at least).
+
+ICU4J should work on Android API level 21 and later but may require “[library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring)”.
+
+## Download
+
+Source and binary downloads are available on the git/GitHub tag page:
+
+See the [Source Code Setup](../devsetup/source/) page for how to download the ICU file tree directly from GitHub.
+
+ICU locale data was generated from CLDR data equivalent to:
+
+*
+*
+
+[Maven dependency](https://central.sonatype.com/artifact/com.ibm.icu/icu4j):
+```
+
+ com.ibm.icu
+ icu4j
+ 77.1
+
+```
diff --git a/docs/processes/release/tasks/publish/index.md b/docs/processes/release/tasks/publish/index.md
index 70fac38e9360..1082094ace12 100644
--- a/docs/processes/release/tasks/publish/index.md
+++ b/docs/processes/release/tasks/publish/index.md
@@ -165,28 +165,19 @@ trunk at the source revision is good.~~
Create the download page before the first milestone, if we have one, or before
the release candidate.
-Log into the ICU homepage Google Site. (If you don't have write access, ask one
-of the editors to grant you access.)
+Since ICU 76, new download pages are in Markdown on GitHub, at docs/download/ .
-Verify that there is not already a page for the upcoming release: Either via the
-sitemap, or on the bottom of the main download page where it says something like
-"Subpages (27): View All".
+In your ICU workspace, copy the download page for the last release.
+Adjust the navbar data at the top: Title, and nav_order one fewer than last time.
-Copy the download page for the last release: Go to that page, gear menu, Copy
-page; "Name your page" using just the major version number for now (e.g., "61")
-so that the page URL is just that number, select "Put page under Downloading
-ICU", click the red COPY button.
+Adjust the new page as needed: Adjust the title to "ICU 77" (with the right version number...),
+remove contents specific to the previous release, update all version numbers, update all links.
-Adjust the new page as needed: Change the title to "Download ICU 61 Release
-Candidate" (with the right version number...), remove contents specific to the
-previous release, update all version numbers, update all links.
+Put a big, **bold+italics** warning at the top like "This version has not been
+released yet. Use it for testing but do not use it in production!"
-Put a big, bold+italics, red warning at the top like "This version has not been
-released yet. Use it for testing but not in production!"
-
-Save the page. It is generally a good idea to save frequently. For further
-edits, simply go back into edit mode. (Keyboard shortcut 'e' for edit, ctrl+s
-for save.)
+Compare with the one-year-ago release page and adjust for whether we have a major release,
+a new Unicode version, etc.
Add new contents for the upcoming release: Grab some text from the sibling
Unicode and CLDR release notes, look at the proposal status doc for this
@@ -198,9 +189,7 @@ like a Migration Issues section etc.
Ask everyone on the team to add stuff & details.
-**Once the page has been created and various people are invited to edit it,
-everyone should keep editing short so that the page is not locked for others for
-long periods of time.**
+Once the page has been created and merged, consider editing online on GitHub.
### Maintenance release