Skip to content

Commit 55eda39

Browse files
authored
October 2020 Blog Entry (#36)
* October blog entry
1 parent 94be73f commit 55eda39

1 file changed

Lines changed: 159 additions & 0 deletions

File tree

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
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

Comments
 (0)