Release Notes

The following changes will be part of the upcoming pretalx release. For already released changes, head over here:

Latest release: 2025.2.2 (2025-12-05)

Next Release

Schedule

  • [Feature] The schedule widget can now show resources (file uploads and links) like the pretalx session pages do.

  • [Feature] You can filter the schedule to show only sessions that will not be recorded. (#1911)

  • [Feature] You can now filter by session language in the public schedule, as well as search for text in the session title and in speaker names.

  • [Feature] Instead of jumping directly to the current time, the pretalx schedule (and schedule widget) now offer a “Jump to now” prompt instead.

  • [Feature] There is now some basic spam protection for the open feedback form.

  • [Fixed bug] The mobile view of the pretalx schedule did not set a background colour, so the pretalx schedule widget was hard to read when embedded on pages with a dark background colour.

  • [Fixed bug] On the “featured sessions” page, only organisers were able to see speaker biographies in the featured sessions.

Call for Papers

  • [Feature] When starting a submission at a new event, speakers are offered their biographies from other events as suggestions, so they don’t have to re-type them.

  • [Feature] Speakers can now use different profile pictures for each event they submit proposals to, with the option to re-use profile pictures they used for other events.

  • [Feature] Resources (file uploads and links) can now be added during initial proposal submission. (#1316)

  • [Feature] Markdown fields now support keyboard shortcuts for formatting (bold, italic, code, link, lists, preview toggle), and pasting a URL with text selected wraps it as a Markdown link. (#2299)

  • [Feature] In fields supporting Markdown, there is now a toolbar helping you with text formatting. (#2299)

  • [Feature] Organisers can ask submitters to add tags to their proposals. Only public tags will be offered here; organisers can still use additional private tags.

  • [Feature] When logging in or changing your password, you can now toggle the plain-text display of the text you’re entering.

  • [Feature] Users are now rate-limited on repeated failed login attempts.

  • [Feature] If organisers set a colour with bad contrast to white font as their primary colour despite all warnings, pretalx will render text on buttons and on the conference header in dark colours rather than in white.

  • [Feature] Organisers can now change the order of fields on each CfP page.

  • [Feature] Organisers can now configure a maximum number of speakers in a proposal.

  • [Feature] When speakers are invited as co-speaker to a proposal, the invite is now tracked and shown to the organisers.

  • [Fixed bug] Access codes that do not specify session types no longer unlock session types that require an access code.

  • [Fixed bug] Confirmation emails for new submissions no longer contain broken image links when image processing runs asynchronously. (#2306)

  • [Announcement] We no longer support pulling in profile pictures from external sources like gravatar.

Organiser backend

  • [Feature] The session search and speaker search can now be set to full-text mode to include all built-in text fields in the search. (#2266)

  • [Feature] The feedback list pages now use sortable table views with optional columns, consistent with other organiser list views. (#2185)

  • [Feature] Access codes can now grant access to multiple tracks and session types at once, instead of being limited to a single track and session type.

  • [Feature] Organisers can now upload a custom preview image that will be shown when event links are shared on social media or messaging apps.

  • [Feature] You can assign an identifier to custom fields, making it easier to use them in APIs and across events consistently. For choice fields, identifiers will be randomly assigned to each answer option as well to guarantee stable access.

  • [Feature] Organisers can now select a secondary sort column in list views.

  • [Feature] Organisers can now select plugins when they create a new event, and if they copy another event’s settings, they can see and override the copied settings immediately.

  • [Feature] When creating a new API token, you can now select and deselect whole rows and columns.

  • [Feature] You can now see which endpoints an existing API token can access.

  • [Fixed bug] Plugin pages (settings, API endpoints) were accessible even when the plugin was not enabled for the event. They now correctly return a 404.

  • [Fixed bug] Reviewers no longer have access to non-public data exporters, which are now restricted to organisers.

  • [Fixed bug] Server administrators would see a button to create a new user on the admin user list, even though pretalx does not have a generic user creation functionality.

  • [Fixed bug] Organisers could not add new review score settings, but could still modify existing score settings.

Organiser backend: E-Mails

  • [Feature] Email sending errors from custom SMTP servers are now detected and reported in the organiser interface, where the sending can be retried.

  • [Feature] The draft proposal reminder email is now a stored template, so that organisers can draft the reminder text ahead of time and reuse it later. (#1424)

  • [Fixed bug] The form to send reminders to open draft proposals was read-only and could not be used.

Organiser backend: Speaker management

  • [Feature] Organisers can now change the order that speakers are listed in on session pages. (#975)

  • [Fixed bug] Clearing a previously set choice question answer on a speaker profile no longer causes a crash.

Organiser backend: Session management

  • [Fixed bug] The tag filter in the submission and review lists now shows the correct submission count instead of always showing (1).

  • [Fixed bug] Sessions without a track always showed with the anonymisation indicator in the organiser session list. (#2220)

Organiser backend: Review process

  • [Fixed bug] Review phases with a future start date are no longer incorrectly marked as active, and active phases can now be deactivated by clicking the active-phase button.

  • [Fixed bug] Reviewers were able to assign tags even when the review phase did not permit them to do so.

  • [Fixed bug] New review scores could only be created with a limited length at first, and could only be longer after having been saved once.

Organiser backend: Scheduling

  • [Feature] The schedule editor now has a grid interval dropdown (60m/30m/15m/5m) next to the condensed/expanded toggle, in addition to the existing click-to-expand behaviour for finer time resolution. (#1606)

  • [Feature] Organisers can now create blocker sessions in the schedule editor. Blocker sessions work similar to breaks, but will never be public, and allow you to reserve schedule slots without accidentally moving another session there. (#1326)

  • [Fixed bug] When using the session form to schedule sessions rather than the schedule editor, organisers could schedule sessions outside the event dates.

API

  • [Feature] The /access-codes/ API endpoint now uses plural tracks and submission_types array fields in the development preview API (accessible via the Pretalx-Version: v-next header). API v1 continues to use singular track and submission_type fields, showing only the first entry.

  • [Feature] Organisers can now add and remove resources (files or links) from submissions via the API. (#2134)

  • [Feature] The review list endpoint now supports additional filters for submission state, pending state, track, submission type, and content locale.

  • [Feature] The submission organiser API now includes the created and updated timestamp fields. Please note that the updated timestamp is not guaranteed to be always set, particularly when only custom fields are being changes. If you need a reliable last modification date, please refer to the object changelog instead.

  • [Feature] At the root API URL, you will now find a link to the event API, as well as the latest API version that is available.

  • [Feature] There is now an API for session feedback.

  • [Fixed bug] API tokens with the Token prefix no longer receive 403 errors on plugin API endpoints.

  • [Fixed bug] When no review phases were active, organisers would not see any reviews in the API.

Administrators

  • [Feature] As administrator, you can now use the sendtestemail command to check if email sending works with the default settings (which are used e.g. for password resets even when event-specific settings are configured), just like the test email sending interface on the administrator page.

  • [Feature] Administrators can now send a test email to the server administrator email address on the administrator page, in order to verify that the instance-global email setup is working. (#1947)

  • [Announcement] If you are running pretalx without Celery workers, you should set them up – without background workers, tasks like sending emails and processing images run inside the request/response cycle, causing noticeably slow page loads.

  • [Announcement] The legacy_data field on activity logs is being removed. This field contained sparse and often incomplete data from before pretalx switched to structured activity logging. If you wish to retain this data, please follow this guide before upgrading to v2026.1.0.

  • [Announcement] When organisers delete a proposal, it is now permanently removed from the database instead of being hidden. Any proposals that were previously soft-deleted will be permanently removed during the upgrade migration. (#2267)

  • [Announcement] pretalx support now requires PostgreSQL 16 or higher.

  • [Announcement] pretalx now requires Python 3.12 or newer.

Developers and plugins

  • [Feature] QueuedMail now tracks its lifecycle via a state field (draft, sending, sent) instead of relying on sent__isnull. Plugins filtering mails should use state instead of sent__isnull. The queuedmail_post_send signal now fires after the mail has been queued for asynchronous delivery, not after it has been delivered. At that point, the mail will be in sending state and mail.sent will be None. Delivery happens asynchronously via Celery, so receivers cannot know whether it will succeed or fail. Check mail.state or mail.has_error later if you need to react to delivery outcomes.

  • [Feature] Plugins can now define settings_links and navigation_links in their metadata to show quick-access links on the plugin management page.

  • [Feature] Plugins can now prevent submission state changes by listening to the new before_submission_state_change signal and raising SubmissionError. (#1974)