Skip to content

Commit a48c953

Browse files
authored
January 2026 Blog Entry (#43)
* January 2026 blog entry
1 parent 80e2efe commit a48c953

1 file changed

Lines changed: 161 additions & 0 deletions

File tree

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
---
2+
title: January 2026 News
3+
slug: january-2026-update
4+
date: 2026-02-01T12:26
5+
authors: [ bpepple ]
6+
tags: [ comic, metron, opencollective, api ]
7+
---
8+
9+
# January 2026 News
10+
11+
## Monthly Statistics
12+
13+
During January the [Metron Project](https://metron.cloud/) added the following to its database:
14+
15+
- Users: **169**
16+
- Issues: **2,238**
17+
- Creators: **395**
18+
- Characters: **1,430**
19+
20+
Thanks to everyone that contributed!
21+
22+
## Website Updates
23+
24+
### New Features
25+
26+
**Scrobble API Support**
27+
28+
A new `/scrobble` endpoint allows users to quickly mark issues as read via the API with optional rating and timestamp. This enables integration with third-party reading apps and automated tracking workflows. The `date_read` field was migrated from a date to datetime for more precise tracking.
29+
30+
**Reading History**
31+
32+
Users can now view their reading history in a timeline layout with daily grouping. Recent reading activity also appears on user profile pages.
33+
34+
**Multiple Read Dates**
35+
36+
Collection items now support tracking multiple read dates, since comic issues are often re-read over time. The UI includes HTMX-powered controls for adding and removing read dates directly from the detail page.
37+
38+
**Community View**
39+
40+
User profiles now use username-based URLs (`/accounts/username/`) instead of numeric IDs. A new user list view with search functionality was added, making it easier to find and view other community members.
41+
42+
### Improvements
43+
44+
**HTMX Migration**
45+
46+
Significant portions of the frontend JavaScript have been replaced with HTMX:
47+
- Global HTMX import in the base template
48+
- Navbar burger menu converted to HTMX
49+
- File upload handlers simplified with inline onchange attributes
50+
- Notification dismissals now use HTMX
51+
- Modal dialogs for read date deletion converted to HTMX
52+
- Removed several legacy JavaScript files (jquery.formset.js, bulma-modal.js, bulma-navbar-burger.js, bulma-notifications.js)
53+
54+
**Auto-Dismissing Notifications**
55+
56+
Non-error notifications now automatically disappear after 5 seconds. Error messages remain visible until manually dismissed.
57+
58+
**Issue Autocomplete Search**
59+
60+
The issue autocomplete now supports more flexible searching:
61+
- Search terms can be in any order ("Spider Amazing" matches "Amazing Spider-Man")
62+
- Series year filtering using parentheses (e.g., "Speed Racer (2025) #4")
63+
64+
**Email Compatibility for Account Activation**
65+
66+
Updated how Metron sends account activation emails to ensure they display correctly across all major email clients.
67+
68+
The changes include:
69+
70+
- **Multipart emails**: Activation emails now send both HTML and plain text versions, ensuring users can read them regardless of their email client settings
71+
- **Universal styling**: Replaced CSS stylesheets with inline styles, since Gmail and Outlook strip CSS from the `<head>` section
72+
- **Table-based layout**: Switched from div-based layouts to tables for consistent rendering in older email clients
73+
- **Better color support**: Removed CSS gradients in favor of solid colors for Outlook compatibility
74+
- **Web-safe fonts**: Now using Arial and Helvetica instead of system fonts for cross-platform consistency
75+
76+
These updates should ensure new users have a smooth onboarding experience, regardless of whether they use Gmail, Outlook, Apple Mail, or any other email client.
77+
78+
### Bug Fixes
79+
80+
- Fixed duplicate issue creation race condition—users now see a friendly error instead of a 500 error
81+
- Fixed SlugRedirectView when requesting non-existent items
82+
- Fixed success message formatting in user account activation
83+
- Fixed sequential read date deletion (HTMX event handlers now reinitialize properly after content swaps)
84+
85+
### Infrastructure
86+
87+
- Updated to Django 5.2.10
88+
- Removed request for GitHub stars from the welcome flow
89+
90+
## Desaad Updates
91+
92+
The following changes were made to [Desaad](https://codeberg.org/bpepple/desaad).
93+
94+
### Scrobbling to Metron
95+
96+
Issue scrobbling was added this month, and more information on it can be found in this [blog post](../2026-01-09-scrobble/index.md).
97+
98+
### Database Migration to PostgreSQL
99+
100+
The application has migrated from SQLite to PostgreSQL. This followed an initial attempt to improve SQLite concurrency with WAL mode and retry logic, but PostgreSQL proved to be a better fit for handling concurrent operations during comic imports while the web server is running.
101+
102+
#### Reader Improvements
103+
104+
The comic reader received several updates:
105+
106+
- Added previous/next issue navigation for reading through a series
107+
- Added gesture hints overlay to help users discover touch controls
108+
- Implemented browser caching for page images with proper HTTP cache headers (ETag, Cache-Control)
109+
- Improved performance by using the stored page count from the database rather than reading from the archive each time
110+
- Added customizable auto-hide delay for reader controls
111+
112+
After testing both approaches, the reader reverted to using base64 image data instead of image URLs, as this provided a better reading experience.
113+
114+
### Background Task Processing
115+
116+
The app now uses Django 6.0's Tasks framework with django-tasks[rq] for several operations:
117+
118+
- **Reading list imports** now run asynchronously with status polling via HTMX
119+
- **Cover extraction** is deferred to a background queue, making initial imports faster
120+
- **Missing reading list items** are automatically linked when matching issues are imported
121+
122+
### Metron Integration
123+
124+
A new `import_reading_status` management command allows users to sync their reading history from their Metron collection. This imports completion status and ratings for issues that match by Metron ID. Currently, it only imports the read status, but in the near future it will add the dates the issues were read on also.
125+
126+
### HTMX Adoption
127+
128+
Replaced JavaScript with HTMX in several places:
129+
130+
- Notification dismiss buttons
131+
- Reading list detail page (delete modal, hide/show missing toggle)
132+
- Navbar burger menu
133+
134+
### Other Changes
135+
136+
- Added sorl-thumbnail with Redis cache backend for cover images
137+
- Added cover images to the series list view
138+
- Added a home view showing next unread issues for started series
139+
- Added completion indicators to reading list overview
140+
- Added django-debug-toolbar for development
141+
- Various container and deployment fixes
142+
143+
## OpenCollective
144+
145+
A huge thank you to everyone who has contributed to our [Open Collective](https://opencollective.com/metron)! Your support makes a real difference in keeping the Metron Project running and growing.
146+
147+
### What Your Contributions Support
148+
149+
Funds from Open Collective go directly toward:
150+
151+
- **Server hosting costs** - Keeping the Metron website and API available
152+
- **Domain registration** - Annual domain name renewals
153+
- **Future capacity increases** - Scaling resources as the database and user base grows
154+
155+
All expenses are transparent and publicly viewable on our [Open Collective page](https://opencollective.com/metron), so you can see exactly where every dollar goes.
156+
157+
### Support the Project
158+
159+
If you'd like to help keep the lights on and support continued development, contributions of any size are appreciated and help ensure Metron remains a free resource for the comic book community.
160+
161+
Anyway, that's everything for this month! Take care.

0 commit comments

Comments
 (0)