Skip to main content

October 2025 News

· 6 min read
Brian Pepple
Founder of the Metron Project / Code Monkey

Monthly Statistics

During October the Metron Project added the following to its database:

  • Users: 27
  • Issues: 940
  • Creators: 83
  • Characters: 462

Thanks to everyone that contributed!

Website Changes

I spent most of the month working on improvements to the site.

Major Features

Wiki Integration

One of the most substantial additions to Metron is the integration of django-wiki (#403), replacing the previous flatpages system. This enhancement includes:

  • A wiki with article creation, editing, and history tracking
  • Custom Bulma CSS styling for all wiki templates with dark mode support
  • Support for attachments and images through wiki plugins

I've copied over the information from the old flat pages, but work still needs to be done on adding information that is of use to our users.

Performance Optimizations for Detail Views

A fairly comprehensive performance overhaul (#412) dramatically improved page load times across all detail views:

  • Implemented lazy loading for related resources using HTMX
  • Added prefetch_related() and select_related() to reduce database queries
  • Created reusable LazyLoadMixin to eliminate code duplication
  • Added count annotations to replace separate COUNT queries
  • Introduced pagination for related items on detail pages

Edit History Tracking

The project now includes comprehensive edit history tracking using django-simple-history (#392) compared to our fairly hacky prior implementation:

  • Historical records for all major models (arcs, characters, creators, issues, publishers, series, teams, universes)
  • Dedicated history views showing who edited what and when
  • Improved data audit trail

Feature Enhancements

Issue Credit Duplication

Added a convenient feature to duplicate issue credits (#411), streamlining the workflow when creating issues with similar creative teams.

Variant Price Support

Extended the variant model to support price information (#391), including price and currency fields.

Money Field Migration

Migrated the Issue price field to use proper MoneyField (#390) using a multi-step database migrations:

  • Currency support with custom widget for price entry
  • Safe data migration preserving existing price information
  • Enhanced API serialization for price data

Reprint Story Management

Added functionality to sync characters, teams, and story titles to collections (#372, #373) from the issues being reprinted which should make it a bit easier to add collected editions.

Code Quality Improvements

Refactoring Efforts

A bunch of refactoring was done to improve code maintainability:

  • Model refactoring (#409): Cleaned up model properties and methods
  • View refactoring (#407): Introduced constants and mixins for DRY code
  • API refactoring (#406, #405): Streamlined serializers across all endpoints
  • Template refactoring (#374, #375): Reorganized templates with new partial system and improved Bulma CSS integration

Query Optimization

Optimized database querysets across all major views (#408) using select_related() and prefetch_related() to reduce N+1 query problems.

Testing

Added comprehensive test coverage:

  • README files for test directories (#404)
  • ForeignKey history tracking tests
  • Improved test fixtures and factories

User Experience Improvements

Template Modernization

Significant template improvements focused on consistency and usability:

  • Introduced reusable partials for forms, pagination, and card grids
  • Enhanced empty states and error messages
  • Improved mobile responsiveness

UI/UX Enhancements

  • User profile pages now show contribution statistics
  • Better icon consistency across the interface
  • Improved text contrast for accessibility
  • Integration of Bulma Calendar for date inputs

Infrastructure & Dependencies

Django Updates

  • Updated to Django 5.2.7 (#371) and subsequent patch releases
  • Added django-money for proper currency handling
  • Integrated django-htmx for performance optimizations

Code Quality Tools

  • Updated pre-commit hooks and code formatting rules (#401)
  • Enforced consistent code style with djlint and ruff

API Improvements

  • Enhanced pagination schema definitions (#398) (Artem Ryabkov)
  • Improved serializers for better API response efficiency
  • Fixed edge cases in various API endpoints

Bug Fixes & Minor Improvements

  • Fixed template rendering for mobile devices (#395)
  • Improved empty state handling (#399)
  • Enhanced form validation and error handling
  • Better currency display in API responses
  • Fixed various template formatting issues

Future Plans

I've started to think about what I'd like to work on next year, and the big item is to reduce the project reliance on me. In particular, I want to address:

Financial Independence

Over the past six years, I've covered the hosting costs and related expenses (domain registration, email services, etc.). Recently, I've started drawing from the project's OpenCollective funds, which currently provide approximately 11 months of runway at our current capacity.

The Goal: Build a sustainable funding base through many small contributions ($2-$5/month) rather than relying on a few large donors. This distributes the financial responsibility and ensures the project's long-term stability.

How You Can Help:

  • Share ideas for attracting recurring financial supporters
  • Suggest ways to recognize and thank contributors (I'm considering adding OpenCollective widgets to the site)
  • Spread the word about the project's funding needs

If you have suggestions or feedback, please reach out!

Governance

As the project has grown, so has the need to evolve from a single-person decision-making model to a more collaborative governance structure. While centralized decision-making worked well in the early days, enabling quick iterations and changes, but as the project has matured it make sense to add more leadership.

Why Change: Distributing governance responsibilities will:

  • Bring diverse perspectives to project decisions
  • Reduce dependency on a single maintainer
  • Create more opportunities for community involvement
  • Ensure the project's continuity and resilience

Next Steps: I'm researching governance models from similar projects, particularly the Grand Comics Database (GCD), to understand what structures work well for community-driven comic databases. My experience with Fedora Project governance provides a foundation, though Metron likely needs a different, more streamlined approach given our scope and community size.

I'll be starting a discussion thread on our GitHub Discussions page soon. If you're interested in helping shape Metron's governance structure, please join the conversation or reach out directly.

OpenCollective

If you would like to help keep the lights on at the project, we have an account at Open Collective to defray the servers costs and help with increasing future server capacity.

Anyway, I think that everything for this month! Take care.