|
| 1 | +--- |
| 2 | +title: October 2025 News |
| 3 | +slug: october-2025-update |
| 4 | +date: 2025-11-09T15:06 |
| 5 | +authors: [ bpepple ] |
| 6 | +tags: [ comic, metron, opencollective ] |
| 7 | +--- |
| 8 | + |
| 9 | +# October 2025 News |
| 10 | + |
| 11 | +## Monthly Statistics |
| 12 | + |
| 13 | +During October the [Metron Project](https://metron.cloud/) added the following to its database: |
| 14 | + |
| 15 | +- Users: **27** |
| 16 | +- Issues: **940** |
| 17 | +- Creators: **83** |
| 18 | +- Characters: **462** |
| 19 | + |
| 20 | +Thanks to everyone that contributed! |
| 21 | + |
| 22 | +## Website Changes |
| 23 | + |
| 24 | +I spent most of the month working on improvements to the site. |
| 25 | + |
| 26 | +### Major Features |
| 27 | + |
| 28 | +#### Wiki Integration |
| 29 | +One of the most substantial additions to Metron is the integration of **django-wiki** ([#403](https://github.com/Metron-Project/metron/pull/403)), replacing the previous flatpages system. This enhancement includes: |
| 30 | +- A wiki with article creation, editing, and history tracking |
| 31 | +- Custom Bulma CSS styling for all wiki templates with dark mode support |
| 32 | +- Support for attachments and images through wiki plugins |
| 33 | + |
| 34 | +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. |
| 35 | + |
| 36 | +#### Performance Optimizations for Detail Views |
| 37 | +A fairly comprehensive performance overhaul ([#412](https://github.com/Metron-Project/metron/pull/412)) dramatically improved page load times across all detail views: |
| 38 | +- Implemented lazy loading for related resources using HTMX |
| 39 | +- Added `prefetch_related()` and `select_related()` to reduce database queries |
| 40 | +- Created reusable `LazyLoadMixin` to eliminate code duplication |
| 41 | +- Added count annotations to replace separate COUNT queries |
| 42 | +- Introduced pagination for related items on detail pages |
| 43 | + |
| 44 | +#### Edit History Tracking |
| 45 | +The project now includes comprehensive edit history tracking using **django-simple-history** ([#392](https://github.com/Metron-Project/metron/pull/392)) compared to our fairly hacky prior implementation: |
| 46 | +- Historical records for all major models (arcs, characters, creators, issues, publishers, series, teams, universes) |
| 47 | +- Dedicated history views showing who edited what and when |
| 48 | +- Improved data audit trail |
| 49 | + |
| 50 | +### Feature Enhancements |
| 51 | + |
| 52 | +#### Issue Credit Duplication |
| 53 | +Added a convenient feature to duplicate issue credits ([#411](https://github.com/Metron-Project/metron/pull/411)), streamlining the workflow when creating issues with similar creative teams. |
| 54 | + |
| 55 | +#### Variant Price Support |
| 56 | +Extended the variant model to support price information ([#391](https://github.com/Metron-Project/metron/pull/391)), including price and currency fields. |
| 57 | + |
| 58 | +#### Money Field Migration |
| 59 | +Migrated the Issue price field to use proper MoneyField ([#390](https://github.com/Metron-Project/metron/pull/390)) using a multi-step database migrations: |
| 60 | +- Currency support with custom widget for price entry |
| 61 | +- Safe data migration preserving existing price information |
| 62 | +- Enhanced API serialization for price data |
| 63 | + |
| 64 | +#### Reprint Story Management |
| 65 | +Added functionality to sync characters, teams, and story titles to collections ([#372](https://github.com/Metron-Project/metron/pull/372), [#373](https://github.com/Metron-Project/metron/pull/373)) from the issues being reprinted which should make it a bit easier to add collected editions. |
| 66 | + |
| 67 | +### Code Quality Improvements |
| 68 | + |
| 69 | +#### Refactoring Efforts |
| 70 | +A bunch of refactoring was done to improve code maintainability: |
| 71 | +- **Model refactoring** ([#409](https://github.com/Metron-Project/metron/pull/409)): Cleaned up model properties and methods |
| 72 | +- **View refactoring** ([#407](https://github.com/Metron-Project/metron/pull/407)): Introduced constants and mixins for DRY code |
| 73 | +- **API refactoring** ([#406](https://github.com/Metron-Project/metron/pull/406), [#405](https://github.com/Metron-Project/metron/pull/405)): Streamlined serializers across all endpoints |
| 74 | +- **Template refactoring** ([#374](https://github.com/Metron-Project/metron/pull/374), [#375](https://github.com/Metron-Project/metron/pull/375)): Reorganized templates with new partial system and improved Bulma CSS integration |
| 75 | + |
| 76 | +#### Query Optimization |
| 77 | +Optimized database querysets across all major views ([#408](https://github.com/Metron-Project/metron/pull/408)) using `select_related()` and `prefetch_related()` to reduce N+1 query problems. |
| 78 | + |
| 79 | +#### Testing |
| 80 | +Added comprehensive test coverage: |
| 81 | +- README files for test directories ([#404](https://github.com/Metron-Project/metron/pull/404)) |
| 82 | +- ForeignKey history tracking tests |
| 83 | +- Improved test fixtures and factories |
| 84 | + |
| 85 | +### User Experience Improvements |
| 86 | + |
| 87 | +#### Template Modernization |
| 88 | +Significant template improvements focused on consistency and usability: |
| 89 | +- Introduced reusable partials for forms, pagination, and card grids |
| 90 | +- Enhanced empty states and error messages |
| 91 | +- Improved mobile responsiveness |
| 92 | + |
| 93 | +#### UI/UX Enhancements |
| 94 | +- User profile pages now show contribution statistics |
| 95 | +- Better icon consistency across the interface |
| 96 | +- Improved text contrast for accessibility |
| 97 | +- Integration of Bulma Calendar for date inputs |
| 98 | + |
| 99 | +### Infrastructure & Dependencies |
| 100 | + |
| 101 | +#### Django Updates |
| 102 | +- Updated to **Django 5.2.7** ([#371](https://github.com/Metron-Project/metron/pull/371)) and subsequent patch releases |
| 103 | +- Added **django-money** for proper currency handling |
| 104 | +- Integrated **django-htmx** for performance optimizations |
| 105 | + |
| 106 | +#### Code Quality Tools |
| 107 | +- Updated pre-commit hooks and code formatting rules ([#401](https://github.com/Metron-Project/metron/pull/401)) |
| 108 | +- Enforced consistent code style with djlint and ruff |
| 109 | + |
| 110 | +### API Improvements |
| 111 | + |
| 112 | +- Enhanced pagination schema definitions ([#398](https://github.com/Metron-Project/metron/pull/398)) (Artem Ryabkov) |
| 113 | +- Improved serializers for better API response efficiency |
| 114 | +- Fixed edge cases in various API endpoints |
| 115 | + |
| 116 | +### Bug Fixes & Minor Improvements |
| 117 | + |
| 118 | +- Fixed template rendering for mobile devices ([#395](https://github.com/Metron-Project/metron/pull/395)) |
| 119 | +- Improved empty state handling ([#399](https://github.com/Metron-Project/metron/pull/399)) |
| 120 | +- Enhanced form validation and error handling |
| 121 | +- Better currency display in API responses |
| 122 | +- Fixed various template formatting issues |
| 123 | + |
| 124 | +## Future Plans |
| 125 | + |
| 126 | +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: |
| 127 | + |
| 128 | +### Financial Independence |
| 129 | + |
| 130 | + 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](https://opencollective.com/metron) funds, which currently provide approximately 11 months of runway at our current capacity. |
| 131 | + |
| 132 | + **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. |
| 133 | + |
| 134 | + **How You Can Help:** |
| 135 | + - Share ideas for attracting recurring financial supporters |
| 136 | + - Suggest ways to recognize and thank contributors (I'm considering adding [OpenCollective widgets](https://documentation.opencollective.com/collectives/raising-money/adding-donation-buttons-badges-and-banners) to the site) |
| 137 | + - Spread the word about the project's funding needs |
| 138 | + |
| 139 | + If you have suggestions or feedback, please reach out! |
| 140 | + |
| 141 | +### Governance |
| 142 | + |
| 143 | + 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. |
| 144 | + |
| 145 | + **Why Change:** Distributing governance responsibilities will: |
| 146 | + - Bring diverse perspectives to project decisions |
| 147 | + - Reduce dependency on a single maintainer |
| 148 | + - Create more opportunities for community involvement |
| 149 | + - Ensure the project's continuity and resilience |
| 150 | + |
| 151 | + **Next Steps:** I'm researching governance models from similar projects, particularly the [Grand Comics Database (GCD)](https://www.comics.org/), to understand what structures work well for community-driven comic databases. My experience with [Fedora Project](https://fedoraproject.org/) governance provides a foundation, though Metron likely needs a different, more streamlined approach given our scope and community size. |
| 152 | + |
| 153 | + I'll be starting a discussion thread on our [GitHub Discussions page](https://github.com/Metron-Project/metron/discussions) soon. If you're interested in helping shape Metron's governance structure, please join the conversation or reach out directly. |
| 154 | + |
| 155 | +## OpenCollective |
| 156 | + |
| 157 | +If you would like to help keep the lights on at the project, we have an account at [Open Collective](https://opencollective.com/metron) to defray the servers costs and help with increasing future server capacity. |
| 158 | + |
| 159 | +Anyway, I think that everything for this month! Take care. |
0 commit comments