Skip to main content
Democratia
Create account
Appearance

Releases

July 30, 2026

Releases are now dated rather than numbered. Manual refresh controls, achievements, a rebuilt notification system, a daily reward, and one page for everything you have earned.

Changed

Releases are identified by date

Democratia no longer has a product version. Every changelog entry is headed by the date it shipped, written as an ISO date in the source and shown in your own language — "July 30, 2026" or "30 de julho de 2026".

A version number is a promise about compatibility that a single deployed application does not need to make, and inventing one invites a question nobody here can answer usefully: is this a minor change or a major one? A date answers the thing a reader actually wants to know.

The footer states the last release date, and links here.

Added

Refresh controls

Poll information goes stale: a phase opens on schedule, somebody adds an option, somebody votes, results are published. Democratia does not use live updates, so instead of pretending the page is live, there is now an explicit refresh control wherever poll information can change.

Refreshing updates the block it belongs to without reloading the page, and re-evaluates everything together — status, deadlines, your participation, the counts, and which actions are offered. A refresh that updated the status text but left a stale button would be worse than no refresh at all.

Your filters, sorting, layout and page are preserved, and a refresh never touches a ballot you are in the middle of filling in.

Each area shows when it was last refreshed. That is the time of your last refresh, not a claim that the page is watching for changes.

Achievements

Milestones, arranged into paths where one unlocks the next. Voting, organising polls, contributing ideas, taking part early, and keeping a daily streak each have a progression.

Achievements award points through the same ledger as everything else, exactly once. They sit alongside the points an action already earns rather than replacing them: an action pays for the thing you did, an achievement pays for the milestone you reached.

A few are hidden until unlocked. None of the core progression is.

Notifications, rebuilt

Notifications now arrive two different ways, and the difference is deliberate.

Something you just did — unlocking an achievement, claiming a reward — appears immediately as a small overlay in the corner, and is filed as already read. You have seen it; the badge should not ask you to look again.

Something that happened while you were away — an invitation, voting opening, results published — waits unread on the bell, and stays there until you read it. Nothing pops up out of nowhere on a later page load.

The notifications page now has filters, per-item read actions, date grouping, and a Mark all as read action. Opening it does not mark everything read.

A daily reward

A small reward you can claim once per calendar day, on your dashboard. Claim on consecutive days and a streak builds, with larger rewards on days 5, 10 and 30. Miss a day and the streak resets.

The cycle caps at day 30 and then repeats, so rewards never inflate. This is a nudge to come back, not a way to out-earn people who actually take part: claiming every day for a month earns less than running a handful of real polls.

No wheels, no loot boxes, no artificial urgency. The reward is never granted automatically: signing in does not claim it, and neither does loading a page.

Points, rewards and achievements on one page

There is now a Rewards page: your balance, a breakdown of where every point came from, the daily reward with its full cycle table, your streak history, and the achievement graph.

The achievements are drawn as framed tiles wired to what they depend on, so a path reads as a path rather than as seventeen unrelated boxes. The frame says what kind of achievement it is; the fill says how far along you are. Selecting a tile describes it underneath, and the same achievements appear below as a plain descriptive list — that is the one to read when deciding what to go and do.

The old /achievements address still works and lands on that section.

The daily reward is offered when you sign in

The first page you load after signing in offers today's reward, if it is unclaimed. It offers — the button still does the claiming. Signing in has never awarded anything and still does not.

Dismiss it and nothing is lost: the reward is available all day from the dashboard or the rewards page. It appears once per sign-in, not once per page.

One row of controls on poll collections

Search, sort, filters, layout and refresh were four separate blocks stacked above the list. They are now one row: a narrow search box, sort and filters as icon buttons that open small panels, and the layout toggle beside the refresh control.

Filters live in a panel that applies them together rather than a permanently expanded form, and the filter button shows how many are applied. Refreshing no longer risks discarding a term you were part way through typing, because the controls sit outside the part of the page a refresh replaces.

One button for creating a poll

The New poll button in the top bar is now the only one. The duplicates on the dashboard and the public poll list are gone: a second copy of the same action a few pixels below the first is noise rather than emphasis.

Pin polls to the top

Any poll on your dashboard can now be pinned, and pinned polls sort to the top of the list. A pin is yours alone — nobody else sees it, and pinning a poll somebody else runs says nothing to them.

A pin decides the order of what you asked for, not what you asked for: a pinned draft still will not appear in a list filtered to "open for voting", and your chosen sort still applies within the pinned group.

Fixed

A daily reward claim was left showing as unread on the bell, even though its card had already been shown on screen. Two notifications written in the same second could not be told apart by time, so the wrong one was marked as read.

The daily reward pop-up and the confirmation dialogs opened pinned to the top-left corner instead of centred: Tailwind's preflight removes the automatic margin a browser gives a modal <dialog>.

The rewards breakdown showed translation keys instead of names for achievement and daily-reward points.

Achievement tiles had broken frames. The corners were cut with a clip path, which is applied after the border is painted and so sliced through it.

Participation figures in a poll's sidebar clipped their labels, because a four-column grid does not fit a sidebar. They are rows now.

A failed refresh discarded the reason it failed, which made a real failure impossible to diagnose. It is logged to the browser console.

Documentation

Four new pages: achievements, notifications, daily rewards and staying up to date, which covers the refresh controls and how releases are dated.