Skip to content

chore: redesign in Astro#2169

Open
bjohansebas wants to merge 59 commits intogh-pagesfrom
redesign
Open

chore: redesign in Astro#2169
bjohansebas wants to merge 59 commits intogh-pagesfrom
redesign

Conversation

@bjohansebas
Copy link
Copy Markdown
Member

@bjohansebas bjohansebas commented Jan 29, 2026

Preview Url :- https://deploy-preview-2169--expressjscom-preview.netlify.app/

Important

The conflicts will be resolved when we’re ready to release it to the public, so don’t worry about that—one of the captains will handle it when the time comes.

Overview

The design aims to closely follow the original Figma as much as possible. However, due to time constraints, it was not feasible to keep it fully up to date, as Orama supported the redesign effort until April 3.

Throughout the development process, feedback was continuously gathered via Slack, and adjustments were made iteratively as the site evolved.

As part of this transition, and to provide a clear before-and-after reference for the API content, the gh-pages branch will be left untouched, while a new main branch has been introduced, which will become the default branch of the repository.

The following sections outline the key decisions that were made and explain why certain aspects of the site are implemented the way they are.

For more in-depth details on how the site works, everything is documented in the repository under the docs folder.


API Routes

At the beginning, each method and property had its own URL. Over time, we decided to group them by object (req, res, app, router) to reduce both build times and page size.

Previously, the site could reach up to 600MB due to all generated i18n pages. With this change, the build process is now significantly faster and more efficient.


Search

The original Figma proposal placed the search as a right-side panel. This was changed to a modal-based search, mainly because the original design didn’t account for having a Table of Contents (ToC) per page.

Important note:
This is the only part of the site that uses React. It was implemented following Orama’s recommendation to ensure a fast and high-quality search experience.


Menu

Compared to the Figma design, the language switcher and dark/light theme toggle were moved next to the search.

This follows a pattern similar to the Node.js website.


Versioning

The Figma design did not include page versioning. During development, we decided to introduce versioning for documentation pages.

How versioning works is documented in the repository under the docs folder.


i18n

The versioning system remains intact.

Current issue:

  • The Crowdin integration is not working properly (already in contact with their support).

For now:

  • Non-English pages are fallbacks from English.

Once fixed:

  • Proper translations will be available.

Footer

The original footer design did not follow the foundation’s recommendations.

It was updated to include the proper copyright text, which was later also added to the current expressjs.com site.


Updated Documentation

During this process, several parts of the documentation were improved:

More documentation will continue to be improved over time throughout the year with the team.


API Overview

The API now includes an overview section, improving organization and aligning with the new versioning system.


llms.txt

Support was added to generate llms.txt files from the documentation.

This allows language models to better access and understand the docs:
https://deploy-preview-2169--expressjscom-preview.netlify.app/llms.txt


OG Images

All pages now have dynamically generated Open Graph images.

Note:

  • The design does not match Figma because the feature was implemented before noticing that the Figma had been updated.

Homepage Announcement Banner

The homepage banner is now automated:

  • Displays the latest blog post for 30 days
  • Prevents forgetting to update/remove it
  • Can be overridden with custom content if needed

This behavior is documented in the docs folder.


CI: Broken Link Detection

  • A CI system now checks for broken links
  • Not perfect, but helps reduce link issues significantly

Accessibility

  • The site has been improved to be as accessible as possible
  • Any accessibility issues should be reported for further fixes

Light Mode

  • The original Figma design did not include a light mode preview
  • Light mode is now fully implemented

Issues Resolved

The following issues were closed as part of this migration (and likely more):


Final Notes

  • The blog post announcing the redesign and the logo will be created next week.
  • The logo has not been officially selected yet, but it is expected that a decision will be made this week.

Personal Note of Sebastian

Important

I’d really like to be the one to press the merge button.

The main reason I joined Express was to improve the documentation experience, and this represents the biggest step in that direction. After all the time and effort I’ve invested into this, it would mean a lot to me.

If anything needs to be fixed quickly before launch, I’m happy to jump on it and address it right away.

Summary of commits

Summary of commits

Infrastructure / Setup

Set up the Astro project from scratch, configured the Netlify deployment, and later moved the Astro project from a subdirectory to the repository root.

Details
PR Description Author Date
#2167 Initial technical setup of the Astro project g-francesca 2026-01-29
#2170 Fix Netlify config to point to the Astro directory jonchurch 2026-01-29
#2253 Move Astro project to the repository root bjohansebas 2026-04-02

CI/CD

Added GitHub Actions workflows for building, linting, and checking links on PRs. Set up Husky for pre-commit hooks, Dependabot for dependency updates, and fixed the Crowdin configuration for translations.

Details
PR Description Author Date
#2168 Add workflow for Astro site build and linting bjohansebas 2026-01-29
#2192 Add PR link checking workflow, fix links and add fallback to english pages bjohansebas 2026-03-15
#2195 Husky pre-commit hooks setup ShubhamOulkar 2026-03-29
#2254 Add Dependabot and improve README bjohansebas 2026-04-02
#2256 Fix Crowdin config for translations bjohansebas 2026-04-03

Design / UI Components

Built the full site layout: responsive header and sidebar navigation (mobile, tablet, desktop), footer, homepage hero with optimized WebM/WebP media, features/banner sections, reusable Alert component, blog post page, breadcrumb, and documentation page layout adjustments.

Details
PR Description Author Date
#2180 Mobile header and sidebar navigation g-francesca 2026-02-18
#2185 Tablet/desktop header and sidebar navigation g-francesca 2026-02-24
#2196 Footer redesign g-francesca 2026-02-25
#2203 Homepage Hero component g-francesca 2026-03-04
#2204 Homepage Features and Banner components g-francesca 2026-03-04
#2205 Reusable Alert component g-francesca 2026-03-05
#2208 Adjust layout content width for responsive sidebar GroophyLifefor 2026-03-22
#2228 Blog post page redesign g-francesca 2026-03-30
#2221 Optimize hero media using WebM/WebP and reduce asset size ShubhamOulkar 2026-04-02
#2251 Documentation page fixes and improvements g-francesca 2026-04-02
#2252 Enhance breadcrumb component ShubhamOulkar 2026-04-03

Features

Implemented i18n language selection, blog listing page, and search/chat powered by Orama. Added SEO essentials (sitemap, robots.txt, RSS feed, Open Graph/Twitter Cards, automatic OG image generation). Built documentation features like Table of Contents, prev/next navigation, and rehype plugins for heading links. Added support for global pages, content collections, redirects for legacy links, multi-language translation editing, scripts for pulling external docs, and LLM-friendly API endpoints. Bumped to Astro v6.

Details
PR Description Author Date
#2197 i18n language selection g-francesca 2026-03-02
#2207 Blog listing page g-francesca 2026-03-13
#2213 Search/chat widget powered by Orama g-francesca 2026-03-24
#2217 Sitemap integration and robots.txt bjohansebas 2026-03-22
#2218 RSS feed functionality bjohansebas 2026-03-22
#2222 Redirects for blog posts and legacy API links bjohansebas 2026-03-29
#2224 Open Graph and Twitter Card metadata bjohansebas 2026-03-30
#2230 Table of Contents for documentation layout bjohansebas 2026-03-30
#2231 Remove i18n folder for blog bjohansebas 2026-03-31
#2232 Support page and content collections update bjohansebas 2026-03-31
#2233 Support for global pages bjohansebas 2026-03-31
#2234 Move resources to the page collection bjohansebas 2026-03-31
#2236 Bump to Astro v6 bjohansebas 2026-03-31
#2237 Translation option for editing pages in multiple languages bjohansebas 2026-03-31
#2239 Prev/next navigation for documentation pages bjohansebas 2026-03-31
#2240 Scripts for pulling external documents bjohansebas 2026-03-31
#2241 RSS feed link and translations for multiple languages bjohansebas 2026-03-31
#2242 Rehype plugins for automatic heading links bjohansebas 2026-03-31
#2243 Overview heading in posts and improved ToC bjohansebas 2026-03-31
#2259 Automatic OG image generation bjohansebas 2026-04-04
#2260 LLMs API and documentation endpoints bjohansebas 2026-04-04

Documentation

Wrote overviews for the Application and Express objects and improved API overviews. Migrated remaining Jekyll includes to Astro. Unified headings and API pages for consistency. Adopted the new Alert component across docs. Added security.txt, clustering/middleware images, and project structure documentation. Improved the v5 migration guide (including documenting removed options) and updated routing docs for separate versions.

Details
PR Description Author Date
#2216 Application and Express object overview bjohansebas 2026-03-22
#2223 Better API overviews bjohansebas 2026-03-30
#2225 Use the new Alert component in docs bjohansebas 2026-03-30
#2229 Unify headings across documentation bjohansebas 2026-03-30
#2235 Resolve the last Jekyll includes bjohansebas 2026-03-31
#2238 Update more docs for the new website bjohansebas 2026-03-31
#2244 Add security.txt bjohansebas 2026-03-31
#2245 Clustering and middleware images for docs bjohansebas 2026-03-31
#2258 Unify API pages bjohansebas 2026-04-03
#2261 Document project structure and more bjohansebas 2026-04-04
#2262 Improve migration guide to v5 bjohansebas 2026-04-04
#2263 Update routing documentation for separate versions bjohansebas 2026-04-04
#2211 Document removed options for res.sendFile() and express.static() in Express 5 migration guide 22BRS1317 2026-04-04

@netlify
Copy link
Copy Markdown

netlify bot commented Jan 29, 2026

Deploy Preview for expressjscom-preview ready!

Name Link
🔨 Latest commit 1e9ecd1
🔍 Latest deploy log https://app.netlify.com/projects/expressjscom-preview/deploys/69da6fa38b0ac70008e3d1bb
😎 Deploy Preview https://deploy-preview-2169--expressjscom-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 99 (🟢 up 3 from production)
Accessibility: 100 (🟢 up 13 from production)
Best Practices: 100 (no change from production)
SEO: 100 (🟢 up 6 from production)
PWA: 80 (🟢 up 50 from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

g-francesca and others added 25 commits February 18, 2026 14:36
Co-authored-by: shubham oulkar <91728992+ShubhamOulkar@users.noreply.github.com>
Co-authored-by: Sebastian Beltran <bjohansebas@gmail.com>
Co-authored-by: Shubham Oulkar <oulkarshubhu@gmail.com>
Co-authored-by: shubham oulkar <91728992+ShubhamOulkar@users.noreply.github.com>
Co-authored-by: shubham oulkar <91728992+ShubhamOulkar@users.noreply.github.com>
Co-authored-by: shubham oulkar <91728992+ShubhamOulkar@users.noreply.github.com>
Co-authored-by: Shubham Oulkar <oulkarshubhu@gmail.com>
Co-authored-by: Sebastian Beltran <bjohansebas@gmail.com>
Co-authored-by: Shubham Oulkar <oulkarshubhu@gmail.com>
Co-authored-by: Shubham Oulkar <oulkarshubhu@gmail.com>
Co-authored-by: Sebastian Beltran <bjohansebas@gmail.com>
Co-authored-by: Shubham Oulkar <oulkarshubhu@gmail.com>
Co-authored-by: Sebastian Beltran <bjohansebas@gmail.com>
Co-authored-by: Sebastian Beltran <bjohansebas@gmail.com>
Signed-off-by: Sebastian Beltran <bjohansebas@gmail.com>
@@ -0,0 +1,72 @@
import { visit, SKIP } from 'unist-util-visit';
Copy link
Copy Markdown
Member

@ShubhamOulkar ShubhamOulkar Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<div class="table-scroller" markdown="1" />
  <div class="table-scroller">
    <table>

Just to make a note some of the tables having table-scroller in markdown.
e.g. express.json() table

@bjohansebas bjohansebas marked this pull request as ready for review April 5, 2026 05:06
@bjohansebas bjohansebas requested review from a team as code owners April 5, 2026 05:06
@AugustinMauroy
Copy link
Copy Markdown

FYI orama logo is 404

@bjohansebas
Copy link
Copy Markdown
Member Author

FYI orama logo is 404

the same thing happens in Node.js and Fastify as well. I’m already asking the Orama team where I can get those images to fix it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

7 participants