Buddies of Budgie website https://buddiesofbudgie.org
  • MDX 65.8%
  • TypeScript 32.3%
  • CSS 1.3%
  • JavaScript 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Joshua Strobl 2cfa49904d
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
fix(get-budgie): update distribution statuses and drop FreeBSD
Arch Linux and EndeavourOS have Budgie 10.10.3 in [extra-testing],
nixos-unstable ships it while NixOS 26.05 has 10.10.2, and Ultramarine
44 ships 10.10.2 from its Fedora 44 base. They now show as upcoming
rather than outdated. Fedora 45 is confirmed to ship 10.10.3, so its
note says it will rather than should.

FreeBSD's port is still on Budgie 10.9.3 and has not moved to the 10.10
series, so it is no longer listed on Get Budgie or in the FAQ.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Joshua Strobl <me@joshuastrobl.com>
2026-10-22 21:44:14 +03:00
.claude/skills build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
.forgejo build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
.github build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
.husky build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
.vscode build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
.woodpecker build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
public fix(about): align the Organization page and FAQ with the docs 2026-10-22 21:36:37 +03:00
scripts build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
src fix(get-budgie): update distribution statuses and drop FreeBSD 2026-10-22 21:44:14 +03:00
.cursorrules chore: code cleanup and next 16 upgrade 2026-01-11 20:37:59 +02:00
.env.template ci: enable woodpecker + vercel deployment 2026-01-13 22:00:13 +02:00
.git-blame-ignore-revs Add our .git-blame-ignore-revs to ignore our formatting commit 2022-06-01 01:20:01 +03:00
.gitignore build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
AGENTS.md build: upgrade to Next.js 16.4.1 and build with Turbopack 2026-10-22 20:14:19 +03:00
bun.lock chore(components): render static components on the server and drop luxon 2026-10-22 20:46:23 +03:00
bunfig.toml build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
CLAUDE.md build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
CODEOWNERS Add CODEOWNERS 2023-09-17 18:10:11 +03:00
components.json feat: nextjs app router conversion, updated design using tailwindcss + shadcn 2026-01-25 22:14:51 +02:00
CONTRIBUTING.md build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
DCO.txt docs: add contributing guidelines, AI policy, DCO, and agent docs 2026-09-25 20:50:25 +03:00
global.d.ts build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
LICENSE.md Initial commit. 2022-03-26 23:56:57 +02:00
mdx-components.tsx build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00
next.config.js build: upgrade to Next.js 16.4.1 and build with Turbopack 2026-10-22 20:14:19 +03:00
package.json chore(components): render static components on the server and drop luxon 2026-10-22 20:46:23 +03:00
postcss.config.mjs feat: nextjs app router conversion, updated design using tailwindcss + shadcn 2026-01-25 22:14:51 +02:00
README.md build: upgrade to Next.js 16.4.1 and build with Turbopack 2026-10-22 20:14:19 +03:00
tsconfig.json build: switch from Yarn, Node.js, and Biome to Bun and TypeScript 7 2026-10-22 19:51:43 +03:00

Buddies of Budgie Site

This repository houses the Next.js-based website for Buddies of Budgie, an open source organization building the Budgie Desktop environment.

Live Site: buddiesofbudgie.org

Tech Stack

  • Framework: Next.js 16 (App Router) with React 19
  • Language: TypeScript
  • Styling: Tailwind CSS 4
  • UI Components: shadcn/ui with Radix primitives
  • Content: MDX with @next/mdx (file-based, statically generated)
  • Internationalization: next-intl
  • Formatting: bun fmt
  • Package Manager: Bun
  • Build Tool: Turbopack, with the Rust React Compiler

Project Structure

site/
├── src/
│   ├── app/              # Next.js App Router pages
│   ├── components/       # React components
│   │   ├── about/        # About page components
│   │   ├── blog/         # Blog components
│   │   ├── home/         # Home page components
│   │   ├── mdx/          # MDX component overrides
│   │   └── ui/           # shadcn/ui components
│   ├── content/          # MDX content files
│   │   ├── about/        # About pages (FAQ, etc.)
│   │   └── blog/         # Blog posts
│   ├── data/             # Static data files
│   ├── messages/         # i18n translation files
│   └── styles/           # Global styles
├── public/               # Static assets
├── mdx-components.tsx    # Global MDX components configuration
└── next.config.js        # Next.js configuration

Development

Prerequisites

Bun is the only requirement. It installs dependencies, formats, lints, and runs Next.js in place of Node.js ([run] bun = true in bunfig.toml). bun lint is only in canary builds, so install one with bun upgrade --canary.

Setup

bun install

Development Server

Start the development server:

bun run dev

Open http://localhost:3000 in your browser.

Available Commands

bun run dev              # Start development server
bun run build            # Build for production
bun run start            # Serve the static export
bun run ci               # Type check + format check + lint (what CI runs)
bun run format           # Format code with bun fmt
bun run check-types      # TypeScript type check only

Upgrading Dependencies

To upgrade dependencies interactively:

bun update --interactive

Building for Production

bun run build

The build output is a static site in the out/ directory. To serve it locally, run bun run start.

Content Management

Blog Posts

Blog posts are MDX files in src/content/blog/. Each post requires frontmatter:

---
title: 'Post Title'
author: AuthorId
publishDate: '2026-01-01T00:00:00.000Z'
featuredImage: /images/blog/2026/01/image.jpg
excerpt: Short description
tags:
  - news
  - releases
---

Your content here...

MDX Components

Custom MDX components are defined in:

  • src/components/mdx/mdx-components.tsx - Component definitions
  • mdx-components.tsx (root) - Global configuration using useMDXComponents

Available custom components:

  • <Admonition type="info|note|tip|caution|warning|danger"> - Callout boxes
  • <Alert severity="info|warning|error|success"> - Legacy alert component (maps to Admonition)
  • <FAQSection> and <FAQItem> - FAQ components
  • <OCCallout> - Open Collective donation callout

Architecture Notes

MDX Handling

The site uses @next/mdx with dynamic imports for MDX content. Key points:

  • No next-mdx-remote - We use Next.js's native MDX support with @next/mdx
  • Dynamic imports - Blog posts and content are imported dynamically: (await import('@site/content/blog/${slug}.mdx')).default
  • Frontmatter stripping - Handled by remark-frontmatter and remark-mdx-frontmatter plugins
  • Plugins by name - Turbopack can't pass JavaScript functions to Rust, so next.config.js names remark plugins as strings and their options must be serializable

Static Generation

All pages are statically generated at build time:

  • Blog posts: Generated via generateStaticParams
  • FAQ page: export const dynamic = 'force-static'
  • About pages: Fully static

Internationalization

Currently supports English only. Translations are in src/messages/en.json and accessed via useTranslations from next-intl.

Contributing

See CONTRIBUTING.md for commit conventions, DCO sign-off, and the AI policy.

Code Style

  • Format with bun fmt before committing; CI rejects unformatted files. Options live in the [fmt] section of bunfig.toml
  • TypeScript strict mode enabled - avoid any types
  • Components should be functional with TypeScript
  • Follow existing naming conventions

Troubleshooting

MDX Build Errors

If you encounter MDX-related build errors:

  1. Clear build cache: rm -rf .next && bun run build
  2. Verify @mdx-js/loader is installed: bun pm why @mdx-js/loader

Type Errors

Run type checking separately to see detailed errors:

bun run check-types

Resources

License

This project is open source and available under the terms specified in the LICENSE file.