Skip to content

website: add Next.js landing page for burr.apache.org#679

Merged
skrawcz merged 3 commits intoapache:mainfrom
andreahlert:landing-page
Mar 19, 2026
Merged

website: add Next.js landing page for burr.apache.org#679
skrawcz merged 3 commits intoapache:mainfrom
andreahlert:landing-page

Conversation

@andreahlert
Copy link
Contributor

@andreahlert andreahlert commented Mar 16, 2026

Summary

Adds a modern landing page for burr.apache.org built with Next.js 15, Tailwind CSS and Magic UI. The Sphinx docs move from / to /docs/ so both coexist on the same domain.

Preview: https://andreahlert.github.io/burr-website/

Landing page sections

  • Hero with animated stats (GitHub stars, PyPI downloads, Discord members)
  • Interactive code terminal with syntax-highlighted Python examples (Chatbot, Multi-Agent, State Machine)
  • Feature highlights grid (State Management, Observability, Human in the Loop, Streaming, Parallelism, Testing)
  • Integration marquee with real SVG logos (OpenAI, Anthropic, Gemini, LangChain, Haystack, Hamilton, FastAPI, Ray, OpenTelemetry)
  • Testimonial carousel with the 7 existing quotes
  • Community links (Discord, GitHub, Twitter/X)
  • ASF-compliant footer

ASF compliance

  • Required links: License, Thanks, Security, Sponsorship, Privacy Policy, Apache Homepage, Incubator
  • Incubation disclaimer with hyperlinks to ASF and Incubator
  • Trademark attribution statement
  • "(Incubating)" in first reference (title, navbar, hero)
  • Events link included

Build & deploy

  • New unified workflow build-site.yml that builds both Next.js and Sphinx, merges outputs, and deploys to asf-site
  • Landing page served at /, Sphinx docs at /docs/
  • sphinx-docs.yml retains build + artifact upload for PR review (deploy removed to avoid conflicts)
  • Sphinx html_baseurl updated to https://burr.apache.org/docs/

Tech stack

Next.js 15 (App Router), Tailwind CSS v4, shadcn/ui, Magic UI components (Marquee, NumberTicker, ShimmerButton, BlurFade, BorderBeam, DotPattern, AnimatedShinyText), shiki for syntax highlighting. Static export (next export) for Apache infra compatibility.

Test plan

  • cd website && npm ci && npm run build produces static output in out/
  • cd docs && sphinx-build -b dirhtml . _build/html builds docs with /docs/ baseurl
  • Merged output: /index.html (landing page) + /docs/index.html (Sphinx)
  • All ASF required links present in footer
  • Incubation disclaimer with correct wording
  • Dark/light mode toggle works
  • Code tabs switch between Chatbot/Agent/State Machine
  • Mobile responsive (hamburger menu, stacked layout)
  • build-site.yml workflow runs successfully

Add a modern landing page built with Next.js 15, Tailwind CSS and
Magic UI that will serve as the homepage for burr.apache.org.
Sphinx docs move from / to /docs/ so both coexist.

Landing page sections:
- Hero with animated stats (GitHub stars, PyPI downloads)
- Interactive code terminal with syntax-highlighted examples
- Feature highlights (state management, observability, HITL, etc.)
- Integration marquee with real SVG logos
- Testimonial carousel with existing quotes
- Community links (Discord, GitHub, Twitter)
- ASF-compliant footer (License, Thanks, Security, Sponsorship,
  Privacy Policy, Incubator link, trademark attribution,
  incubation disclaimer)

Build & deploy changes:
- New unified workflow (build-site.yml) that builds both Next.js
  and Sphinx, then merges outputs into asf-site branch
- Landing page at / and Sphinx docs at /docs/
- sphinx-docs.yml retains build + artifact for PR review only
  (deploy removed to avoid conflicts)
- Sphinx html_baseurl updated to include /docs/ prefix

Tech stack: Next.js 15 (App Router), Tailwind CSS v4, shadcn/ui,
Magic UI (Marquee, NumberTicker, ShimmerButton, BlurFade,
BorderBeam, MagicCard, DotPattern, AnimatedShinyText), shiki
for syntax highlighting. Static export for Apache infra compat.
@andreahlert
Copy link
Contributor Author

Hey @skrawcz @pjfanning @elijahbenizzy

Built a landing page to replace the current Sphinx homepage at burr.apache.org. The idea is to have a proper splash page that positions Burr more professionally and helps attract new contributors and users to the community.

Preview: https://andreahlert.github.io/burr-website/

The existing Sphinx docs stay untouched, just move to /docs/. A single workflow builds both Next.js and Sphinx and deploys to asf-site. All ASF required links, incubation disclaimer and trademark attribution are covered.

Would love feedback on the content, design or anything else before we move forward with this.

@skrawcz
Copy link
Contributor

skrawcz commented Mar 17, 2026

@andreahlert is there a way to make things backwards compatible with the old urls?

Redirect old root-level Sphinx URLs (concepts/, getting_started/, etc.)
to /docs/ with 301s so existing links and search results keep working
after the landing page migration. Also fix missing newline at end of
globals.css that was failing the pre-commit end-of-file-fixer hook.
@andreahlert
Copy link
Contributor Author

@andreahlert is there a way to make things backwards compatible with the old urls?

@skrawcz Added a .htaccess with 301 redirects for all the old Sphinx root paths pointing to /docs/. Since ASF's default AllowOverride is All, this should work out of the box without any infra request.

it'd be good to confirm with the infra team before merging, just to make sure Burr doesn't have any custom virtual host config that could interfere... a quick message on #asfinfra in the ASF Slack should be enough if you could.

…ebsite constants

- Add Burr logo to Sphinx docs sidebar, displayed inline with the title
- Sidebar brand link points to / (landing page) instead of docs root
- Add missing website/src/lib/constants.ts and utils.ts needed by Next.js
- Gitignore built Sphinx docs in website/public/docs/
@skrawcz
Copy link
Contributor

skrawcz commented Mar 17, 2026

asfinfra

Sigh -- need to be invited:

If you want to invite ASF people (those with an @apache.org address) who are not on Slack yet to join your project's Slack discussions:

In the Slack app, click the "ASF" header at the top left.
Select Invite people to ASF
Use the Members option and, in the form that appears, provide the person's ASF email address.

@skrawcz
Copy link
Contributor

skrawcz commented Mar 18, 2026

@andreahlert want to double check my work -- those missing files are needed right?

@andreahlert
Copy link
Contributor Author

@skrawcz Yes, those files (constants.ts and utils.ts) were definitely needed, I forgot to include them in the original push. Thanks for catching that and adding them.

Reviewed your other changes, noticed just one nit: if we ever move to a different Sphinx theme, this could silently break since it depends on the .sidebar-brand selector. Maybe worth a comment in the template noting why it's there. Not a blocker at all though.

Everything looks solid.

@skrawcz skrawcz merged commit 5ff9f44 into apache:main Mar 19, 2026
11 of 12 checks passed
andreahlert added a commit to andreahlert/burr that referenced this pull request Mar 19, 2026
The deploy step used `cp -r ... /*` which skips dotfiles, so .htaccess
was never copied to the asf-site branch. Add `shopt -s dotglob` to fix.

Also generate static HTML redirect pages by scanning the Sphinx build
output at build time, as fallback in case ASF infra does not process
.htaccess. See PR apache#679 for context.
andreahlert added a commit to andreahlert/burr that referenced this pull request Mar 19, 2026
The deploy step used `cp -r ... /*` which skips dotfiles, so .htaccess
was never copied to the asf-site branch. Add `shopt -s dotglob` to fix.

Also generate static HTML redirect pages by scanning the Sphinx build
output at build time, as fallback in case ASF infra does not process
.htaccess. See PR apache#679 for context.
skrawcz pushed a commit that referenced this pull request Mar 19, 2026
…hs (#686)

The deploy step used `cp -r ... /*` which skips dotfiles, so .htaccess
was never copied to the asf-site branch. Add `shopt -s dotglob` to fix.

Also generate static HTML redirect pages by scanning the Sphinx build
output at build time, as fallback in case ASF infra does not process
.htaccess. See PR #679 for context.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants