Buddies of Budgie website https://buddiesofbudgie.org
  • MDX 65.4%
  • TypeScript 32.8%
  • CSS 1.3%
  • JavaScript 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Joshua Strobl faa5b5359a
Some checks failed
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/deploy Pipeline was canceled
ci/woodpecker/manual/deploy Pipeline was successful
fix(get-budgie): update Fedora Budgie for the Fedora 45 release
Fedora 45 is out and ships Budgie 10.10.3 on both the Spin and Atomic,
with Budgie 10.10.4 following soon as an update.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Joshua Strobl <me@joshuastrobl.com>
2026-11-03 10:59:37 +02: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 feat(get-budgie): list aerynOS as ready to use with Budgie 10.10.4 2026-11-02 23:41:15 +02:00
scripts feat: improve search and answer engine visibility 2026-11-01 16:14:52 +02:00
src fix(get-budgie): update Fedora Budgie for the Fedora 45 release 2026-11-03 10:59:37 +02: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 feat(blog): add Budgie 10.10.4 release post (#8) 2026-11-01 17:20:50 +01: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 feat(blog): add Budgie 10.10.4 release post (#8) 2026-11-01 17:20:50 +01:00
package.json feat(blog): add Budgie 10.10.4 release post (#8) 2026-11-01 17:20:50 +01: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.