Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

ConductionNL/conduction-website

Repository files navigation

Important

🚚 This repository has moved to Codeberg

Active development now happens at https://codeberg.org/Conduction/conduction-website. This GitHub mirror is read-only — issues, pull requests, and new commits should go to Codeberg. Update your remote with: git remote set-url origin https://codeberg.org/Conduction/conduction-website# conduction-website

The Docusaurus 3 site for conduction.nl. Built on @conduction/docusaurus-preset for brand defaults; site-specific config lives in docusaurus.config.js.

It also serves the connext.conduction.nl and commonground.conduction.nl vanity entry points (a Cloudflare worker — configured in the dashboard, not in this repo — 301-redirects to the /connext and /commonground paths on this site, with locale awareness via Accept-Language).

Vanity-domain redirect target: the worker must redirect to https://www.conduction.nl/connext/ — with the www. and the trailing slash. The site is built with url: https://www.conduction.nl (matching static/CNAME) and trailingSlash: true. Targeting the bare apex (conduction.nl) or the slash-less path (/connext) stacks extra GitHub Pages 301s on every request and, if the worker route also matches www, can produce a redirect loop. If you see a redirect loop on connext.conduction.nl, also check Cloudflare's SSL/TLS mode is Full (not "Flexible") — Flexible + GitHub Pages "Enforce HTTPS" is the classic infinite HTTP↔HTTPS loop.

Local development

npm install --legacy-peer-deps
npm start
# → http://localhost:3000/

Building

npm run build

Output lands in build/. That folder is what gets deployed to GitHub Pages by .github/workflows/documentation.yml, which calls the centralized ConductionNL/.github documentation workflow.

Local Nextcloud integration

Once @conduction/docusaurus-plugin-opencatalogi is built, content can be pulled from the local Nextcloud OpenCatalogi register at build time:

# Start the local Nextcloud (Conduction's docker-compose dev environment)
cd ~/nextcloud-docker-dev && docker compose up -d

# Build the site against localhost:8080
OPENCATALOGI_URL=http://localhost:8080/index.php/apps/openregister/api npm run build

The plugin is wired into docusaurus.config.js but commented out until the package exists.

Deployment

GitHub Pages, served from the build/ output via .github/workflows/documentation.yml. The static/CNAME file claims www.conduction.nl.

Structure

conduction-website/
  academy/             — Blog/academy posts (routeBasePath: /academy)
  blog/                — Legacy blog redirects
  i18n/                — Translation overrides per locale (en/nl)
  data/
    app-downloads.json — Live store/download numbers (refreshed by GitHub Actions)
  src/
    css/site.css       — Site-specific CSS, appended to brand.css
    data/apps-catalog.js — Hand-curated app metadata + downloads merge
    pages/index.mdx    — Conduction landing
    pages/connext.mdx  — ConNext vanity landing
    pages/commonground.mdx — Common Ground vanity landing
    pages/apps/        — App catalogue
    pages/solutions/   — Solution pages
    pages/partners/    — Partner pages
    theme/Navbar/Logo  — Pathname-based brand switch
  static/              — Static assets (favicon, images, CNAME)
  docusaurus.config.js — Site config (uses createConfig from preset)

Languages

Two locales, English default:

  • / → English (canonical)
  • /nl/ → Nederlands

Markdown overrides per locale live in i18n/<locale>/docusaurus-plugin-content-pages/. UI strings come from i18n/<locale>/code.json (generated by npm run write-translations).

Previewing both languages locally

The Docusaurus dev server (docusaurus start) only serves one language at a time. npm start runs English; npm run start:nl runs Dutch. If you start the English server and click the language switcher, /nl/ will render Docusaurus's internal "Page Not Found" — the route exists in the SPA but the locale isn't compiled in this dev process. The Dutch content is fine; the dev server just isn't serving it.

To test the language switcher end-to-end (both locales on the same port, like production), build once and serve:

npm run preview
# → http://localhost:3000/    (English)
# → http://localhost:3000/nl/ (Dutch)

npm run preview = docusaurus build && docusaurus serve. After a build exists in build/, npm run serve alone reuses it without rebuilding. Trade-off: no hot-reload — re-run for every change.

History

This repository was migrated from the legacy Docusaurus v2.4.3 site in 2026 by extracting the new preset-based build from design-system/sites/www/.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

3 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages