Skip to main content

This is a personal blog and literary space, but I welcome thoughtful collaboration that aligns with my values. Here's how you can contribute.

Ways to Contribute

💬 Community Engagement

The easiest and most valuable way to contribute:

  • Leave thoughtful comments on posts that resonate with you
  • Share responses on your own site with webmentions
  • Join discussions on Mastodon or other platforms
  • Sign the guestbook and introduce yourself

✍️ Guest Writing

I'm open to guest posts that align with this site's themes and voice.

Topics I'm interested in:

  • Writing craft and creative practice
  • Technology's impact on human experience (AI ethics, digital ownership, the Long Web)
  • Literary analysis and book reviews
  • Personal essays on growth, disability, and lived experience
  • IndieWeb, POSSE, and community building
  • Social justice, accessibility, and environmental sustainability
  • Deep time, generational thinking, and legacy

What I'm looking for:

  • Style: Personal, reflective, nuanced voice (not corporate or promotional)
  • Length: 800-3,000 words typically
  • Format: Markdown with proper front matter
  • Approach: Curious rather than declarative, empathetic and inclusive

How to submit:

  1. Email me at mail@brennanbrown.ca with:
    • Brief description of your idea
    • Writing sample or draft
    • Why you think it fits this space
  2. Or create a merge request on GitLab with your post in src/posts/

🛠️ Technical Contributions

Bug fixes and improvements welcome:

  • Accessibility improvements (ARIA labels, semantic HTML, alt text)
  • Performance optimizations (image optimization, caching)
  • IndieWeb feature enhancements (webmentions, WebSub, microformats)
  • Feed improvements (RSS, JSON Feed, Atom)
  • Grammar and typo corrections in existing posts
  • Progressive enhancement features

Recent technical focus areas:

  • Comment system integration and moderation
  • WebSub hub notifications for real-time feed updates
  • Pagefind search indexing
  • Chart.js analytics visualization
  • Image thumbnail generation with @11ty/eleventy-img
  • Service worker for offline functionality
  • Neocities deployment automation

How to contribute code:

  1. Create an issue on GitLab describing the proposed change
  2. Wait for discussion/feedback
  3. Fork the repository and create a descriptive branch
  4. Make your changes following our commit conventions
  5. Test locally with npm run build
  6. Submit a merge request with clear description

Development Setup

# Clone and set up locally
git clone https://gitlab.com/brennankbrown/brennan.day.git
cd brennan.day
npm install
npm start

The site runs on port 8081 by default.

Available commands:

  • npm start - Development server with incremental builds
  • npm run build - Full production build with Pagefind search indexing
  • npm run validate:feeds - Validate RSS and JSON feeds
  • npm run init-comments - Initialize comment system

Commit Conventions

This project uses conventional commits (570+ commits and counting!). All commit messages should follow this format:

<type>: <description>

[optional body]

Types:

  • feat: - New features (e.g., new blog posts, pages, or functionality)
  • fix: - Bug fixes, typo corrections, grammar improvements
  • docs: - Documentation changes
  • style: - Code formatting, CSS changes
  • refactor: - Code restructuring without changing functionality
  • perf: - Performance improvements
  • test: - Adding or updating tests
  • chore: - Maintenance tasks, dependency updates

Examples from recent history:

  • feat: add IndieWeb projects showcase page with 14 themes and tools
  • fix: correct grammar and improve clarity in work-in-progress essay
  • feat: add WebSub support with multiple topic URLs and HTTP Link headers

IndieWeb Principles

This site follows IndieWeb principles. Contributions should support:

  • Own your data: Don't add external dependencies that compromise data ownership
  • Real identity: Use proper attribution and authorship
  • Interoperability: Support webmentions, microformats, and distributed conversations
  • Accessibility: Ensure everyone can access and engage with content
  • Progressive enhancement: Site works without JavaScript

What I'm Less Likely to Accept

  • Features that compromise site simplicity or performance
  • Content that doesn't align with my values
  • Corporate or promotional content
  • Technical changes that break IndieWeb functionality
  • External dependencies that compromise privacy or data ownership

Reporting Issues

Found something broken?

  • Create an issue on GitLab
  • Provide clear details about what's not working
  • Include browser/device information if relevant

License & Attribution

  • Content: CC BY-SA 4.0 (share and adapt with attribution)
  • Code: AGPL-3.0
  • Guest posts: You retain copyright, grant license to publish here
  • Always provide proper attribution for sources and inspirations

Getting in Touch


Thank you for your interest in contributing! This site is built on the principles of community, openness, and thoughtful engagement. Whether you're fixing a typo, writing a guest post, or just leaving a meaningful comment, your contribution matters.

↑ TOP