Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
480 commits
Select commit Hold shift + click to select a range
2b3c9f1
docs: remove express v2 (#1740)
bjohansebas Jan 29, 2025
8715a21
chore: add CODEOWNERS file for website and blog contributions (#1735)
bjohansebas Feb 3, 2025
3536239
Contributing.md Enhancement (#1683)
chrisdel101 Feb 4, 2025
79e6a54
Update external docs (#1752)
github-actions[bot] Feb 4, 2025
5d7c21f
fix indonesia support (#1765)
bjohansebas Feb 4, 2025
fabc75a
feat: add language picker (#1695)
cengizcmataraci Feb 4, 2025
68b4840
remove prism (#1746)
bjohansebas Feb 5, 2025
bf006cd
Added bluesky icon and link in all footers (#1766)
joharkhan99 Feb 6, 2025
d94613a
separate content of headers and footer (#1769)
bjohansebas Feb 6, 2025
73a6b75
Update Crowdin configuration file
ctcpip Feb 6, 2025
0cf2846
Update Crowdin configuration file
ctcpip Feb 7, 2025
b56a8e6
Update Crowdin configuration file
ctcpip Feb 7, 2025
31bb1d6
fix code padding (#1773)
bjohansebas Feb 7, 2025
7e89208
Update external docs (#1782)
github-actions[bot] Feb 11, 2025
d63a98b
docs: update documentation for res.type() (#1783)
Feb 11, 2025
650a6a4
normalize announcements (#1784)
bjohansebas Feb 11, 2025
5ab8e0d
Update API includes to use English language paths (#1778)
bjohansebas Feb 11, 2025
d94ab7d
Design system (#1742)
chrisdel101 Feb 11, 2025
52c111d
enable incremental build for local server (#1781)
bjohansebas Feb 11, 2025
ab4778a
Update Crowdin configuration file
ctcpip Feb 12, 2025
8c04850
Update Crowdin configuration file
ctcpip Feb 12, 2025
41697a8
✨ add crowdin action
ctcpip Feb 12, 2025
1409e38
Update production best practices (#1679)
bjohansebas Feb 14, 2025
f669c5f
Replace link to Liquid (#1789)
Phillip9587 Feb 14, 2025
2067442
Update "Use helmet" section (#1790)
Phillip9587 Feb 15, 2025
85e0462
ci: deploy website with github actions (#1767)
bjohansebas Feb 17, 2025
9157075
Update external docs (#1795)
github-actions[bot] Feb 17, 2025
1e05e8b
feat: add configuration to display the announcements (#1791)
bjohansebas Feb 18, 2025
1d9c326
Submenu anchor active (#1798) Merge
chrisdel101 Feb 20, 2025
db21b0c
accessibility issue fix for level one heading and its order (#1797)
ipreencekmr Feb 21, 2025
67096ce
fix accessibility issue for text distinguishable links (#1796)
ipreencekmr Feb 22, 2025
8e2dc7a
fix accessibility issue for iframe accessible name (#1802)
ipreencekmr Feb 23, 2025
6c3cfbb
fix: update middleware documentation (#1806)
bjohansebas Feb 23, 2025
bdf2952
Update external docs (#1813)
github-actions[bot] Feb 24, 2025
ec5d01a
fix accessibility issue related to image alt text (#1809)
ipreencekmr Feb 25, 2025
27cff69
fix(1815): colour contrast adjusted for comments in code blocks (#1818)
ipreencekmr Feb 26, 2025
7f5bf72
Fix broken links on the middleware page (#1821)
hayden36 Feb 27, 2025
2cda09d
Feat : Add Table of Contents Component on pages (#1775)
ShubhamOulkar Mar 1, 2025
7f9b0d8
docs: Correct Korean menu translation for guide entry (#1823)
choi2021 Mar 3, 2025
f3b92d9
docs: update security updates documentation for Express (#1800)
bjohansebas Mar 4, 2025
ffd1223
docs: remove repeated section from performance guide (#1824)
Mar 4, 2025
502d079
Do not enforce Ruby version (#1811)
bjohansebas Mar 6, 2025
22f4946
docs: add codemods section for migrating to Express 5 (#1739)
bjohansebas Mar 6, 2025
e2814ae
ci: remove CI on review submission (#1812)
bjohansebas Mar 6, 2025
6daa871
Update external docs (#1832)
github-actions[bot] Mar 11, 2025
064fc0b
Adjust code background colour to improve clarity in dark mode (#1828)
UzairJ99 Mar 11, 2025
34a18e8
fix(1816): fixed an style issue inconsistency on home page (#1817)
ipreencekmr Mar 11, 2025
26d0b1f
feat: add github edit btn (#1822)
ShubhamOulkar Mar 15, 2025
29d6e0b
feat: normalize admoniations (#1810)
bjohansebas Mar 18, 2025
c07e0bb
📄 update license to CC BY 4.0
ctcpip Jan 13, 2025
748c40e
docs: add deprecation note for 'back' redirect in res-redirect.md and…
bjohansebas Mar 21, 2025
5e850e8
docs: add router debug log change to v5 migration guide (#1819)
Mar 21, 2025
d8c2409
fix(a11y): accessible text for screen readers (#1840)
ShubhamOulkar Mar 23, 2025
76d9393
feat: use the express logo in the header (#1839)
ShubhamOulkar Mar 23, 2025
461386f
improve accessibility in header buttons (#1833)
ShubhamOulkar Mar 23, 2025
3926b29
fix: remove obsolete X-UA-Compatible meta tag (#1842)
bjohansebas Mar 25, 2025
b77de8a
Update external docs (#1843)
github-actions[bot] Mar 25, 2025
586b428
feat(blog): 5.1.0 release blog (#1849)
wesleytodd Mar 31, 2025
0aab4f2
fix: changelog link in v5.1.0 blog post (#1855)
ShubhamOulkar Mar 31, 2025
77463b1
feat: add announcement content for Express 5.1.0 release (#1854)
bjohansebas Mar 31, 2025
8f3f258
docs(changelog): update changelog for 5.1.0 release (#1850)
bjohansebas Mar 31, 2025
8cc0a58
Update external docs (#1856)
github-actions[bot] Mar 31, 2025
f0ee73d
🐛 fix crowdin action
ctcpip Mar 31, 2025
5c9f73f
🐛 fix crowdin action
ctcpip Mar 31, 2025
70f3c82
fix(blog): added some clarification around dates in blog post (#1859)
wesleytodd Apr 1, 2025
7e9249f
Update debugging.md (#1858)
elyas-32 Apr 3, 2025
a29e83d
feat: generate sitemap.xml for SEO indexing (#1838)
ShubhamOulkar Apr 7, 2025
2da701b
ci: separates the upload of content to Crowdin from the download of c…
bjohansebas Apr 8, 2025
db7dc32
Revert "ci: separates the upload of content to Crowdin from the downl…
ctcpip Apr 8, 2025
0ab83ba
remove license link from footer (#1863)
bjohansebas Apr 11, 2025
cae37bd
🔒️ fix permissions on workflow
ctcpip Apr 14, 2025
3b8f190
feat: add feeds for the blog and vulnerabilities (#1867)
rowanmanning Apr 15, 2025
688c59b
Fix formatting of *s in v5-1-latest-release (#1875)
gabriel-bezerra Apr 15, 2025
9a89c2f
a11y fix: header navigation landmark (primary navigation) (#1848)
ShubhamOulkar Apr 17, 2025
9e00f5a
Use 5.x path syntax in API examples (#1878)
krzysdz Apr 22, 2025
4901220
update api to 5x (#1876)
bjohansebas Apr 24, 2025
ad856cd
Fix links that got broken in #1422 (#1885)
krzysdz Apr 25, 2025
021c4d6
Remove router.param(fn) from 5.x docs (#1884)
krzysdz Apr 26, 2025
f24f45a
feat: add copy code btn (#1841)
ShubhamOulkar Apr 26, 2025
e69208e
Reflect body-parser changes in 5.x API docs and include those that wh…
krzysdz Apr 26, 2025
8f6546c
feat enhancement : remove regression in express logo (#1887)
ShubhamOulkar Apr 26, 2025
100dc75
Add Copy btn on install command (#1846)
ShubhamOulkar Apr 26, 2025
20a6669
chore: refactor layout (#1888)
ShubhamOulkar Apr 27, 2025
5c7a418
fix: dark/light mode theme regression (#1862)
bdkopen May 1, 2025
0082552
Update 5x API docs with missing 4x changes (#1886)
krzysdz May 1, 2025
b17e3a1
Fix z-index bug in style.css (#1895)
raaid3 May 8, 2025
748c994
update admonition content formatting (#1896)
bjohansebas May 8, 2025
72e664a
docs: remove deprecated and unmaintained pillarjs utils (#1889)
Phillip9587 May 9, 2025
ddcd1a6
feat: upload index.md to crowdin (#1899)
bjohansebas May 13, 2025
22d3641
docs: update external docs (#1900)
github-actions[bot] May 13, 2025
cd9e6a3
blog: Spring Cleaning in Express.js (#1902)
UlisesGascon May 16, 2025
658ab65
blog: create "May 2025 Security Releases" (#1909)
UlisesGascon May 19, 2025
dcdef7d
New Crowdin Translations (#1874)
github-actions[bot] May 28, 2025
230fc6b
Update external docs (#1906)
github-actions[bot] May 28, 2025
528cdf8
docs: change reference from v4 to v5 (#1914)
premdood May 28, 2025
2c827d9
chore: update source references in contributing documentation (#1852)
bjohansebas May 28, 2025
9d564ba
fix: update headings levels in migration guide (#1869)
bjohansebas May 28, 2025
fc56d27
[StepSecurity] Apply security best practices (#1905)
step-security-bot May 28, 2025
4e625d4
Replace Google Font with local variable font (#1910)
utkarsh125 May 28, 2025
308cdf4
codeql: remove ruby from CodeQL language matrix (#1926)
bjohansebas May 28, 2025
00a676d
Update external docs (#1922)
github-actions[bot] May 28, 2025
c530d43
i18n: new crowdin translations (#1923)
github-actions[bot] May 28, 2025
b460ccb
Add correct korean font file name (#1929)
ShubhamOulkar May 28, 2025
d1f904a
Display author avatars in the blog (#1915)
rowanmanning May 29, 2025
643571d
remove unused CSS files and font assets (#1927)
bjohansebas May 29, 2025
cd8ffd5
chore(deps): bump webrick from 1.8.1 to 1.9.1 (#1919)
dependabot[bot] May 29, 2025
14295d3
chore(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.1 (#1917)
dependabot[bot] May 29, 2025
c8a13b7
chore(deps): bump ruby/setup-ruby from 1.207.0 to 1.244.0 (#1918)
dependabot[bot] May 29, 2025
124133a
Normalize i18n notice translation (#1930)
ShubhamOulkar Jun 1, 2025
c98d2c4
blog: add "How Express.js Rebuilt Its Vulnerability Reporting Process…
UlisesGascon Jun 5, 2025
30c053b
Eliminate layout shift in menu toggle arrow with CSS-only solution (#…
ShubhamOulkar Jun 6, 2025
4ea8ef5
Update external docs (#1938)
github-actions[bot] Jun 6, 2025
b9d72b9
docs: new process for translate page (#1805)
bjohansebas Jun 7, 2025
0f3d24c
doc: Fix ID on Header on Performance Best Practices Page (#1945)
bdkopen Jun 9, 2025
9e68fa2
Update external docs (#1946)
github-actions[bot] Jun 11, 2025
8fc9116
fix: remove code block rendering in the note section Closes #1949 (#1…
ayush00git Jun 21, 2025
951e88c
chore(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 (#1937)
dependabot[bot] Jun 21, 2025
81611aa
Update external docs (#1950)
github-actions[bot] Jun 21, 2025
10155e9
i18n: new crowdin translations (#1939)
github-actions[bot] Jun 21, 2025
722fb07
docs: clarify MIME type changes when migrating from Express 4 to 5 (#…
achaljhawar Jun 23, 2025
57cbe6c
ci: update workflows (#1924)
bjohansebas Jun 25, 2025
c7b12bd
Remove strongloop from footer (#1779)
bjohansebas Jun 30, 2025
7743e0f
fix: content overflow on small screen (#1948)
ShubhamOulkar Jul 3, 2025
92ebb0c
i18n: new crowdin translations (#1956)
github-actions[bot] Jul 11, 2025
90784d7
chore(deps): bump ruby/setup-ruby from 1.207.0 to 1.245.0 (#1958)
dependabot[bot] Jul 11, 2025
1b2fff4
chore(deps-dev): bump eslint-plugin-import from 2.29.1 to 2.32.0 (#1957)
dependabot[bot] Jul 11, 2025
fde74c4
chore(deps-dev): bump eslint-plugin-promise from 6.2.0 to 6.6.0 (#1921)
dependabot[bot] Jul 11, 2025
6a57f39
chore(deps): bump crowdin/github-action from 2.7.0 to 2.8.0 (#1959)
dependabot[bot] Jul 11, 2025
407f352
docs: update external docs (#1969)
github-actions[bot] Jul 15, 2025
79665c0
feat(index page): add express title and show LTS versions on the smal…
JoseDaniel959 Jul 15, 2025
0989623
blog: add "June 2025 Security Releases" (#1944)
UlisesGascon Jul 18, 2025
61cfc19
fix: grid layout and refactor css (#1978)
ShubhamOulkar Jul 18, 2025
120197a
build: apply language based on folder. (#1975)
bjohansebas Jul 18, 2025
0f143c1
fix: add horizontal scroller on middleware table to prevent overflow …
Mohit5Upadhyay Jul 18, 2025
35b4b3b
i18n: new crowdin translations (#1971)
github-actions[bot] Jul 18, 2025
1917b49
chore: refactor footer and header icons (#1962)
ShubhamOulkar Jul 22, 2025
7bf3227
Fix API reference nav missing bold (#1986)
danielzgtg Jul 27, 2025
66c2b91
Fix changelog link on homepage (#1982)
antiquark007 Jul 27, 2025
3f02c01
i18n: new crowdin translations (#1991)
github-actions[bot] Jul 30, 2025
f263365
blog: July 2025 Security Releases (#1994)
UlisesGascon Jul 31, 2025
abee42a
Fix unclickable submenus on touchscreen tablet (#1983)
danielzgtg Aug 1, 2025
c75ec31
ci: run lighthouse report (#1985)
ShubhamOulkar Aug 1, 2025
8c4ae2a
docs(basic-routing.md): align wording with the rest of document (#1966)
matzar Aug 1, 2025
b8d426e
docs(migrating-5): add section about express.static dotfiles defaulti…
VishalRMahajan Aug 1, 2025
3751b43
chore(deps): bump ruby/setup-ruby from 1.245.0 to 1.254.0 (#1996)
dependabot[bot] Aug 1, 2025
d5eb506
chore(deps): bump crowdin/github-action from 2.8.0 to 2.9.1 (#1997)
dependabot[bot] Aug 1, 2025
4c0838e
docker: match GH page ruby version (#1980)
jonchurch Aug 2, 2025
90e5a31
chore: ♻️ remove jquery (#1964)
ShubhamOulkar Aug 2, 2025
74fcef5
ci(lighthouse) : remove seo results (#1998)
ShubhamOulkar Aug 2, 2025
76bbf94
ci: remove base_url from crowdin workflows (#1979)
bjohansebas Aug 2, 2025
de12edc
feat(#1932): implement smooth scrolling for anchor navigation across …
Mohit5Upadhyay Aug 2, 2025
69c0345
ci: fix security alert for Lighthouse workflow (#2031)
bjohansebas Aug 4, 2025
5df99fe
ci: fix multiple comments in Lighthouse workflow (#2030)
bjohansebas Aug 4, 2025
c2e3f31
docs: add option to express.urlencoded middleware documentation (#2001)
bjohansebas Aug 4, 2025
10929d3
i18n: new crowdin translations (#2032)
github-actions[bot] Aug 11, 2025
8c1e4b3
docs: update res.clearCookie documentation for clarity and accuracy (…
bjohansebas Aug 15, 2025
b07d14a
Update links to 5x api docs on `use middleware` page (#2039)
ShubhamOulkar Aug 15, 2025
35e18b6
chore(fonts):⚡reduce font payload (#1999)
ShubhamOulkar Aug 18, 2025
53b9a0e
docs: improve the documentation of path matching behavior (#2036)
kushal4345 Aug 18, 2025
e52698d
i18n: new crowdin translations (#2041)
github-actions[bot] Aug 19, 2025
ae6197f
docs: document array and multiple-args support in req.is (#2042)
GauravKesh Aug 23, 2025
4106a90
ci: skip Lighthouse audit when Netlify preview is not live (#2048)
ShubhamOulkar Aug 31, 2025
9b41d4d
chore(deps): bump ruby/setup-ruby from 1.254.0 to 1.257.0 (#2051)
dependabot[bot] Sep 2, 2025
e526272
chore(deps): bump actions/upload-pages-artifact from 3 to 4 (#2052)
dependabot[bot] Sep 2, 2025
1a79fca
chore(deps): bump crowdin/github-action from 2.9.1 to 2.10.0 (#2053)
dependabot[bot] Sep 2, 2025
72ff6ba
chore(deps): bump actions/checkout from 4 to 5 (#2054)
dependabot[bot] Sep 2, 2025
00e199a
feat : improve language picker component (#2040)
ShubhamOulkar Sep 14, 2025
74e27ec
i18n: new crowdin translations (#2060)
github-actions[bot] Sep 20, 2025
7f59bcc
chore(deps): bump crowdin/github-action from 2.10.0 to 2.11.0 (#2070)
dependabot[bot] Oct 4, 2025
48789f6
chore(deps): bump actions/setup-node from 4 to 5 (#2073)
dependabot[bot] Oct 4, 2025
164e3e9
chore(deps): bump uri from 0.13.1 to 0.13.2 (#2065)
dependabot[bot] Oct 4, 2025
d5404f7
chore(deps): bump rexml from 3.3.7 to 3.4.2 (#2067)
dependabot[bot] Oct 4, 2025
9066b99
chore(deps-dev): bump nokogiri from 1.16.7 to 1.18.9 (#2066)
dependabot[bot] Oct 4, 2025
3def603
fix: typo in Chinese routing guide (#2077)
dhruvinjs Oct 6, 2025
a1b6ecf
fix: update link to triage process document in contributing guides (#…
Bashamega Oct 17, 2025
e00b066
chore(deps): bump actions/github-script from 7 to 8 (#2071)
dependabot[bot] Oct 18, 2025
e545090
chore(deps): bump ruby/setup-ruby from 1.257.0 to 1.263.0 (#2072)
dependabot[bot] Oct 18, 2025
69cdaa2
chore(deps): bump ossf/scorecard-action from 2.4.2 to 2.4.3 (#2074)
dependabot[bot] Oct 18, 2025
90f37f1
docs: update external docs (#2059)
github-actions[bot] Oct 18, 2025
536852a
docs: update external docs (#2083)
github-actions[bot] Oct 25, 2025
c2f9f5a
fix: ensure footer is pushed to the bottom on large screens (#2075)
sibaiper Oct 25, 2025
738f860
docs: Fix broken links (#2082)
efekrskl Oct 25, 2025
0249729
chore(deps): bump ruby/setup-ruby from 1.263.0 to 1.267.0 (#2096)
dependabot[bot] Nov 7, 2025
33a856b
chore(deps): bump actions/upload-artifact from 4 to 5 (#2095)
dependabot[bot] Nov 7, 2025
fd97b84
blog: update the link for the captains (#2112)
skyeyeye Nov 7, 2025
17da555
chore(deps): bump actions/setup-node from 5 to 6 (#2098)
dependabot[bot] Nov 7, 2025
edf3ba4
feat: bottom page navigation component (#2085)
ShubhamOulkar Nov 7, 2025
859c285
chore(deps): bump crowdin/github-action from 2.11.0 to 2.12.0 (#2097)
dependabot[bot] Nov 7, 2025
812bb54
chore(deps): bump github/codeql-action from 3 to 4 (#2099)
dependabot[bot] Nov 7, 2025
66aee2c
docs: update external docs (#2086)
github-actions[bot] Nov 7, 2025
88a2bbe
docs: fix minor formatting typo (#2093)
ravener Nov 7, 2025
cf70183
fix: update link to Sovereign Tech Fund in release notes (#2117)
skyeyeye Nov 12, 2025
7ae56b7
fix: update documentation link to IRP (#2115)
skyeyeye Nov 13, 2025
cbcd172
fix: update link to IRP Flowchart (#2116)
skyeyeye Nov 13, 2025
8e273e2
docs(express.static): add accept-ranges and cache-control options to …
Akash-2006 Nov 15, 2025
c97bc89
Update HTTP method reference link in documentation (#2113)
skyeyeye Nov 15, 2025
5bd4529
docs: include protocol in a link (#2119)
skyeyeye Nov 18, 2025
7a32b3f
docs: update external docs (#2120)
github-actions[bot] Nov 25, 2025
36b33cf
blog: Nov 2025 Security Releases (#2121)
UlisesGascon Dec 1, 2025
a1efc64
docs: update external docs (#2122)
github-actions[bot] Dec 14, 2025
691e344
chore(deps): bump actions/checkout from 5 to 6 (#2123)
dependabot[bot] Dec 14, 2025
56bae20
chore(deps): bump ruby/setup-ruby from 1.267.0 to 1.268.0 (#2124)
dependabot[bot] Dec 14, 2025
d9ae666
chore(deps): bump webrick from 1.9.1 to 1.9.2 (#2125)
dependabot[bot] Dec 14, 2025
2e10ad5
chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 (#2118)
dependabot[bot] Dec 14, 2025
0cfa8d0
docs: clarify req.params type and usage with regular expressions (#2101)
krzysdz Dec 14, 2025
e4004e1
i18n: new crowdin translations (#2064)
github-actions[bot] Dec 14, 2025
e34d35a
docs: update external docs (#2130)
github-actions[bot] Dec 14, 2025
fabe479
docs: Improve clarity of next('route') usage in Route Handlers sectio…
yelishgiri Dec 14, 2025
c835e5d
Fix: Add missing API sections to non-English 4.x documentation (#2076)
Farhan291 Dec 14, 2025
f4c742b
i18n: new crowdin translations (#2131)
github-actions[bot] Dec 14, 2025
0f78c3f
i18n: new crowdin translations (#2133)
github-actions[bot] Dec 15, 2025
73cf5d6
docs: document req.params changes in 5.x (#2092)
krzysdz Dec 22, 2025
76c37f7
docs: update contributing.md (#2137)
efekrskl Dec 22, 2025
7fb7fe1
docs: update external docs (#2139)
github-actions[bot] Dec 22, 2025
c6478c2
i18n: new crowdin translations (#2138)
github-actions[bot] Dec 27, 2025
bb00d0c
docs: update reference links from 4.x to 5.x across all languages (#2…
codayon Dec 27, 2025
a8bc26c
i18n: new crowdin translations (#2145)
github-actions[bot] Jan 4, 2026
1eaa6c1
chore(deps): bump ruby/setup-ruby from 1.270.0 to 1.278.0 (#2149)
dependabot[bot] Jan 4, 2026
f5f9757
chore(deps): bump crowdin/github-action from 2.12.0 to 2.13.0 (#2150)
dependabot[bot] Jan 4, 2026
854c50e
chore(deps): bump actions/upload-artifact from 5 to 6 (#2148)
dependabot[bot] Jan 5, 2026
c03947b
chore(deps): bump uri from 0.13.2 to 0.13.3 (#2147)
dependabot[bot] Jan 6, 2026
16d43ef
feat: redirects changelog page to github releases (#2136)
efekrskl Jan 8, 2026
de72935
docs: update codemod commands for Express 5 migration guide (#2143)
bjohansebas Jan 13, 2026
f31a7d4
i18n: new crowdin translations (#2153)
github-actions[bot] Jan 14, 2026
c2106f9
i18n: new crowdin translations (#2158)
github-actions[bot] Jan 19, 2026
9bb1ff2
docs: add security.txt (#1974)
bjohansebas Jan 19, 2026
ab6682c
ci: Fix error in the workflow. (#2159)
bjohansebas Jan 20, 2026
74108b7
ci(deploy): ensure .well-known dir is uploaded to gh-pages (#2162)
jonchurch Jan 20, 2026
cf7c612
fix: update SECURITY.md source location (#2163)
jonchurch Jan 20, 2026
7d1613e
docs: update security.txt expiry (#2160)
github-actions[bot] Jan 21, 2026
34836ff
docs: update external docs (#2161)
github-actions[bot] Jan 22, 2026
5efeac8
ci: remove Lighthouse audit workflow (#2171)
bjohansebas Jan 30, 2026
df7c2e3
i18n: new crowdin translations (#2164)
github-actions[bot] Jan 30, 2026
7ea85d1
feat: add OpenJS trademark notice to footer (#2178)
omerbakr Feb 4, 2026
dcf524f
fix: limit trademark line length so it doesnt stretch (#2179)
jonchurch Feb 5, 2026
daf3c91
docs: update external docs (#2176)
github-actions[bot] Feb 9, 2026
fbcca21
i18n: new crowdin translations (#2177)
github-actions[bot] Feb 9, 2026
293fc17
chore(deps): bump faraday from 2.11.0 to 2.14.1 (#2182)
dependabot[bot] Feb 12, 2026
1596de5
i18n: new crowdin translations (#2181)
github-actions[bot] Feb 12, 2026
90a6995
chore(deps): bump ruby/setup-ruby from 1.278.0 to 1.287.0 (#2174)
dependabot[bot] Feb 20, 2026
25634fb
chore(deps-dev): bump nokogiri from 1.18.9 to 1.19.1 (#2189)
dependabot[bot] Feb 25, 2026
fc8b859
i18n: new crowdin translations (#2187)
github-actions[bot] Feb 25, 2026
5c1c440
docs: update external docs (#2194)
github-actions[bot] Feb 25, 2026
b56e359
blog: Feb 2026 Security Releases (#2198)
UlisesGascon Feb 27, 2026
c0d3bf8
chore(deps): bump crowdin/github-action from 2.13.0 to 2.15.0 (#2202)
dependabot[bot] Mar 2, 2026
85e2e10
chore(deps): bump ruby/setup-ruby from 1.287.0 to 1.288.0 (#2201)
dependabot[bot] Mar 2, 2026
0df4dd3
chore(deps): bump actions/upload-artifact from 6 to 7 (#2200)
dependabot[bot] Mar 3, 2026
1e9d872
fix(navmenu): enable scrolling at 400% zoom for accessibility (#2184)
omerbakr Mar 3, 2026
3239931
chore(deps): bump json from 2.18.1 to 2.19.2 (#2212)
dependabot[bot] Mar 22, 2026
2d4df3f
blog: March 2026 security releases (#2226)
UlisesGascon Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Website development
* @expressjs/docs-collaborators

# Codeowners
.github/CODEOWNERS @expressjs/docs-captains

# Blog
_posts @expressjs/express-tc
25 changes: 25 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly

- package-ecosystem: docker
directory: /
schedule:
interval: monthly

- package-ecosystem: bundler
directory: /
schedule:
interval: monthly

- package-ecosystem: npm
directory: /
schedule:
interval: monthly
open-pull-requests-limit: 10
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
92 changes: 92 additions & 0 deletions .github/scripts/get-contributing.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
#!/bin/bash

# This script replaces the contents of a section with the contents from the annotated source address or local file paths inside the DEST file.

# read contents of file into memory
DEST="../../en/resources/contributing.md"

# track the header level
level=''
# tracks src for curl calls
src=''
# tracks file paths for local file reads
local=''
while IFS= read -r line; do
# REMOVE PREVIOUS CONTENT SECTION
# if src or local tags are not empty
if [[ -n "$src" || -n "$local" ]]; then
# if current line not a horitzontal rule hr
if [[ "$line" != "----"* ]]; then
# if line == level -- level is num of ##
if [[ "$line" == "$level"'#'* ||
# line not a header line
"$line" != '#'* ]]; then
# skip line and rewrite over old content
continue
fi
fi
fi

# PRINT TO PAGE SECTION
src=''
local=''
# if line is a header
if [[ "$line" == '#'* ]]; then
# if header has (#id-of-link) or {#id-on-page} patterns
if [[ $line =~ (\(\#.*\))\. || "$line" =~ \{\#.*\} ]]; then
# isolate the matching part of line
match=${BASH_REMATCH[0]}
# remove match - leaving rest
rest=${line//${match}}
# remove any # symbols from start
title_rest=${rest##*\#}
# slice rest of line to get only level
level="${rest:0:$((${#rest} - ${#title_rest}))}"
else
# any other headers -- these before SRC/LOCAL pages anchors
header=${line##*\#}
level="${line:0:$((${#line} - ${#header}))}"
fi
# if line is SRC anchor in read file
elif [[ "$line" == '<!-- SRC:'* ]]; then
# remove the first 10 chars
src=${line:10}
# % remove from end until after white space -- leaves src details
src=${src% *}
# if line is LOCAL anchor in read file
elif [[ "$line" == '<!-- LOCAL:'* ]]; then
# remove the first 12 chars
local=${line:12}
# % remove from end until after white space -- leave local details
local=${local% *}
# leave only path to file
local=${local#* }
fi
# prints line to the page
echo "$line"

if [[ -n "$local" ]]; then
# cat file -- outputs full contents of file at local path
cat "$local" | \
# remove the top 1# headers from cat'd file
sed -En '/^##|^[^#]/,$p' | \
# remove GH MD specific tags start w '[!NOTE\] + the following line
sed -E '/^>\[!NOTE\]*/{N;d;}' | \
# change GH specific MD IMPORTANT tags -> change into plain MD
sed -E 's/> \[!IMPORTANT\]/> **IMPORTANT:** /g'
echo
elif [[ -n "$src" ]]; then
echo
path=${src#* }
repo=${src% *}
curl -s "https://raw.githubusercontent.com/${repo}/master/${path}" | \
# if line is ## or not #
sed -En '/^##|^[^#]/,$p' | \
# add additional # every header
sed 's/^#/&'"${level:1}"'/g' | \
# format GH links when match
sed -E 's/(\[[^]]*\])\(([^):#]*)\)/\1(https:\/\/github.com\/'"$(sed 's/\//\\\//g' <<< "$repo")"'\/blob\/master\/\2)/g'
echo
fi
# read in dest file then write back to file
done <<<"$(< $DEST)" > $DEST
20 changes: 20 additions & 0 deletions .github/scripts/get-express-version.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { readFile, writeFile } from 'node:fs/promises'
import path from 'node:path'

const NPMURL = 'https://registry.npmjs.org/express'

const response = await (await fetch(NPMURL)).json()

const { next, latest } = response['dist-tags']

try {
const filePath = path.resolve(path.join('..', '..', '_data', 'express.yml'))
let content = await readFile(filePath, 'utf8')

content = content.replace(/current_version: ".*"/, `current_version: "${latest}"`)
content = content.replace(/next_version: ".*"/, `next_version: "${next}"`)

await writeFile(filePath, content, 'utf8')
} catch (error) {
console.error('Error updating versions in _data/express.yml:', error)
}
5 changes: 2 additions & 3 deletions get-readmes.sh → .github/scripts/get-readmes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ expressjs connect-rid master
expressjs cookie-parser master
expressjs cookie-session master
expressjs cors master
expressjs csurf master
expressjs errorhandler master
expressjs method-override master
expressjs morgan master
Expand All @@ -30,7 +29,7 @@ expressjs express master/examples
LIST_END
) | while read org repo branch; do
# Write the README.md to a file named after the repo
DEST="_includes/readmes/$repo.md"
DEST="../../_includes/readmes/$repo.md"
# When fetching from a branch of a gh repo
GHURL="https://raw.githubusercontent.com/$org/$repo/$branch/README.md"
# When fetching from the latest release of a node module
Expand All @@ -43,7 +42,7 @@ LIST_END
# This allows us to specify a branch other than master if we want to.
# In this case, the branch name is added to the readme name in the filename.
if [ "$branch" != "master" ]; then
DEST="_includes/readmes/$repo-$branch.md"
DEST="../../_includes/readmes/$repo-$branch.md"
fi
echo "fetching $org/$repo/$branch from GitHub's raw content domain..."
curl -s $GHURL > $DEST
Expand Down
60 changes: 42 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,62 @@ on:
pull_request:
branches:
- gh-pages
pull_request_review:
types: [submitted]
push:
branches:
- gh-pages

permissions:
contents: read

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version:
- "16"
if: |
github.event.pull_request.draft != true &&
(github.event_name == 'pull_request_review' && github.event.review.state == 'approved') ||
github.event_name != 'pull_request_review'

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
persist-credentials: false


- name: Install Node.js ${{ matrix.node-version }}
shell: bash -l {0}
run: |
nvm install --default ${{ matrix.node-version }}
dirname "$(npm which)" >> "$GITHUB_PATH"
- name: Set up Node.js
uses: actions/setup-node@v6

- name: Install Node.js dependencies
run: npm install

- name: List environment
id: list_env
shell: bash
run: |
echo "node@$(node -v)"
echo "npm@$(npm -v)"
npm -s ls

- name: Run tests
shell: bash
run: npm test

build:
name: Build
runs-on: ubuntu-latest
if: |
github.event.pull_request.draft != true &&
(github.event_name == 'pull_request_review' && github.event.review.state == 'approved') ||
github.event_name != 'pull_request_review'

steps:
- uses: actions/checkout@v6
with:
persist-credentials: false

- name: Setup Ruby
uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # https://github.com/ruby/setup-ruby/releases/tag/v1.288.0
with:
bundler-cache: true # runs 'bundle install' and caches installed gems automatically

- name: Jekyll Build
run: bundle exec jekyll build

- name: Check Docker support
shell: bash
run: |
docker --version
make build
73 changes: 73 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
push:
branches: ["gh-pages"]
pull_request:
# The branches below must be a subset of the branches above
branches: ["gh-pages"]
schedule:
- cron: "0 0 * * 1"

permissions:
contents: read

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: ["javascript", "actions"]
# CodeQL supports [ $supported-codeql-languages ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Checkout repository
uses: actions/checkout@v6

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v4

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"
30 changes: 30 additions & 0 deletions .github/workflows/crowdin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Crowdin Upload

on:
push:
branches: [ gh-pages ]
workflow_dispatch:

permissions:
contents: write

Check failure

Code scanning / Scorecard

Token-Permissions

score is 0: topLevel 'contents' permission set to 'write' Remediation tip: Visit [https://app.stepsecurity.io/secureworkflow](https://app.stepsecurity.io/secureworkflow/github.com/expressjs/expressjs.com/crowdin.yml/gh-pages?enable=permissions). Tick the 'Restrict permissions for GITHUB_TOKEN' Untick other options NOTE: If you want to resolve multiple issues at once, you can visit [https://app.stepsecurity.io/securerepo](https://app.stepsecurity.io/securerepo) instead. Click Remediation section below for further remediation help
pull-requests: write

jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false

- name: crowdin action
uses: crowdin/github-action@8818ff65bfc4322384f983ea37e3926948c11745 # https://github.com/crowdin/github-action/releases/tag/v2.15.0
with:
upload_sources: true
upload_translations: false
download_translations: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
Loading