What's new
All changes — chronologically. Filter by category if you only care about one type. Bug fixes are hidden by default — click "Fixed" to show them.
New here? SmartDart is free — create a darts tournament, score it live, share the results. No download, and no account needed for your players.
Create tournamentClearer messages for boards and at the board
When you generate boards, you now see how many boards this tournament's plan still allows. If you need more, we show you your options right away — instead of a message saying you lack permission. As a co-admin, you learn that the tournament creator can upgrade.
At the board, a match that another device has just finished is no longer a red error: you get a short note and the view refreshes. If a board is busy, the message names the pairing currently playing there — in the English interface too.
Public schedule: the status is no longer a button
In a league's public schedule, the status of upcoming fixtures was shown in an outlined box. It looked like a button but led nowhere. It is now plain text — only fixtures in progress stay highlighted.
Correct a matchday after the fact
A typo while entering a matchday no longer costs you the whole evening. In your ranking series, open the “Matchdays” tab: every manually entered matchday now has a new “Edit results” entry behind the three dots.
It shows every value you entered — you only change what was wrong. You can also adjust the date and name of the matchday. Added someone by mistake? Take them off the list; we ask once more before saving. Someone missing? Add them.
The standings and the public results page show the correction right away.
Thanks to the club that asked for this.
Your player spot now belongs to your device
When you join a tournament as a player, your spot is now reserved for you. A second device can no longer take the same spot — only you enter your results. Your own phone still recognises you automatically, and if you are signed in with an account you can reach your spot from a new device too.
For the honest case — flat battery, cleared browser data, new phone — there is a new option: in the players tab, the organiser will find a padlock icon “Release spot” next to every name. One click and the player can sign in again. They stay in the tournament; this only affects access — results and statistics are untouched.
Thanks to the user who reported this.
Rank doubles separately, record your shortest leg, empty columns disappear
Three improvements to ranking series, all from the same piece of feedback.
Doubles as their own ranking: If you keep a doubles pair as its own entry — say "Anna Berger and Tim Gross" — you can now mark it as a doubles pair in the player pool. A switch then appears above the standings: all, singles only, doubles only. Each view counts places from 1, so you get a singles, a doubles and an overall ranking from the same data. The switch is on the public results page too — your team can filter without an account.
Shortest leg: When you enter a matchday by hand, there is now a field for your shortest leg in darts, right next to the number of short legs. One number per night, just like the highest checkout — no need to record every leg. This also fills the "Shortest leg" leaderboard, which stayed empty for hand-entered matchdays until now.
Checkout rate fixed: The "Checkout %" column always showed a dash or 0 % — in standings and in the league singles ranking. It was counted correctly all along, it just never made it to the screen. Your real rate is there now. And a shortest leg with an impossible dart count no longer counts as a season record.
Empty columns disappear: Columns where your series has no value at all are no longer shown in the full stats — the table gets narrower and you swipe less. As soon as a value appears anywhere, so does the column. Columns that award bonus points in your series always stay.
Short legs, high finishes and singles/doubles now show up in the stats
If you record short legs, high finishes or a separate singles/doubles record in a ranking series, you got the bonus points — but the numbers themselves were nowhere to be seen afterwards. That has changed.
You will find them in four places: in the standings under "Full stats" as their own columns, in the statistics tab as a season total and a leaderboard, in the player detail as a tile and per matchday — and on the public results page, so your team can follow along without an account.
The columns only appear if your series actually awards that bonus. And the points overview above the table now lists the short-leg bonus with its threshold too — until now it explained every bonus except that one.
Key tone when entering scores at the board
If you keep score at the board, you can now get an audible confirmation: a short beep for each digit and a lower tone once the visit is booked. On a tablet lying flat on the table you cannot always tell whether your tap registered.
The tone is off by default. Turn it on at the board under the settings button (the one showing the percentage), under "Key tone". The setting applies only to the device you set it on — the tablet at board 1 can beep while board 2 stays silent.
Live ticker: rearranged and outstanding matches now appear
Your league's live ticker shows the matchday that currently matters for each division. That had a catch: a fixture that was not played on its matchday, or whose result was never entered, simply disappeared afterwards. Anyone opening the ticker link in the WhatsApp group saw a matchday that looked complete — with no hint that something from the weeks before was still outstanding.
Below the division boxes there is now a second block: "Still open from earlier matchdays". It is grouped by division, oldest first, and every row says why it is open — postponed with no new date yet, a rearranged date already set (with day and time), played out and only waiting for the away team to confirm, or the result still missing. If there are only a few, the block is open straight away; with many it starts collapsed so the live matches stay at the top. If nothing is outstanding, it does not appear at all.
Two things at the top of the ticker were put right along the way: a postponed fixture on the current matchday still showed its old start time — it now reads "postponed", so nobody drives to the pub on an evening when no darts are thrown. And a fixture that had been played out and was only awaiting confirmation used to stick in the current box for weeks; it now sits below with the open items, where it belongs.
Rankings: SmartDart now works out the points for matchdays you enter by hand, too
When you entered a matchday by hand, only the number of points you typed yourself counted. Your settings for points per win, per leg won, for 180s or high finishes had no effect — they only applied to matchdays played inside the app. Anyone entering by hand had to do the maths themselves, and nothing said so.
That has changed: the matchday dialog now has a “calculate points automatically” switch. With it on, you only enter what was actually played — wins, legs, highlights — and SmartDart turns that into points using your own settings. You see the total next to each name as you type. If you prefer to do the maths yourself, switch it off and everything stays as it was; matchdays already entered remain untouched either way.
Three more things, all optional. You can record singles and doubles separately — four fields each instead of one match record, counting equally in the scoring. You can award a bonus for short legs: points for every leg won with no more darts than you specify (18 is preset). For matchdays played in the app, SmartDart counts the short legs by itself.
And next to the highest checkout there is now a field for the number of high finishes. That is more than an extra column: until now, for a matchday entered by hand, SmartDart could only tell whether there had been any finish above your threshold at all — so the bonus counted at most once per evening, however many you threw. Enter the number and every single one counts, just like your 180s. Leave the field empty and everything stays as before, and matchdays already entered do not change.
On a phone every player now gets their own expandable card instead of a table you have to scroll sideways. Thanks to Kevin, who prompted exactly this.
Projector rankings: long names no longer wrap
On the projector view of a ranking, the medal for the top three sat in front of the name — taking exactly the space the name needed. “Jonas Schmidt” turned into a two-line “Jonas / S.”, right down half the table.
The medal now sits in the position column, where there is room anyway, and names stay on one line. While we were at it, silver and bronze are tinted just like gold — previously only first place was highlighted.
Rankings go public: their own directory at smartdart.app/rankings
Rankings now have their own public directory — just like leagues already do. At smartdart.app/rankings anyone can browse rankings whose organisers have released them: with overall standings, matchdays, number of players and the winner. If you just want to see what such a season looks like, there is an example to click through. And if you have a code on a piece of paper, type it into the field at the top and you land straight on the right page.
What is also new: you decide who may see your ranking. Until now every ranking was reachable via its link with no way to change that. You now have three levels: private (only you), reachable via link (anyone with the link or QR code — as before) or listed in the directory (people can then also find you through Google). All existing rankings stay reachable exactly as before — shared links and printed QR codes keep working unchanged. Only those who flip the switch themselves end up in the directory.
One thing to keep in mind when listing: from then on your players' names are publicly visible. Only include names whose owners agree to that. You can take your ranking out again at any time — even if your subscription has expired in the meantime.
Club tournaments: co-admins no longer hit their own plan limit
Anyone made a co-admin in a club should be able to help run the fixtures. Until now, though, creating a club tournament checked their personal plan rather than the club's: with a free account it stopped after exactly one tournament, and only the three basic formats were on offer — even though the club pays for Premium.
From now on the club provides the allowance, just as it always has for members and placeholders. That applies to creating and to starting alike, and it means a club tournament uses the club's player and board limits.
Also: duplicating a tournament re-created every participant as an anonymous copy. Results from the clone therefore showed up in no personal statistics. Anyone with an account now stays themselves when a tournament is duplicated.
Standings page: visitors can now see they may link to their entry
The public page of a ranking series is deliberately reachable without signing in — the link goes into the group chat and everyone takes a look. But anyone who read their own name in the table there and wanted to know how they were doing across the season got no hint at all that a free account exists for exactly that. The "Are you one of these players?" button was only shown to people who were already signed in.
Now everyone else sees a short card: is your name in this table? With a free account you link yourself to your entry and see your own statistics — average, your recent matches and how you compare. After signing up you land back on the very standings page you came from.
Club stats: a leaderboard you can actually trust
The club leaderboard under „Stats" was telling you three things that were not true — and in the light theme almost nothing below fourth place was readable. That is fixed.
Someone who had won a single game showed up on top with „100 %" — ahead of someone with 22 wins from 22 games. Every row now carries the record („22–0 · 22 games"), and ranking starts at three games. Anyone with fewer still appears below with their numbers, just without a position.
Members who had never played were sorted to the bottom with „win rate 0 %", as if they had lost. They now sit in their own line, „No games yet".
The average is only recorded for tournaments scored throw by throw. When it was missing, the list still said „0.0". Now it shows a dash — no value is not the same as zero.
Also new: 140s are part of the list, a bar shows the gap to the leader, and you can still sort by everything — win rate, average, 180s, 140+, 60+, 26s, highest finish and appearances. The page also loads noticeably faster.
Registering a player: home town and date of birth are now included
Until now, registering a player with the league only asked for a first and last name — everything else was optional. In practice those fields stayed empty, and the league board was missing exactly the details it needs for a player pass.
From now on the same rule applies on all three routes — as a captain under „My team“, via the league public form and in the board area: first name, last name, home town and date of birth have to be filled in before the registration can be sent. The captain form did not even have a field for the home town before.
The player number stays optional. Anyone who has been registered in this league before enters their existing number and keeps it — that field is now available in the public form as well. Anyone new to the league simply leaves it empty; the board assigns the number on approval.
Thanks to Jan from Mittelthüringer Dartliga for the suggestion.
Group stage: up to 32 players can now reach the knockout phase
For tournaments with a group stage you could previously send at most 16 players into the knockout phase. For large fields that was too few: if you start with 48 players in eight groups, you want the top four of each group to go through — that is 32.
The "Players in KO phase" choice now also offers "Top 32". That creates a proper 32-player bracket: round of 32, round of 16, quarter-finals, semi-finals, final. The new first round is named correctly everywhere — in the bracket, on the projection screen and on the results page.
The option is available on both paths to a new tournament (quick and detailed), for Groups + KO as well as for the Champions League, and it can still be changed under "Settings" before the tournament starts. The explanation below keeps up: with 32 places and eight groups it reads "Top 4 from each of the 8 groups".
The size of the consolation bracket stays unchanged at up to 16 players.
Thanks to Dartclub Mering/St. Afra for the suggestion.
Editing players: the card now shows that you can tap it
In a league's player management, the player card on mobile gave no hint that it can be tapped. Anyone wanting to correct a misspelled name went looking for a pencil that does not exist there — editing happens in the detail sheet that opens when you tap the card.
The card now carries a small arrow on the right. Deliberately not a second button: another tightly packed icon in a row whose width depends on the team name was exactly the previous problem.
League: live ticker — every division on one page
The public league now has a live ticker. It shows how the evening currently stands — across every division, on a single page.
One box per division, listing the fixtures as team versus team with the score in games. No legs, no breakdown by pairing: the view you actually want when you just need to know how the night is going. Matches in progress sit at the top marked "in progress", finished ones below with their final score, and those not started yet in grey with their throw-off time.
The ticker has its own link that can be dropped straight into a WhatsApp group or channel. Tapping it opens the ticker immediately — no account, no searching. A button on the page copies the link or opens the phone's share sheet.
Scores refresh by themselves, roughly every 20 seconds. Because captains enter their results game by game, the score really does move during the evening instead of jumping from 0-0 to the final result at the end.
You reach the ticker via the "Live ticker" button at the top of the public league page. If something is running right now, the count sits next to it.
League: managing players now has its own section
Player management used to sit behind a button called "Player numbers" — inside the Registrations section, among five buttons that all looked alike. The section actually named "Players" was the singles ranking. Anyone looking for their players was looking in the wrong place.
There is now a dedicated "Players" section. It works independently of the season — including the off-season, when squad work actually happens.
Date of birth and town are proper columns now, no longer a small grey line under the name. Above the list a summary shows how many players there are, how many have pass details, how many have no team and how many are blocked. Clicking "No pass data" filters down to exactly those still missing something — the working list for issuing passes.
On a computer the list is a real table with fixed columns; edit and delete live in a menu at the end of each row. Previously the pencil and the team selector could overlap, depending on how long a team name was.
On phone and tablet each row becomes a card. A tap opens a sheet with every detail and every action — full-width controls instead of everything squeezed side by side. On a tablet the cards sit in two columns.
Navigation got easier too: on small screens the section bar, which only ever showed two and a half entries, becomes a dropdown listing every section at once. The header card with the join code can be collapsed so the actual work starts sooner.
Checkout pages: what happens when the first dart misses
Until now the checkout pages showed the recommended route and the alternatives — the plan. At the board the opposite gets asked just as often: what if the first dart does not land where it should?
Every checkout page now answers that for its own remaining score, in three cases: the dart lands · you hit the single instead of the treble · the dart misses entirely. Each case says what is left and whether the remaining two darts of the visit can still finish it.
An example: on 170, a treble 20 that lands leaves 110 — finishable with treble 20 and bullseye. Hit the plain 20 instead and 150 remains, ending the visit. On 40 a miss is far less dramatic: the 40 still stands, and double 20 works with the second or third dart just as well.
The remaining scores are linked as well — from 170 one click takes you on to 110 or 150, depending on how the dart fell.
League: date of birth and town on the player — board only
Issuing player passes takes more than a name: a pass carries first name, last name, date of birth and town. When a player reports their pass lost, the right person has to be found again from the player number — and those two details were exactly what was missing.
The player registry now holds date of birth and town. They appear under the name in the list, and the search box finds them too — both "Duisburg" and "14.03.1987" lead to the match.
Only the board can see them. Captains, public rankings and match reports do not receive the fields — they are master data for issuing passes, not for running matches.
Registrations bring them along automatically. The registration forms already asked for both; on approval the details now move to the player instead of staying behind on the request.
For an existing squad there are two routes: one by one via the pencil next to a player — or, if the data already sits in a spreadsheet, via "Add several" in the "Add pass details" mode: number, date of birth, town per line. Dates may be written 14.03.1987 or 1987-03-14, copied straight from Excel. Empty fields are left alone, nothing gets overwritten.
League: who has rescheduled how often? Now shown on the team
Every league has a reschedule allowance per team (default: 4 per season, adjustable in the schedule settings). It has been counted all along — but it was only visible while actually changing a date, and even then only for the two teams in that one fixture. Anyone wanting an overview of the whole league had to keep their own notes.
The board area now shows the tally on every team in the “Teams” tab: “Reschedules 2/4”. A team that has used up its allowance stands out in red before the next request arrives.
Two numbers instead of one, because “postponed” can mean two things: a reschedule with a new date counts towards the allowance. A fixture merely reported as “postponed – no new date yet” does not count yet — it appears next to it as “1 without a new date”. That keeps used and pending clearly apart.
Captains see their own tally on “My Team” — the same two numbers, but only for their own side. The question “how many do we have left?” no longer needs a detour via the board.
Schedule: “postponed” even without a replacement date
When a team cannot make its matchday, the replacement date is rarely settled right away. Until now the schedule knew only two states: the date is set — or it is not. Everything in between ended up on a paper note.
The board can now mark a fixture as “postponed – no new date yet” with one click, recording which team cannot play. The row stands out immediately: red bar, exclamation mark, and the date that fell through struck out.
The board area has its own overview for this. Clicking “N without a new date” filters exactly those fixtures still waiting for a date to be agreed — which retires the paper note.
Spectators and captains see it too. The public schedule, the schedule PDF and “My Team” show “postponed” instead of a date on which nobody plays. The original date stays next to it, struck through, so it is still clear what was meant.
The reschedule allowance is only charged later — once the replacement date is actually entered. As long as a fixture is merely flagged as looking for a date, nothing is counted. When the new date is entered, the flagged team is already preselected.
Projector: “legs or score” now works in every card style
At the top of the projector there is a MAIN NUMBER — legs or score setting. It decides which number is shown large on the live card: the leg score or the remaining points.
In two of the six card styles it did nothing — the default style and the TV lower-third always showed both numbers side by side. Switching to “legs” had no visible effect, so the control looked broken.
Now your choice applies everywhere. Pick “legs” and the leg score becomes the big number while the score column disappears, which frees up room for long names. Pick “score” and the 501 stays large as before.
Nothing changes for you unless you change it. If you never touched the setting, your projector looks exactly as it did: the default and TV styles still show both numbers, the others still show the legs.
In e-dart mode the setting is replaced by the reason it does not apply: SmartDart only counts legs there, so there is no running score to show. The TV lower-third now also drops the empty score and average columns in that mode.
E-dart mode: add highlights by hand, and the projector only shows what actually exists
If you play on a machine, all you enter in SmartDart is who won the leg — the machine does the maths. The price was a half-empty evening: no 180s in the ticker, no leaderboards, no celebration on the projector. Everything that makes a tournament night visible used to depend on typing in every single throw.
Now you can add it by hand. During a live match, use the three dots next to the player name → “Add highlight”. You get 180s, 140+, 100+ and 26s with plus and minus, plus a field for the high finish. One tap and it is in.
The projector reacts straight away. A highlight you enter triggers the same big celebration and sound as a live-scored one — that is what it is there for.
Missed something? Add it later. Under Statistics there is now “Add missing highlights”: a list of every match without throw data, matches in progress first. It shows up even when nothing has finished yet — which is exactly the start of an evening.
Mistyped? The minus button takes any entry back, and the high finish can be overwritten or cleared with a 0.
New: the “e-dart / count legs only” switch. It sits in the board settings next to checkout help and effects, and can be flipped mid-evening. With it on, the score and average columns drop off the projector — with e-dart they sat at 501 and a dash all evening and took exactly the room names and legs need. The ticker then also counts matches still in progress instead of waiting for them to finish.
Two things that affect everyone: With four groups, two of them could vanish from the projector without a trace when the height ran short — there is now scrolling and a “+2 more groups” hint. And the club logo scales with the size slider; it used to stay fixed, so it got relatively smaller the further you turned it up.
For matches that are being scored live the entry stays closed — SmartDart already counts those itself, and anything else would count twice.
Ranking series: a tidier table, a gold/silver/bronze podium and a line for the final matchday
In a tournament series ranking, player names broke across two lines: “Jonas Schmidt” came out as “Jonas” / “S.”. With fourteen number columns beside it there was barely any room left for the name — the very column people look for.
The standard view now shows four columns: position, name, points and average. That fits any phone without swiping sideways. “Matchdays” was the most expensive header of all — the column grew as wide as its own label and opened a field of nothing next to the name. It now sits under full stats, together with points per matchday, wins, legs, checkout percentage and the rest.
Names no longer wrap. The column takes the width it needs and always stays on one line.
The top three sit in gold, silver and bronze, with every other row below lightly tinted — so even in full stats the eye follows the right row across the full width.
New: how many play the final matchday? The series settings take a number — the standings then draw a labelled line after that position, on the public results link too. It is optional: leave it at 0 or empty and nothing changes. Unlike the points configuration it can still be set or changed mid-season.
In full stats, position and name stay put while you swipe. The table scrolls to the right there; after two swipes you could no longer tell whose numbers you were reading. An arrow at the right edge shows there are more columns.
The medal emojis are gone from the table. 🥇🥈🥉 were about twice as wide as the digit and took space from the name; on the public results page they even replaced the position number for the top three. It now reads 1, 2, 3 again — the row colour carries the podium. The podium in the stats overview and the projector view keep their medals.
Applies to both views: the ranking tab inside the series and the public results link.
Public league page: quicker to the numbers on mobile — plus the schedule as a PDF
On a phone, a full screen height of controls used to sit above the table: the divisions wrapped onto two rows, with another two rows of download buttons below. Anyone wanting to know where their team stood had to scroll first.
Divisions and downloads now share a single row. The divisions sit side by side as buttons — shortened to “A · B · C1 · C2” on a phone, with full names on larger screens. Nothing is hidden, nothing wraps, and the table starts without scrolling.
More tabs at a glance. On narrow phones only two tabs were visible, the rest hidden behind an arrow — you could not tell what else was there. Shorter labels now let them sit side by side.
New: the schedule as a PDF. The schedule tab was the one tab without a matching download, while offering two that belong to other tabs. You can now print the schedule — matchday, date, home, result and away, either for one division or all of them. A match brought forward or postponed carries its own date and is marked as differing.
Downloads are bundled. On narrow screens a single button leads to all four lists (standings, ranking, schedule, teams); on a wide monitor they remain side by side. The button stays in place when you switch tabs — the row used to jump by a whole row of buttons.
The schedule starts where things continue. It now opens at the next matchday still to be played instead of at matchday 1 in September. Three switches sit above it — Upcoming · Played · All — each with its count, and in the “All” view a button takes you straight back to the next matchday. A matchday always stays whole: if two fixtures were brought forward and played, they still appear with their results under that matchday.
The tabs are readable again. On narrow phones the bar cut the first word in half — “Overview” showed up as “view”. The four main views now sit side by side; rarer ones such as rules or the all-time ranking live behind a small menu icon at the end of the bar.
Less crowding in the ranking. The medals for the top three are numbers again on a phone — the emoji was twice as wide as the digit and took the space the player name needs. Gold, silver and bronze remain visible as a tinted row, and on tablet and desktop the medals stay as they were.
Large screens are put to use. Even on a wide monitor the player ranking was limited to 900 pixels and wrapped player and team names. It now gets the width it needs; rules and statutes stay narrow, because long lines of text are hard to read.
The “projector” button is gone from the public page. For the TV at the venue there is a shorter route — smartdart.app/beamer, enter the league code, done. The board still finds the button in league administration.
League pages on mobile: points, results and rankings are finally fully visible
Anyone opening a league from “Public leagues” on a phone now sees what they came for. Until now the standings showed only position and team name — played, difference and points sat outside the screen, with nothing hinting that you could swipe sideways. The player ranking likewise lost the win/loss record and legs.
Standings and ranking now fit a phone. They remain proper tables with columns and rows; long team names wrap instead of pushing the numbers out. At 375 pixels wide, every column is visible.
The schedule is a table now. Date, home, away and result in their own columns — and the winning team and its score are highlighted in green, so a matchday can be skimmed without reading every line. A draw highlights nobody; a match in progress is shaded blue.
The player ranking can be read across the whole association. Next to the divisions there is now “All divisions” — every player in one list, with each row showing which division the result came from. The standings deliberately stay per division: a table spanning several divisions would no longer be a table.
Less clutter in the public ranking. The membership-number column is gone from the on-screen table — it cost space the player name needs. The PDF download keeps it, as does the board view.
The projector view no longer slides sideways when opened on a phone by accident; its points column used to sit off-screen.
League: new players can now be required to go through late registrations
A league that collects fees has a problem when a new player can enter the system two ways: through the "Late registrations" section — with a submission date, a payment deadline and the two checkmarks — or quietly through the player list, where you create them and assign a team straight away. The second route skipped the fee check.
League administration now has a switch for this: "New players only via late registrations". When it is on, the familiar form in the player list produces a request instead: first name, last name, requested number and requested team are recorded, the entry lands in "Late registrations" with an automatic submission date — and only with "fee paid" and "approve" does the player get their number and join their team. The form says so clearly before you type.
What deliberately stays unchanged: assigning existing players to a team, bulk assignment and list import. Season preparation depends on those, and a fee checkbox should not slow it down.
The switch is off by default — leagues without a late-registration process notice nothing. Leagues already using the "Late registrations" section will find it switched on.
The board can now register players directly in the "Late registrations" section
Until now only captains (and players via the public link) could submit a late registration — the board itself had no form for it.
The "Late registrations" section now has its own board form: first name, last name, team and — if the player was registered before — their existing player number. After submitting, the request appears in the list as usual, with an automatically stamped submission date, and goes through the same two checkmarks: "fee paid" first, then approve. With an existing number, the player is recognised instead of being created twice.
League: PDF downloads, a "late registrations" section and more everyday helpers for the board
Another bundle straight from everyday league life:
All public downloads are now PDFs. Standings, player ranking and team list come as neatly formatted PDF files — for sharing and printing, no Excel needed. The team list once again names the venue ("Double Inn", "MGM Nord" …) next to address and start time; private details such as the landlord and phone number naturally stay out. The Excel downloads on the public page are gone; the board keeps its CSV exports in the admin area.
New "Late registrations" section. Right next to "Registrations", all player late registrations now collect in one place — with an automatically stamped submission date (important for payment deadlines) and two checkmarks per player: confirm "fee paid" first, then approve — and with approval the player lands in their team. Completed requests remain visible as history.
Register with an existing player number. If a player was registered in the league before, the captain simply adds their old number — approval then recognises them instead of issuing a new number.
Fix names without re-creating. The player list (player numbers) now has a pencil: typos in names can be corrected directly — number and team stay put.
Change a date without it counting as a postponement. When the board itself moves a match (bringing it forward, or a later throw-off), there is now a "None (does not count)" choice — the teams' postponement allowance stays untouched. Genuine postponements by a team still count as before.
"My players" for captains. In "My team", a new bar shows your own roster with player numbers.
And tidied up: the bulk throw-off button on league matchdays is gone again at the league's request — in the cup, where a whole round starts at the same time, bulk scheduling remains.
League & cup: bulk approval, moving fixtures and more room for the board to decide
A bundle from everyday league life — six things that save boards and captains clicks and surprises:
Approve registrations in one go. When several player registrations pile up, they are now all pre-selected and one click approves them together — player numbers are pre-filled sequentially as before. If anything fails (say, a number already taken), nothing is half-approved, and the message names the request that stopped it. The board also gets an email whenever a registration comes in — until now, requests were only visible if someone happened to open the dashboard. Can be turned off per league, and unsubscribed per recipient.
Move fixtures to another matchday. This used to mean delete and re-create. The fixture manager now has a move button with a target picker. The app watches out for you: anyone already playing (or having a bye) on the target day is reported by name, and the throw-off is re-derived from the new matchday and the home team's start time. Does not count as a postponement — it is a planning tool.
You set the postponement limit. How often a team may postpone per season was fixed at 4 — now the number is yours (0 to 20, per season, right in the fixture manager).
Drawing asks before discarding anything. If a cup stage already has an arrangement — seeded by hand or carried over from the group phase — redrawing now asks first instead of silently overwriting. And next to "Advance per group" you can now see what it leads to: "Expected: 6 qualifiers → next comes another group stage with 2 groups" — or when the final follows directly. If you prefer, new cup rounds can publish themselves (new per-cup switch; the default stays: the board reviews first).
The league projection rotates at your pace. How long each division stays on the screen is now adjustable in the bottom-right corner (5–60 seconds, per device). For permanently installed screens the pace can also be pinned straight into the link.
Straight to the league with a code. The league directory at /ligen now has an input for league (L-…) and cup codes (C-…) — typos are reported inline instead of landing on an error page. And for the notice board at the venue, league and cup can now show their public link as a QR code.
And, by popular request but with care: suspended players can be marked neutrally as "not eligible" in the public ranking — only if the league turns it on, and never with a reason. Off by default.
The team list is now available as a PDF
The public league page now offers "Teams (PDF)" next to the CSV downloads. The file is meant to be passed on — to players, to captains, to the notice board at the venue.
Organised by division: each division starts on its own page, listing team, address and start time. If you only need one division, you print one page instead of filtering a spreadsheet.
The CSV version is still there — that one is for Excel, the PDF is for reading and printing.
Building fixtures: dates, home advantage and pairings now take one step each
Reworking a fixture list by hand used to take far more clicks than necessary. Six things are fixed or new:
A date on the matchday is enough. Enter a date behind a matchday and every fixture of that matchday picks it up — individually rescheduled matches are left alone.
Start times come from the home team. They have long been stored with each team's address; now they are actually used. Swap home advantage and the time moves with it.
The date of a single fixture could not be changed — entering one without a time silently discarded it. Fixed.
Swapping home advantage swaps the reverse fixture too. Previously the same duel ended up at the same team twice. The dialog tells you beforehand which matchday comes along — and you can decline.
Move pairings instead of deleting and re-creating them. Set C against A while A already plays B and you get asked, then swapped: C-D and A-B become C-A and D-B. Previously one team could silently end up scheduled twice and another not at all.
First and second half are labelled — in the fixture list, in the manage dialog and on the public page. The boundary is drawn per division, because divisions differ in size.
And new: you can set the first matchday yourself and have the rest generated from it. Your pairings and your home advantage stay exactly as entered; every further matchday is derived.
Scheduling a matchday: set the time once instead of every fixture separately
Anyone scheduling a season by hand had to enter the start time on every single fixture. With four divisions of 18 matchdays each, that is quickly several hundred entries for a value that is nearly always the same.
New: "Start time for all" on the matchday. Enter the time, hit "Apply to all" — done. Afterwards you get a plain-language summary: how many fixtures were scheduled, and which ones were not and why.
Your exceptions survive. Fixtures that already carry their own start time are left alone — unless you tick "Overwrite existing". Played and running fixtures are never touched, and a differing date is kept: a fixture moved forward to Thursday keeps its Thursday and only picks up the new time.
The field on the individual fixture is still there, unchanged.
Cup: a clear notice on why it is not showing in the portal yet
A new cup starts out private — it appears neither in the public portal nor on the projection screen. Releasing a round is a different switch with smaller reach: it only decides whether captains can see that round. If you did not know that, you released a round, checked the portal and found nothing.
Now the app says so plainly: as soon as a round is released while the cup is still private, a visible notice appears — with a "Make it public now" button right next to it.
And when creating a cup there is a "Public right away" switch. The default stays private: a cup becomes visible only when you want it to.
Cup draw: see the group sizes before you draw
For an automatic draw you enter how many groups the teams should be spread across. How they actually divide up only became visible afterwards — and with 25 teams nobody works out in their head whether that means groups of four or of three.
Now it sits right under the field and updates as you type: "Gives 1× 5-team and 5× 4-team groups." So you try the number until the split is what you want, and only then draw.
A real example: 25 teams across 7 groups gives four groups of four and three of three — across 6 groups it gives one of five and five of four. That difference used to be invisible.
Your fixture list goes public only when you say so
Nobody builds a fixture list in one sitting. Dates get swapped, venues cancel, teams register late. Until now everyone could read along from the start — the public league page showed the fixtures as soon as the league was public, mid-rebuild included. Anyone who took a screenshot had the wrong one by the next day.
There is now a switch next to "Manage fixtures". While it is off, the public sees no matchday at all. You build, check and correct in peace, then publish when it is ready. Standings, singles rankings and the CSV downloads stay available throughout; the switch applies to the fixture list only.
Nothing changes for running seasons: anything already under way or finished stays visible as before. Only seasons still in preparation now start out closed.
Two smaller things from the same corner: in a fixture row you can now swap home and away with one click — the date stays put and it does not use up a postponement allowance. And with an odd number of teams you can finally mark the team with a bye for a matchday; previously it appeared nowhere, now it is in the plan.
Cup: release round by round, choose the venue yourself
When you draw a cup round you want to check the result first — not have 24 teams reading the pairings while you are still moving things around.
One thing first, if you already have a cup running: in a later round the "Draw automatically" button now takes only the qualifiers — previously it reshuffled the entire field there without asking. And the seeding separates teams that already played each other in the first round. If you have already played rounds, check the next draw once: the old seeding kept putting group opponents back together.
Every round now has its own switch. New rounds start closed; you release them once they are right. While a round is closed nobody outside the board sees it — neither in the league portal nor on the projector. Releasing and closing again works both ways, at any time.
The venue can be reassigned. By default the top-seeded team hosts. If they drop out, you pick another team from the season — the address follows automatically, and if the venue differs from the default it is marked as such.
And when a whole round starts at the same time, you enter the date once at the top of the round instead of on every fixture. With twelve pairings that is one field instead of twelve. Where a fixture is the exception you still override it individually; matches already scored stay untouched.
League directory: you decide whether you are listed
At smartdart.app/ligen visitors find public darts leagues with standings, singles rankings and fixtures. Until now you had to apply to be listed there and wait for us to approve it.
That is gone. The switch in your league dashboard takes effect immediately — one click and your league is in the directory. One more click and it is out again. Nobody has to approve anything.
And the most annoying part is gone too: setting your league to private used to drop your listing, and you had to apply all over again. The entry now survives. While the league is private it is not shown in the directory — switch it back to public and it reappears on its own, with nothing for you to do. The dashboard says so during the private phase.
Too many emails? One click is enough — straight from the email
We occasionally send reminders about tournaments you started, getting-started tips and notes about new features. Useful if you want them — annoying if you do not. Until now there was no way to turn them off other than writing to us.
From now on every one of those emails carries an unsubscribe link. One click, one short confirmation, done — no login, no form. Clicked by mistake? Resubscribe from the same page with one click. You will find the same switch in your profile under "Emails".
What still reaches you: everything that concerns your account — password resets, email confirmation, and subscription and billing notices. Those cannot be switched off, because doing so would lock you out of your own account.
"Remaining" is now its own tab — everywhere you score
Some people count the score they threw ("60"), others prefer to write down what is left ("441"). Both have worked for a while — but the switch for it sat two menus deep in the input settings, and anyone who did not know about it never found it.
Now the choice sits where you are already looking: right in the tab bar above the number pad. On the board, in quick match and in pass & play the tabs are the same everywhere — Legs · Score · Remaining · Dart-by-Dart. One tap, and the same digits mean something different: on "Score" you type what you threw, on "Remaining" what is left. The app converts, detects a bust and suggests the checkout exactly as before.
Your device remembers the choice and applies it on every input surface — if you had the old switch set to "Remaining", you now land on the Remaining tab automatically. Along the way the former "Manual" tab became "Score": remaining is just as manual, the real distinction is score versus remaining.
Bot ladder: the levels are now clickable
The bot ladder shows which levels you have already beaten and which one is next. It looked like a selection — round dots next to the names — but did not react to a click. Which is exactly what quite a few people tried.
Now it is what it looks like. On the home screen a click picks your opponent; after a finished bot match it starts a rematch against the level you pick — including an easier one, not just the next step up. It is reachable by keyboard and has a touch target big enough for a phone.
And the circle no longer lies: filled means "selected", a check mark means "beaten". The English version used to show German text in that spot — that is fixed too.
Remaining entry: "Bust" now in quick match and pass & play too
When you type the remaining score instead of the score thrown, there is one case you cannot type: the bust. After busting, the same remaining is on the board again — and "typing it unchanged" would be indistinguishable from three missed darts. That is what the "Bust" button is for. Until now it only existed on the tournament board, even though the hint in the settings menu pointed to it everywhere.
It is now in quick match and pass & play as well, placed where there is room: right next to the input field on wide screens, below the number keys on a phone. The keys themselves do not move by a single pixel.
While the remaining is above 179 the button stays greyed out: more than 180 points cannot be thrown with three darts, so busting is not possible from there.
Arrangement and size now apply everywhere you enter scores
The arrangement choice and the size slider used to exist only on the tournament board screen. On every other input — quick match, checkout training and pass & play — SmartDart decided the look on its own, and the slider stopped at 120% there. Quick match, of all of them, is the most used input in the app.
That is now the same everywhere. Next to the size slider at the top right, every input now offers "Arrangement" with Automatic, Two columns and Stacked, and the slider goes up to 200% everywhere instead of 120%. The setting applies to the device you change it on — and from now on it applies to all inputs on that device at once. Set your wall tablet large once and you no longer have to repeat it in every game mode.
Automatic stays preselected and behaves exactly as before. If you never changed anything, everything looks just like it did — including the size. We deliberately did not align the previous starting sizes: the board stays at 90% and the other inputs at 100%, because both values have their reasons.
Typing the remainder instead of the score thrown is now available in quick match and pass & play too, not just on the tournament board. And cricket can finally be enlarged: the slider was there, but cricket was the one game mode it did not affect.
The windows that appear mid-game now grow with it too. They always stayed the same small size — even at 200%. On a wall tablet their buttons were half the height of the number keys beside them, in exactly the moments that count: the question of how many darts you checked out with, "leg won" after every leg, "who starts?" at the beginning of a match, the starter choice before a deciding leg, and the bull-off when the dart limit is reached. The last two cannot be dismissed — until you choose, the game does not continue. All five are now the same size as the rest of the input.
Pass & play now feels like the rest. The number pad exists three times in SmartDart — on the tournament board, in quick match and in pass & play. The three had drifted apart over time, and pass & play had come off worst: tapping gave no short vibration, and the key did not visibly move when pressed. It simply felt dead. Both are now the same everywhere.
One note on "Stacked": the arrangement needs a screen tall enough for it, and how tall differs per input — quick match stacks more above the keys than the board does. Where there is not enough room the option is locked and the reason is shown next to it, rather than letting the number keys slide below the edge.
Projector: all three sections readable at once — and you set the sizes
If you had the live matches, the upcoming fixtures and the latest results switched on together, you saw almost nothing of the bottom two: two rows of upcoming, and only the heading of the results. Switch the live matches off, and suddenly everything was there.
The cause was a rule that did the exact opposite of what it was meant to do: the space in the column was always awarded to the bottom section — and only the space left over above it. If the column was already full of live matches, nothing was left over, and the bottom section collapsed down to its heading.
That is fixed. The most important visible section now fills the column, the two below it keep a minimum height and can no longer be squashed flat. More importantly, nothing goes missing: if a list does not fit, a clear note underneath tells you how many fixtures or results still follow — and with "Auto-scroll" they cycle through by themselves. Until now that scrolling only existed for the live matches.
And you can now decide the split yourself. Under "Layout" → "Sections" you will find the switch "Set sizes yourself". Leave it off and SmartDart distributes the space as described above — nothing changes for you. Turn it on and you get one slider per enabled section: want the live matches big, drag their slider right; prefer to show the results list, do the opposite. The sliders split the column proportionally rather than in fixed centimetres — the same setting looks the same on a 720p projector and on a large TV. No section can disappear entirely: at the far left the heading, one row and the note remain. To remove a section for good, switch it off one row above.
The setting applies to the device you make it on. The spectator QR code now stays fixed at the bottom instead of being squeezed along with everything else. The team-match projector had the same fault, and it is fixed there too, sliders included.
Board screen: the score you took back stays readable
When you took an entry back at the board, the number disappeared along with the button — which is exactly the information you need in order to correct it. At the board the player has usually long forgotten their three darts by then, and it becomes one person's word against another's.
Now what was taken back stays on screen: "Undone: Anna had thrown 85 pts". The note stays until the next entry, after which the familiar undo button takes over again.
The number is deliberately not pre-filled into the input field: since the remainder mode arrived, the same field can mean "score thrown" or "remaining", and a pre-filled number could be read with the wrong meaning. The note therefore says explicitly that it refers to the score thrown.
Board screen: choose your arrangement — and type the remainder instead of the score
Two requests from the same club, both from a live match night.
You can now choose the arrangement yourself. Until now SmartDart decided this purely from the shape of the screen: landscape and wide enough gave you two columns, everything else was stacked. Anyone who has mounted their monitors in portrait fell through that net — the throw list ended up right at the bottom and started collapsed, even though all the space below the names was free.
On the board screen, next to the size slider at the top right, you will now find "Arrangement" with three options: Automatic behaves exactly as before and stays preselected — so nothing changes by itself on a board already in use. Two columns forces the split with the input on the left and the keys on the right. Stacked puts the throw list open directly below the player names, with the input and keys underneath. The setting applies only to the device you change it on — across four boards everyone can work differently. On a phone the familiar layout stays, and "Stacked" needs a screen tall enough for it: on flat monitors the number keys would slide below the edge, so the option is locked there and the reason is shown next to it.
And you can now type what the board shows. Until now it was always the score thrown: 501, you throw 60, you type 60. If you are reading off the board, that means doing the subtraction in your head every time. Under "What do you type in?" switch to Remaining — then you type 441 and SmartDart works out the 60 itself. Checkout and undo work exactly as before, and to check out you simply type 0.
So the two never get confused, "Remaining after throw" is spelled out above the input field, and the keyboard hint on a PC changes with it. A number higher than the current score is refused outright — it would almost always be a transposed digit. For going bust there is a separate "Bust" button: a bust cannot be expressed through the remainder, because the score simply stays where it was. This setting is per device too.
Results page: the standings now appear only once
Going through all nine tournament formats, three things stood out as untidy on the page you share after a tournament.
The heading read "Final & standings" everywhere — including in a league, in round robin and in the Swiss system, where there is no final at all. Those now simply say "Final standings".
In exactly those formats the top three appeared twice, one below the other: once as a short list, and immediately below as the first three rows of the table. In a four-team league that meant almost the whole page was duplicated. The table now takes that place: it sits at the top, the top three still carry gold, silver and bronze — and it also shows why one side finishes ahead of another. That is precisely where the short list fell down: with two teams on the same record it showed the same number three times and never the leg difference that actually decided it.
In the knockout formats the beaten finalist was listed twice as well — once in the final card, and an inch below as "2nd place, lost the final". The winner and the runner-up now carry their position inside the final card itself, and the list below continues at 3rd place.
The results page now reads like a tournament report
The page you share by link or QR code after a tournament was simply too long and too pale. On a phone you scrolled through ten to twenty screens depending on the format, the podium was three grey boxes with the numbers 1, 2 and 3, and the bracket ran off the side of the screen — the "Semi-Final" column was cut off mid-word.
Below the numbers at the top there is now a bar that stays put as you scroll: standings, road to the title, bracket, groups, statistics, matches. Tap one and you jump there. The three heaviest blocks — statistics, player statistics and the full list of matches — start collapsed and open on a click. Depending on the format the page is now between half and two thirds shorter.
Instead of the three grey boxes, the final now leads: both finalists with legs, average, 180s and best finish, the winner in gold. Below it, 2nd, 3rd and 4th place — each with the match that decided it, for example "Lost the final 1:3" or "Won the 3rd-place match 2:0".
The "road to the title" is new: the champion's stops in order, with opponent, result and average per round. That route is highlighted in gold in the bracket, so you can see at a glance where the title was won.
The bracket adapts to the screen: on a computer the familiar tree, now centred instead of stuck to the left — on a phone you pick the round at the top and see the matches across the full width. No more sideways scrolling. The same applies to double elimination and the consolation bracket.
In the group and ranking tables every name now carries a form guide of the last five matches as a W/L chain. You can see whether someone cruised through or fought their way back. On a phone you pick the group with a button instead of scrolling past every table. Who advances is still colour-coded — now with a short code as well, so it stays readable without relying on colour.
Finally: in the list of all matches the fixtures are grouped by stage, most recently played stage first. The final is the first card now, not the last.
Projector: a live match like on TV
The live display on the projector has a fifth style: "TV bar". It looks like the overlay on a televised match — a slim strip on top with the round and the format ("Semi-Final · Best of 11 legs"), one row per player below it showing average, legs and remaining score, and a bottom strip with tournament, board and scorer.
Whoever is throwing sits on a green band with a pulsing dot — readable from ten metres away. Whoever has won gets the trophy next to their name.
You will find the style on the projector under "Layout", in "Live-card style". There is a colour switch there too: light looks like a genuine TV overlay and stands out against the dark picture, dark blends in more quietly — try both in your room and see which reads better. The four existing styles are unchanged, and a projector already running will not switch by itself.
Teams can now be renamed
A typo in a team name used to be permanent: once created, the name could not be changed anywhere — not in the league, not at the club. Correcting it meant dissolving the team and setting it up again.
Now there is a pencil next to every team in the league admin area. One click, new name, done. You will find it in two places: under "Registrations & divisions" and in the "Teams" tab.
The new name applies everywhere straight away — in the schedule, in the table, and in matches played long ago. It works mid-season, so there is nothing to wait for. The only thing SmartDart will not allow is two teams sharing a name: the schedule would stop being readable. Thanks to Jan for flagging this.
Group assignment: half-finished work now stays put
If you were assigning players to groups by hand and wanted to fix a name along the way, you had to switch to the players tab — and came back to an empty assignment. All that work gone, with no warning. Saving beforehand was not an option either: the button only unlocks once every single player sits in a group.
SmartDart now keeps that work-in-progress on your device. Switch tabs, change a name, come back — the assignment is still there, a note at the top tells you so, and next to it sits a "Discard draft" button in case you would rather start over. An accidentally reloaded tab no longer costs you anything either.
Two notes: the draft lives on this one device only, and it becomes official when you press "Save Draw". And if you change the number of groups in the settings, the draft is discarded — it would otherwise fit a layout that no longer exists. The same applies to the manual knockout draw. Thanks to the user who prompted this.
Team match: the doubles can now go in the middle
Until now the doubles always came last: all the singles first, then the doubles. Plenty of league rules do it differently — six singles, then the doubles, then the rest. There was no way to set that.
When you create a team match there is now a field reading "Doubles after … of N singles". Right below it you can see what that produces, for example "6× singles · 3× doubles · 6× singles". Set nothing and you get the doubles at the end exactly as before, and matches you have already created stay as they are.
One thing matters here, because it is easily confused: this setting concerns the numbering on the match report. The order you actually play in on the night was never prescribed — you can start any fixture whenever you like. Thanks to the user who prompted this.
Player lists are now in alphabetical order
Participants used to appear in the order they were entered. With 30 names that means scanning the whole list for every group assignment, and never being quite sure who you have already placed.
They are now sorted alphabetically — in the participant list, in the picker for the manual draw, and in the scorer dropdown for each board. Accented letters sort where you would expect them: Ömer sits under O, not at the very end.
This changes nothing about results, it is purely how things are displayed. Thanks to the user who suggested it.
Dart limit per leg — after that, the bull decides
On a long tournament evening, one single leg can hold everything up. There is now a limit for exactly that case: when creating a tournament — and up until the start, also in the "Settings" tab — you can set a number of darts per player, 45 for example.
Once both players have thrown that many darts, the leg is not played out. Instead, the board asks who was closer to the bull; that player takes the leg. Everything thrown up to that point counts normally towards average and statistics — only the bull throw itself is not a score.
The limit is off by default. If you set nothing, everything plays exactly as before. Thanks to the user who knew this rule from his own tournament evenings and suggested it.
Print a schedule per group — straight from the running tournament
In the group stage it has long been clear who plays whom, and in which order. Until now you could only copy that out by hand or take a photo of the screen.
The tournament dashboard now has a "Print schedule" button next to the group stage. You get one A4 sheet per group: every fixture in order, the board it runs on, and an empty column for writing in results — black on white, without menus and buttons around it.
That way every board gets its own sheet. Thanks to the user who suggested it — he knew our tournament schedule generator and asked why the same thing was not available for a real tournament. Fair question.
Checkout help now shows a second route
Until now the board showed exactly one way to finish — the one the pros throw. If you keep missing that double, or simply prefer another, you were on your own.
Now a second route appears below it whenever one exists: for 40 that is "S8 → D16" next to the familiar "D20", for 141 "T20 → T15 → D18" next to "T20 → T19 → D12". The well-known route stays on top and highlighted, the second one is the offer.
For scores with only a single possible route — 170, for instance — the line simply stays empty instead of showing a makeshift. Thanks to the user who asked for exactly this.
Projector can now show the last throw instead of the average
Next to legs and remaining points, the projector only ever showed the 3-dart average. In a club or pub tournament that number says little — what people want to see is what was just thrown.
Under "Layout" there is now a "Live-card value" setting with three options: Ø Average as before, Last throw, or Both. A 180 is shown in gold and anything from 100 up is highlighted — exactly as on the scoring board.
The setting applies per device and can be changed mid-tournament. If you change nothing, you keep seeing the average. Thanks to the user who suggested this.
Result links no longer reveal your tournament code
Until now, the result link contained the same code as the join link. Anyone who shared the result link — which is meant to be shared — also handed out the code for joining the tournament.
Every tournament now has its own public result code. You will find it in the overview under "Result page available", and it is also used for the QR code on the projector. The player code stays separate.
Result links you have already sent keep working — nothing needs to be redistributed. Thanks to the user who pointed this out.
Create and save your own team format
Creating a team fixture previously offered only ready-made association templates. DVO Ostbayern (12 singles, 3 doubles, best of 5 legs) has been added and works like all the others.
With Premium you can also define your own system: pick "Custom format", enter singles, doubles, sets and legs, and save it under a name on your account. Next match night you just pick it from the list instead of typing everything again. Made for leagues whose format isn't covered by a standard template.
Enter scores with the keyboard on a PC
If you keep score on a laptop or PC, you can simply type the points: enter the digits, Enter confirms, Backspace deletes. This has worked for a while, but it was never mentioned anywhere — now the hint sits right below the input field.
Nothing changes on tablets and phones: tapping the keys works exactly as before, and the hint is not shown there at all.
Club night: start as soon as the first pairing is set — and change the rest later
For friendly matches between two teams, the entire evening had to be planned before anyone could play: every position, on both sides. In larger formats that is over 30 names before the first dart — and whoever turns up at nine is not known at seven.
One match is now enough. As soon as a pairing is filled on both sides, it can start. Everything else you add while play is under way.
The line-up can also be changed during the evening — for every match that has not started yet. Someone drops out at short notice and you simply replace them. Matches that are running or already played stay untouched and are marked as such in the line-up window; player statistics are already attached to them.
Also: do you always play the same way? When creating a friendly you can now save your settings as a club format. Next time you pick it and everything is filled in — singles, doubles, sets and legs.
Thanks to the user who pointed this out to us.
Manual KO draw: a suggested bracket at the touch of a button — and you can finally see who won which group
If you draw the knockout round yourself after the group stage, you used to face empty slots with bare names. Who won group A was only visible in the tables further down — so scroll, memorise, scroll back. For every single slot.
Two things are different now. First, where a player comes from is shown right next to the name: "Spieler A · 1. Group A" or "Spieler F · 3. Group C (Wild card)". Second, there is a "Suggest a draw" button: one click puts the group winners against the weakest qualifiers, so the favourites only meet late in the tournament.
The suggestion also avoids pairing two players from the same group straight away. They have only just played each other in the group stage; as an opening knockout match that would be the dullest tie of the night. If the field makes it impossible, you are told explicitly rather than left to find out on match night.
The suggestion is a proposal, not an automatism: you can change every pairing afterwards, and nothing is stored until you press "Save draw".
Thanks to the user who pointed this out to us.
Checkout help and effects can be switched off per tournament — for leagues that do not allow them
Some leagues do not allow checkout help on match days. Until now the suggested finish could not be turned off — which meant SmartDart simply could not be used there.
There are now two switches. In the admin dashboard under "Boards" you will find "Checkout help & effects". With checkout help off, the suggested route disappears everywhere — on the scoring device in both input modes and in the player view on the phone. The golden highlight on the recommended segment goes away too.
Right below it sits "Effects and animations". Off means: no celebration for 180s and high scores, no shake on bust, no confetti on victory. A calm display for focused play. Loading indicators are kept, so you can still tell the device is working.
You will also find both switches on the board itself: the scoring device now has a "Display" button in its header. That way nobody has to walk across the venue to the tournament laptop on a match night — whoever is keeping score can change it right there.
The switches take effect immediately on every device, including mid-tournament. They are independent of each other, everything stays on by default, on every plan, and scoring itself is unchanged.
Thanks to the user who pointed this out to us.
Scoring on a tablet: much easier to read — and the size slider now goes up to 200%
If you enter scores on a tablet at the board, the display could previously only be set to 120%. The slider now goes up to 200%, so you can make the whole scoring area genuinely large instead of falling back on browser zoom.
Separately, the small text is now bigger: player name, legs, average and last throw. Most importantly the checkout route — the suggested finish such as "T18 → D16" — now sits in noticeably larger chips. Until now that was the smallest text on screen, at exactly the spot you look at before throwing.
You will find the size control in the top right: it now permanently shows its current value, for example "90%", instead of being just an icon.
Also: the "Single dart" tab now shows the throws of the current leg, the same way the "Manual" tab already did.
Creating a tournament is faster — and the next step is obvious
The tournament wizard now shows the three formats most people need first: knockout, round robin and groups + knockout. Everything else is one click away under "More formats".
Game mode, legs, boards and special rules are grouped under "Advanced settings" — with the current values summarised in one line, so you do not have to expand it just to check. On mobile the main button stays within thumb reach at all times.
The top of the screen tells you where you are and that an account is only needed when you actually create the tournament. Once it is created you get a short checklist — tournament created, add players, start tournament — and exactly one button that takes you to the next step.
Groups are named the same everywhere — and the projector gives nothing away too early
The same group had different names depending on where you looked: the projector and the results page said "Group A", tournament admin and the player phone view said "Group 1". Anyone following the tournament on the big screen and then checking their phone read two names for the same thing. It is the letter everywhere now.
On the projector, places were also already highlighted green and marked "WC" before a single dart had been thrown. With everyone on 0:0 the table order is just the order players were entered — in front of an audience that read like a settled qualification. The markings now appear only once the first match in that group has been scored.
Smaller improvements: on the results page Swiss system matches now say "Round 1/2/3" instead of just "Round", and group matches show their group. With exactly one win it now says "1 win" instead of "1 wins". When several players share a record, the tile says so instead of arbitrarily crowning one of them.
Fewer taps at the board, clearer display
After the final throw of a match the board asked for confirmation three times in a row — two of them nearly identical confetti screens. At a busy board that repetition read like "it did not work". Now there is one: confirm the winner, done, back to the queue. Match statistics are still reachable from that screen.
Score entry is now called the same everywhere: "Legs", "Manual" (the 3-dart total) and "Dart-by-Dart" — in Quick Match the same things were previously called "Total" and "Individual". New devices now consistently start with "Manual", the fastest entry; anyone who prefers tapping dart by dart switches once and it stays.
If you switch input mode in the middle of an entry, SmartDart now asks first — previously the entry in progress was silently discarded. And the match card now labels which score is the saved one and which includes legs that are not confirmed yet; before, "2:0" and "0:0" simply sat next to each other with no explanation.
New: SmartDart tells you who keeps score
"Who's keeping score?" — that question costs time at every tournament night, and in the end the same person always ends up doing it. SmartDart can now hand out the role itself: every match gets a player assigned as scorer, and the name shows at the board, in the player view, on the projector and later on the results page.
There are four modes. "Loser keeps score" is the club classic: whoever loses at a board stays and keeps score for the next match. "From the same group" picks someone from the match's group, "Random" picks any player — both make sure nobody who is currently throwing gets picked, and both rotate fairly so one person isn't stuck with it all night. "Fixed per board" lets you decide for each board yourself.
You will find the setting inside a tournament under "Boards". You can switch it on, off or between modes in the middle of a running tournament — matches in progress and finished ones keep their scorer, so the results page never contradicts what happened on the night. Scorer assignment is a Premium feature and needs at least one board.
The consolation bracket keeps its name — German wording changed
The format introduced in August was called "Gruppen + KO mit Trostrunde" in German — literally "consolation round", with the German word carrying a strong sense of a pity prize. That is the wrong word for what actually happens: players who land in that bracket after the group stage keep playing, with their own rounds, their own final and their own winner.
The German wording now matches the English one, which already used "consolation bracket" and the marker "CB". Both languages are back in sync.
Nothing changes about the tournaments themselves: existing tournaments, brackets, results and links are unaffected — it is only a different label.
Projector: the codes in the group tables are now explained
On the projector, the group tables showed the codes "WC" and "CB" with nothing anywhere explaining them. A projected screen has no tooltips to hover: the only explanation lived on the public results page, which nobody has open during a tournament. "WC" had this problem for a while already; with the consolation bracket there were two unexplained codes sitting side by side.
There is now a legend below the groups: coloured dot, code, meaning — for the knockout stage, for the wildcard places and for the consolation bracket. It only appears when the tournament actually has wildcards or a consolation bracket, and it stays put while the groups auto-scroll instead of scrolling away with them.
In tournament admin, the main bracket in the match list is now labelled as well. Previously only the consolation bracket carried a heading, which made the list read as a single bracket that turns into the consolation bracket somewhere further down.
Consolation bracket: players now see during the group stage that they keep playing
The new "groups + knockout with consolation bracket" format had a gap between what it promises and what it showed. Group tables only marked who qualified for the main bracket — everyone below sat there unmarked, exactly as in any other tournament. To a player finishing fourth in their group that looked like elimination, even though they carry straight on into the consolation bracket.
The consolation zone is now visible in every table: tournament admin, player view, projector and the public results page. Affected players are highlighted in blue and marked "CB", and a single line above the tables states how many players the consolation bracket takes.
The player view now says it outright: instead of "It's not your turn yet" it reads "You're playing in the consolation bracket", along with a pointer to where your bracket lives. That matters most for anyone who advances on a bye and therefore has no upcoming match at all right now.
On the public results page the consolation bracket also gets its own placements by name — previously its winner was just a box inside the bracket. And on the projector the main bracket is now labelled, so the room can tell which of the two brackets decides the tournament winner.
New format: groups + knockout with a consolation bracket — nobody is out after the group stage
Until now the group stage was the end of the road: if you did not qualify, you watched. With twelve players in three groups that means six people at the bar while four keep playing.
The new format runs two brackets side by side. The qualifiers play for the title in the main bracket, while the next-best players get a consolation bracket of their own — real rounds, its own final, its own winner. The tournament winner is still the one from the main bracket; the consolation bracket gets its own placement section below it on the results page.
You configure both separately: how many players go into the main bracket (including wildcards for the best third-placed finishers, as before) and how many into the consolation bracket. Anyone beyond that drops out. When the numbers do not divide evenly across the groups, performance decides — points, then leg difference, then average.
Match length is configurable per bracket too. If the evening should not overrun, run the consolation bracket as best of 1 while the main bracket stays at best of 5. Without its own setting it simply inherits the tournament default.
The format shows up everywhere: tournament admin, player view, projector and the public results page all display both brackets, one below the other. Available from Premium.
The idea came in by email from a user who was looking for exactly this. Thanks for that — feedback like this is always welcome.
Locked tournament format: carry on instead of starting over
If you picked a tournament format your plan does not include, you previously had three options: start a trial, look at the pricing, or cancel. Cancelling meant starting over.
There is now an extra button that switches to a free format — round robin for small fields, knockout for larger ones. Your tournament stays set up, so you can create it right away.
The message also used to show the internal format name ("CHAMPIONS_LEAGUE"). It now shows the proper name.
League management: clear up front what is included
The league page used to just say "create your league" — the fact that league management with several divisions is a separate module only became apparent after you had typed in a name and hit create. It is now stated up front, along with a note that the "League" tournament format is unaffected and stays in your plan.
And if you already have a subscription, you are now addressed as such: instead of a generic "you need a different plan for that", it says that league management is an add-on to your running subscription — with a direct way to reach us.
Tournament limit reached? Now you can see which tournament is using the slot
On the free Basic plan you can run one tournament at a time. If you tried to create a second one, all you got was "tournament limit reached" — with no hint as to which tournament was using the slot. More often than not it is an old, long-forgotten one that was never wrapped up.
The tournament is now named right there in the message, together with its status and two buttons: "Manage" to keep playing or finish it — or "Delete" if you no longer need it. Once deleted the slot is free immediately, and your new tournament is still set up exactly as you left it. Previously you had to switch to another page and re-enter everything afterwards.
Home page: pricing and log-in right at the top — plus mobile display fixes
Pricing and log-in used to be well hidden on the home page: pricing only at the very bottom of the footer, log-in further down as a tile. Both now sit as small buttons right below the header — one tap and you are there.
Also fixed: on narrow phones (e.g. iPhone SE) the header with the language switch stuck out of the screen and the page could be dragged sideways. And the "Look up the darts rules" card showed a technical placeholder instead of its link text.
A freshly created tournament now tells you what to do next
If you created a tournament through the detailed setup, you landed in the tournament overview afterwards — and it simply said nothing. No hint, no next step. Anyone who did not find the "Players" tab on their own got stuck.
The overview now shows a clear message while no player, or only one, has been entered, with a button that takes you straight to player entry. As soon as two players are in, it disappears and makes room for the start button as usual.
Groups+KO: each group can now play on its own fixed board
A user request from the app: in the Groups + KO format you can now assign each group a fixed board in the Boards tab — group 1 plays all night on board 1, group 2 on board 2. The automatic match distribution respects this: a fixed board only receives matches from its group, and matches of a fixed group wait for their board instead of being placed elsewhere.
The practical case of "more groups than boards" works too: several groups may share the same board (say groups 1+2 on board A, groups 3+4 on board B). Boards without an assignment remain all-rounders and take matches from every group.
You will find the assignment in the Boards tab under "Fixed group assignment" — only visible for Groups+KO during the group phase. Changes take effect immediately: waiting matches are redistributed accordingly, matches in progress are never touched. Every fixed board shows its group(s) as a small badge on the board card.
And so nothing stalls on tournament night: once all matches of a group are finished, its board automatically accepts matches from the other groups again. When the knockout phase starts, all boards are free for all matches anyway.
Pricing page rebuilt: every plan at a glance, a clear recommendation, and an honest answer for one-off tournaments
On a phone the recommended plan sat right at the bottom — roughly three screens of scrolling before you reached the buy button. PREMIUM now comes first on mobile, feature lists show the key points and expand on tap, and once you scroll past the plans a slim bar with the price and a buy button stays at the bottom. Every button is now big enough for a thumb.
The pricing page used to be a list you had to scroll through top to bottom: first a trial banner, then PREMIUM as a large card, LIGA below it, and only at the very bottom PRO and BASIC as small tiles. Comparing plans meant scrolling up and down — and the free plan most people start on was furthest down.
Now BASIC, PRO and PREMIUM sit side by side as three equally sized cards, in ascending order and directly comparable. Above each plan it says who it is for ("For casual nights", "For regular organisers", "For clubs & full seasons"), and from PRO upwards each card only lists what it adds over the plan below — instead of repeating the same points every time.
On the yearly plan you now see the euro amount you save, the yearly total and the price per day — rather than just a percentage. The 24-hour trial sits directly under the PREMIUM button, on the plan it actually unlocks.
The LIGA package for leagues and associations got its own section below the three plans instead of squeezing in between them. And the most common question is now first in the FAQ, with an honest answer: for a single tournament you usually do not need a subscription at all — up to 10 players BASIC is free forever, otherwise the 24-hour trial covers a tournament night, and if you really do need a plan, book one month and cancel right after the event.
We also corrected details that were wrong: BASIC has 3 tournament formats (not 2), PRO has 6 (not 5 — the team match was missing from the list), and the fact that projector view and the public result page are included in the free plan was not stated anywhere. The comparison table is now grouped by topic, and the feature-name column stays put when you scroll sideways.
Deleting a tournament that belongs to a ranking series: now with an explanation and a way out
If a tournament is part of a ranking series as a matchday, it cannot simply be deleted — its points would disappear from the standings. That safeguard already existed, but it was a dead end: the message only gave the reason, not the next step, and the confirmation dialog stayed open with the delete button still there. Anyone who was stuck just kept clicking the same button.
Now the dialog names the series in question and offers two ways forward: "Go to series" takes you straight there, and "Remove matchday and delete" does both in one step. What that means is stated up front — the matchday is removed from the series and the standings are recalculated, while the series itself remains.
Also: in the English view this message used to appear in German. It is now translated.
Clearer messages when deleting, and on the projector page
A tournament that belongs to a series as a matchday cannot be deleted — otherwise its points would vanish from the standings. Until now the message only said that it was not possible. It now also names the series and tells you where to remove the matchday first.
And if you mistyped the tournament code on the projector page, you were stuck on a screen with no way forward. There is now a button that takes you straight to entering a different code.
Tournament won't start? Now it says why
If you had set more knockout spots than you have players registered, starting the tournament only produced a briefly flashing error message — and you were left hunting through the settings for the cause.
The notice now stays put above the tournament overview, with your actual numbers: "Knockout spots (16) > players (9). Add players or reduce the knockout spots to 8." Next to it sits a button that takes you straight to the right place. The start button comes back as soon as the setup adds up — and your setting is never quietly changed behind your back.
A clearer path into the league — and after your purchase
If you wanted to look at league management without an account, you landed straight on a price wall whose only action was emailing us. It now shows the path that actually leads somewhere: sign up for free — plus a link to the page that explains, at your own pace, what league management can do. If you are already signed in, you still request your league from us directly.
After taking out a subscription, all you saw was "Your plan has been updated. Enjoy SmartDart!" — without a word about what the plan actually unlocks. The page now spells out what you can do from here on, and takes you straight onward: to creating a tournament, or to league management if you subscribed to the league plan.
Fixed along the way: this confirmation page always appeared in German, even with the app set to English. It now follows your language choice.
New: Darts rules to look up
At smartdart.app/en/darts-rules you will now find the rules of the common darts games: 501, Around the Clock, Shanghai, Killer — plus the official board height and throwing distance. Each page briefly explains how it is played, the usual house rules, and the points people argue about most.
Each page also says honestly whether SmartDart can score the game for you: 501 yes, pub classics like Killer or Shanghai not (yet). Cricket and the full checkout table are linked as before.
Improved: the home page now shows what a tournament night looks like
On the home page, right below the tournament wizard, you can now see what SmartDart looks like in use: the projector view with the bracket and live boards, next to a player's phone. Plus three current numbers from the app — tournaments started, matches played, active players.
The team page now also walks through a match night step by step (lineup, several boards in parallel, match report, confirmation) and answers ten common questions instead of four.
New: Tournament bracket generator — no account
At smartdart.app/en/tournament-bracket-generator you can now create a printable tournament plan in seconds: enter names, choose a knockout bracket (with fair bye distribution) or a round-robin schedule, save it as an image or print it — completely free, no account.
Ready-made plans are available for the most common field sizes, e.g. 8, 16 or 32 players. And if you want live scoring: one click takes you to the SmartDart wizard with live scoring, QR join and the projector view.
New: Checkout table 2–170 with calculator
At smartdart.app/en/dart-checkout-table you'll now find the complete checkout table to PDC standard — with a calculator: enter your remaining score and instantly see the recommended route plus correct alternatives.
Every score from 2 to 170 has its own page with alternatives, tips and explanations — including the seven bogey numbers (169, 168, 166, 165, 163, 162, 159), where we calculate the best setup for your favourite double. Free, no account needed.
Improved: The info pages now animate as you scroll
All topic pages (club tournament, pub tournament, league, cricket, training and more) now have a subtle background animation that matches the page: on the tournament page a knockout bracket builds up to the champion as you scroll, on the league page the table fills row by row, on the training page three darts fly into the 180.
The animations are deliberately subtle, run smoothly on phones too, and respect your device's "reduce motion" setting.
Improved: Prices shown right at upgrade + "Request a league" option
When a feature needs a higher plan, you now see the exact monthly price right in the prompt — no need to jump to the pricing page first.
And if you want to start your own league with multiple divisions, you can now request it directly from the app — we'll set it up together with you.
Improved: Doubles record in the season archive PDF
The player ranking in the season-archive PDF now shows a dedicated doubles-record column. Players who only played doubles no longer show up as an empty 0-row.
New: A direct way out of the tournament-limit message
If you can't start a new tournament because your last one is actually already over, the message now shows a direct link to "My Tournaments" — wrap it up or delete it there and you're free to go again, no upgrade needed.
New: Discover public leagues right from the homepage
The homepage now has its own "Public leagues" tile — one click shows standings, individual rankings and schedules for every public league.
Handy for fans, guests, or club members who just want to check how their league stands.
Smoother tournaments — auto KO start, auto finish & faster first match
Three improvements so tournaments no longer get stuck midway:
• The knockout phase now starts automatically once every group match is played — no more manual "start KO phase" click.
• When the last match is finished, the tournament closes automatically and the public results page goes live — no need to tap "finish tournament" separately.
• Right after the draw, the banner at the top takes you straight to starting the first match with one tap.
Cricket mode improved — now vs the bot too, with MPR & its own page
The Cricket mode has been polished all round:
• Play Cricket in Quick Match 1 vs 1 against a friend OR against the bot in 5 levels — the bot strength now correctly shows MPR (marks per round) instead of a 3-dart average.
• New on the marks board: numbers you've closed and are currently scoring on (opponent still open) are highlighted in gold — so you instantly see where points are waiting.
• Input is more robust: no stale darts linger across multiple devices/boards, and a brief connection drop no longer counts a visit twice.
• For newcomers there's now a dedicated page with the Cricket rules, explained simply.
Note: Cricket is currently a 1 vs 1 game (friend or bot). Tournaments still run on 501/301.
Tournament views faster & calmer on busy match nights
Around tournaments with many matches and boards, several things now run more smoothly:
• The tournament and projector views load noticeably faster — even large tournaments no longer briefly hang when a match finishes.
• When several boards finish almost at the same time, the app batches the live updates more calmly — easing the connection and preventing dropouts on shaky venue WiFi.
• Once all matches are done, a clear hint explains that an unfinished tournament closes automatically after about 3 hours.
• A team match marked as a walkover by mistake can now be undone by the tournament creator.
More resilient connection during WiFi drops & updates
Robustness while scoring at the board, especially on shaky venue WiFi or while an app update is rolling out:
• A completed visit is no longer lost during a brief connection drop — it is buffered locally and automatically resent exactly once as soon as the connection is back (no double counting).
• If the live connection drops, the app now clearly shows it (“Connection lost”) and signals when it is restored, instead of silently showing stale data.
• After an outage the app reconnects more calmly and reliably, without hammering the server every second.
League & public portal: clearer and less confusing
More polish around league management and the public spectator portal:
• In league management, all tabs (Seasons, Registrations, Board, Schedule, Table, Players, Teams, Rules) now fit on a single row on desktop — important tabs no longer hide behind an easily-missed arrow.
• The “Teams” tab now opens on a division that actually has teams — previously it often looked empty when several divisions existed.
• The public league portal now shows visitors the latest season with real results, instead of a freshly created, empty season saying “No matches finished yet”.
• The “Register as a player” button now explains its purpose via a short tooltip.
League management: clearer wording & projector polish
Several clarity improvements in league management:
• The seasons tab is now called “Seasons” (was “Leagues (Seasons)”), and the season format picker is consistently labelled “Match report format”.
• The captain join code is now labelled “Join code” and clearly separated from the public spectator link. Newly generated codes are easy to read — no more cryptic special characters.
• The “3/1/0” points display now explains itself on hover (win · draw · loss), the season’s “Shown” marker now says what it means, and counters read correctly (“1 matchday” instead of “1 matchdays”).
• The confirm-your-email hint no longer overlaps the full-screen projection (projector view).
League match report: points in header + ranking order
The finished league match report header now also shows the league points derived from the result (e.g. "Points 3:0" for a win, "1:1" for a draw) — next to score and legs, like the paper report.
The player ranking for leg-based leagues is now ordered by wins first, then legs won — matching the federation ranking.
League: consistent darts terminology
For leagues that only count legs, the table, player rankings, match report and CSV export now use consistent wording: won pairings under "Games" (match report header: "Score"), and the summed legs under "Legs". Previously the two were mixed up.
Match report: substitutes and in-game substitutions
The lineup now has clearly labelled substitute slots: HE1–HE4 for the home team, GE1–GE4 for the away team.
During the match you can use "Substitute player" to swap a starter for a bench player for all remaining rounds. Already-played pairings keep the original player, so results and stats stay correct. The substitution dialog only shows players who are actually on the bench.
When picking the lineup, an already-selected player is greyed out at every other position, so nobody can be fielded twice.
Match report: clear roles for home and away captain
Results are now entered exclusively by the home captain (or the board). The away captain only enters their own lineup and confirms the match report at the end.
Once both teams have confirmed, only the board can correct the result — teams can no longer change a completed report afterwards.
League standings: configurable points, sets display, optional form curve
The board can now set the points system itself (e.g. win 2 / draw 1 / loss 0) — even mid-season, the table recalculates immediately.
For leagues that only count legs, the "Games" column is now labelled "Sets" to match.
The form curve (recent results) can be shown or hidden per league and is off by default.
Invite captains via WhatsApp
You can now invite a team captain by phone number and WhatsApp: type the number, tap "Via WhatsApp" — WhatsApp opens with a ready-made message and invite link. The link is also copied so you can send it by hand too.
League standings: games and legs now shown separately
The team standings previously showed won games (pairings) under "Legs". Both are now shown separately: "Games" (e.g. 11:9) and the actual "Legs" (e.g. 27:23) — in the internal table, the public league portal, and the CSV export.
League management: many small improvements
The "Players" tab now shows the player ranking directly, even for leagues with paper match reports.
The ranking hides the sets column for legs-only leagues and shows wins/losses instead of sets on mobile.
When creating a season, your own match report format is now preselected.
The match report header now shows the format in plain language (e.g. "501 · Best of 3 legs"), and the format editor clearly tells you when the name is still missing.
Version shown at the bottom of the page
The footer now shows the current version (linking to this page) and the build number. That way you can always check whether an announced change has already reached you.
League: public link is now active right away
New leagues are now publicly shareable right from the start — standings, player rankings, and schedule can be shared via link or shown on a beamer immediately, without having to switch it on manually first. Existing leagues are not affected.
Match report: room for substitutes in the lineup
The lineup now has extra substitute slots alongside the positions needed for the pairings. The board sets the squad size in the match-report format (e.g. 8 slots for 4 pairings) — the extra slots automatically show up as substitutes and can be filled just like any other slot.
Homepage: suggest a feature or leave a rating
There's now a tile on the homepage where you can directly suggest a feature, share praise or criticism, or rate SmartDart with stars — your feedback goes straight to the dev team.
League: assign teams to a division in bulk
In the "Manage divisions" dialog you can now select teams via checkboxes (individually or "Select all") and assign them to a target division together with one click — instead of using the dropdown for every single team.
League ranking: legs column + per-player doubles record
The individual player ranking (league "Players" tab and the public spectator portal) now shows each player's legs won and lost as a dedicated column.
Also new: the doubles record — doubles wins and losses are now shown separately per player, in the season ranking, the all-time ranking and the CSV export. The official scoring (matches/wins) stays unchanged.
League: withdraw a team right from the Teams tab
The "Teams" tab now has a withdraw button directly on each team — previously this only worked via the "Registrations & Divisions" tab. Played results stay in the table (marked "Withdrawn"), open fixtures are removed from the schedule.
League: assign players to a team right during import
Bulk import in the player registry now has a team preset: pick the team once, paste the whole roster, import — every player lands already assigned instead of having to assign each one individually via dropdown afterwards.
Also new: select multiple players via checkbox and assign them to a team together with one click (or clear the assignment) — handy for sorting players you already added.
League: finish & delete seasons, mid-season format changes, one-click no-show scoring
The committee now has full control over the season lifecycle: a running season can be finished manually at any time (open fixtures are removed, the table freezes, the champion is set) — and seasons can be deleted in any state, with a type-to-confirm safety check.
The match report format can now also be switched mid-season: the change applies to all fixtures that have not started yet, played ones stay unchanged.
Also new: teams can be withdrawn mid-season (played results stay in the table with a “Withdrawn” badge, open fixtures are removed) · one-click no-show scoring in the committee dialog (e.g. 20:0 games / 40:0 legs, calculated automatically from the format) · player numbers like 0.1, 0.2, 0.3 now sort correctly, and the player registry can be sorted by number or name.
League: rules & statutes on the public league portal
Leagues now have a dedicated section for rules and statutes: the committee stores both texts in the league admin area (new “Rules & Statutes” tab) — just copy and paste from Word or your old club website, line breaks are preserved.
As soon as text exists, a new tab automatically appears on the public league portal: players, captains and spectators can read the rules and statutes at any time — no login required.
Match report: legs-only entry for formats without sets
If your league plays without sets (e.g. “best of 3 legs” like the MTDL), the match report no longer shows set input fields: captains just enter the legs per pairing — done. The winner is scored automatically.
The sets aggregate in the match header and the sets row in the committee override are also hidden for these formats. Formats with real sets (e.g. DDV classic) stay unchanged.
League: choose your own match report formats right when creating a season + new format editor
When creating or editing a season you can now select your own match report formats — no longer just the standard templates. The schedule is then generated directly with your format (rounds, singles/doubles, positions), and the season transparently shows which format is played — including a preview of all rounds.
The format editor has been completely reworked: pairings are grouped by rounds and can be freely rearranged with arrows — including doubles in between the singles rounds, or as a whole round with a single click. Positions are picked via dropdowns (H1–H8 / G1–G8), singles/doubles toggle right on the pairing, and existing formats can be duplicated. Also new: an MTDL template (16 singles + 4 doubles in 6 rounds following the official match report), a round-aware quick builder, an expandable format preview in the list, and instant validation while typing (invalid positions and duplicate doubles line-ups are flagged immediately).
League: create teams without a season + clickable setup guide
Teams can now be created without a season: they go into your league’s team pool and can be registered for a season and assigned to a division at any time later. Connection links and captain invitations also work for these teams.
The setup guide for new leagues has been reworked: every step is now clickable and opens the matching dialog directly — from match report format to season, divisions and schedule. The guide also stays visible until setup is actually complete.
Tournaments: choose Single Out, Double Out or Master Out
When creating a tournament you can now set the out mode: Double Out (default, as before), Single Out or Master Out. The setting applies to all matches in the tournament and can still be changed in the tournament settings before the start.
Existing tournaments stay on Double Out unchanged.
League stats: no more empty zero displays
Leagues that score their fixtures offline via match report (sets/legs only, without dart-by-dart scoring in the app) used to permanently show cards like "Top average" with a "No stats yet" note in the table and stats – and occasionally "0" for 180s or checkout. That looked broken even though the league was fully scored.
Now throw statistics (3-dart average, 180s, highest finish, checkout rate) only appear when matches were actually played live. For offline leagues, the table, ranking and games/sets/legs stay cleanly in focus – without misleading zero cards. The hint in the players tab now also points to the correct tab.
Your league right on the home screen
If you are a league manager or board member, the home screen again shows a dedicated "My league" tile – with the league's name directly when you have exactly one. One click takes you to tables, schedule and management without going through the league chooser dialog.
Why: the tile had been removed for a while, which made some people unable to find their league right after logging in.
Inviting board members & captains – now easy to find
The area for inviting additional board members and team captains used to be hidden in a tab called "League" that sat at the very end of the tab bar and was cut off on many screens.
Now the tab is clearly named "Board & Captains", sits near the front of the bar and is visible even without an active season. The league header also has a prominent "Invite board & captains" button that jumps straight there. On mobile the tab bar can now be scrolled with arrows, so no tab stays hidden.
Invite captains via link – no email needed
In the league plan you can now add team captains via an invite link too: pick the team, click "Create link" – done. You send the link yourself, e.g. via WhatsApp. The email invite is still there (now optional), and you can re-copy the link for any pending captain at any time.
The invited captain opens the link, creates a free account and immediately enters their team's lineup – as before, only the league pays.
League projector shows each division separately
If your league has several divisions (e.g. A/B/C1/C2), the projector view now shows each division as its own clean table and cycles through them automatically – instead of mixing all teams into one combined table.
Want to pin a single division? Just add "?division=…" to the projector link and it stays on that division.
Clear prompt after starting a tournament: start the first game
After you start a tournament, the dashboard now shows a clear prompt at the very top – as long as no game has begun yet: "Tournament is live – start the first game now!" with a button straight to the Matches tab.
Why: many tournaments were started but then stalled because the next step (assigning a board to a match and starting it) wasn't obvious. The prompt takes you right there and disappears automatically as soon as the first match is running.
Fully played tournaments now finish automatically
When all games of a tournament have been played but the winner dialog was never confirmed, the tournament used to stay on "in progress" indefinitely – even though everything was effectively decided.
From now on SmartDart finishes such fully played tournaments by itself after a short while (winner is determined, results page finalised). If you confirm the winner yourself, it happens immediately as before. Applies to round-robin, leagues and completed knockout stages – formats with rounds still pending (e.g. Swiss system) are left untouched.
Freely set the order of upcoming matches
In the tournament dashboard under "Matches" there is now an "Edit order" button. It opens a clear, numbered list of all upcoming matches – across every group and round, in one continuous order.
Use the arrows or "move to top" to arrange the games exactly the way they should run at your venue (e.g. following your own draw), then save once. That order then appears everywhere as "upcoming matches" – on the projector and in the player and board views.
This lets you mirror a pre-drawn schedule 1:1 instead of following the automatic group order.
League: all-time rankings & promotion/relegation rollover
Two new features for leagues running across multiple seasons:
All-time rankings: the public league page now has an "All-time" tab – a league-wide singles ranking combined across every season (games, sets, legs, average, 180s …). Players are merged across seasons via their member number. The tab appears once there are at least two seasons.
Promotion/relegation: once a season has finished, the league operator can create the next season in one click. SmartDart proposes promoted and relegated teams automatically from the final tables (top/bottom places per division) and pre-assigns the teams to the divisions of the new season. Every assignment can still be adjusted by hand before creating the season.
Custom logo per tournament
Every tournament can now have its own logo – independent of any club or series. In the tournament dashboard ("Overview" tab) there is a new "Tournament branding" section: upload a logo by click or drag-and-drop, replace it anytime or remove it again.
The tournament logo appears everywhere the club or series crest used to show – on the projector, in the player and board views, and on the public results page. If no tournament logo is set, the linked club or series logo stays visible as before.
Uploading your own logos is a Premium feature.
League plan: only the league pays – teams & captains free
From now on, with the league plan only the league itself bears the cost – teams, clubs and captains no longer need their own (paying) account.
As the league operator you create your teams directly (the "Teams" tab), enter the players centrally and invite one captain per team. The captain only needs a free account.
On their home screen the captain sees a "My Team" tile with the current matchday, taps it and picks the lineup from the player list – done and confirmed. No connection link or separate club account required.
Your crest now also in player, spectator, board & results view
Your uploaded club or series logo now also shows up where people actually look during the tournament: at the top of the player view, in the spectator view, on the board/scoring device and in the header of the public results page.
That way your club night looks consistent from the first throw to the winner screen — your crest on every screen. (Custom logos remain a Premium feature; emoji and accent colour stay free for everyone.)
Polished English version + DartConnect comparison
For English-speaking use (e.g. clubs and pubs in the UK & US) we sharpened the English version: prices now show in the right number format (e.g. "4.99" instead of "4,17"), "Beamer" is now consistently "Projector" in English, and the wording reads cleanly in English.
There is also a new, honest "SmartDart vs. DartConnect" comparison page (German and English) that shows when each tool is the better fit.
Upload your logo by drag-and-drop
Uploading your club, association, team or series logo is now much more convenient: just drag the image file from your folder straight onto the logo field in the settings — the area lights up and the moment you drop it, the logo is set.
Alternatively you can now click the logo preview itself to pick a file. The existing "Upload logo" button stays as well. (Logo upload remains a Premium feature.)
Your own logo for club, association, team & series
With Premium you can now upload your own logo — for your club, your association, your team and, new, for ranking series too. It then appears e.g. in the detail views, on tables and wherever your competition is shown.
You will find the upload in the respective settings (PNG/JPG/WebP, up to 5 MB — automatically resized cleanly). Emoji and accent colour stay free on every plan. Logos you have already uploaded stay visible even if a Premium access ends.
Group + knockout is now free on the Basic plan
The most popular tournament format — group + knockout (group stage first, then a knockout bracket) — is now included in the free Basic plan. You can use it without upgrading for your club, pub or hobby tournaments.
Pro stays for bigger events: up to 20 players, unlimited boards, multiple tournaments in parallel, plus the pro formats Double Elimination and Swiss system.
Winner screen now shows highlights to players too
The celebration screen at the end of a tournament now shows not just the winner but also the tournament highlights (best average, most 180s, highest checkout) — for all players and spectators.
And when you start "Same players – new round", a short note confirms the line-up was carried over and the next round is ready to go.
Tournament finish now shows highlights & a stats shortcut
When your tournament ends, the finish screen now shows the highlights right away — best average, most 180s and the highest checkout — instead of hiding them behind a tab.
There is also a new "View statistics" button that takes you to the full breakdown in one click. And the quick "Same players – new round" restart stays prominent there in case you want to keep playing.
More stable live connection during tournaments & projector
At live events (crowded venue Wi-Fi, brief dropouts) the scoring tablets, the player view, the projector and the public league & cup portal now reconnect faster and more gently after a connection drop.
A short blip comes back almost instantly; a longer outage no longer hammers the connection every 5 seconds but waits progressively longer. The result: noticeably fewer stuck displays during match day.
Faster path to login when your account already exists
If you try to register but already have an account with that email, you now land directly on the login screen — with your email pre-filled — instead of hitting an error dead-end. One step less to sign in.
League cup: groups, finals and live tables
Your league can now run a cup competition alongside the season. The board creates groups, assigns the teams and lets them play round-robin — the top two of each group automatically advance to the next round until the final decides the cup winner.
Matches use the same digital report sheet as the league (line-up → result per pairing → confirmation). Every group table updates live.
Just like the league, there is a public cup portal and a projector view: set the cup to “public” and enter the code (format `C-XXXXX`) on the projector page — spectators see groups, tables and results without an account.
LIGA plan now clearly in blue
The LIGA plan now has its own blue colour — on the pricing page, the plan badge, the upgrade prompt and the league-management page. That makes it easy to tell apart from Premium (gold) and Pro (red) at a glance.
The large league plan is now clearly called League
We renamed the previous “federation” wording in the app to League: plan labels, upgrade prompts, pricing, trial copy and league management now all use the same language.
Nothing changes about the features: the LIGA plan remains the large plan for multiple divisions, digital match reports, a public league portal, projector view, exports and multiple league managers. Existing data is migrated automatically to the new plan name.
A clear, tidy entry into league management
The home screen now has one clear entry: the “League” tile. One click opens a short choice — a league tournament (one season as a tournament, players only) or league management (multiple divisions, clubs, digital match reports, portal). If you already run a league, “My league” takes you straight in with one click. The previous duplicate league entry is gone.
Inside league management, a short collapsible hint now explains right there how a team joins: it connects to the league once via a link, then you assign it to the season and division — and that stays in place across seasons.
Give captains free access for match reports
As a league manager you can now give individual team captains free, extended access just for their match reports — via email invitation.
In the league dashboard you pick the team, enter the captain's email and send the invitation. The captain accepts it with a free account and can then only enter the match reports for their own team — line-up and results. Multiple captains per team (e.g. with a deputy) are possible, and you can revoke an access at any time.
Players stay free and view-only as before. Full league access remains with the board.
Large leagues now available
SmartDart can now run complete dart leagues digitally — from the season all the way to the match report.
As a league manager you create your league with multiple divisions (e.g. A/B/C), add teams (with venue, address and throw-off time), maintain your players with a league-wide player number (bulk import included) and approve new registrations. Eligibility and bans are a simple checkbox.
Captains fill in the match report digitally: home sets the line-up, invites the guest captain via link/QR, the guest enters only their line-up, and the home team records the result per pairing — with opponent confirmation and later corrections. Multiple board members share the administration.
All players see tables, rankings and schedules in the public league portal — no account needed. Plus: promotion/relegation zones, logo & branding, PDF/CSV export, a projector view and a league dashboard with open match reports and reminder emails.
New page: play darts against the computer
No opponent around? SmartDart has had an AI bot for this for a while — now there's a dedicated, clear page for it. It shows the five difficulty levels at a glance, from beginner (around 20 average) to world-class (around 90 average), how the bot throws and how to get started in three steps.
You play 501 or 301 against the computer, get checkout suggestions from remainder 170, and see your average, checkout rate and 180s after the match — unlimited, free and right in the browser, with no sign-up and no download. Reachable via the "More from SmartDart" section on the info pages.
Faster loading & a proper "page not found" page
SmartDart now starts noticeably faster — especially on mobile. The first load downloads a lot less: the app now only loads the language you actually need, and the full changelog is only fetched when you open this "What's new" page. The bottom line is the homepage appears sooner and responds to taps earlier.
There's also a proper "page not found" page now: following an outdated or mistyped link takes you to a clear 404 page with ways back to the homepage and the guide — instead of silently dropping you on the homepage.
Board scoring now feels instant + screen stays awake
On the board/scoring view (the device at the board) your turn now shows up instantly — the remaining score ticks down immediately and you can type the next turn right away. The pad no longer briefly "freezes" while it saves in the background. On a slow connection the upload keeps going invisibly; if something fails, the score is rolled back automatically and you get a notice.
The screen now also stays awake during a running match — no more tablet falling asleep mid-game that you have to wake up and reconnect.
New tournaments start with a board ready to go
When you create a tournament, a board ("Board 1") is now set up from the start. The Boards tab is no longer empty — you don't have to figure out how to add a board before you can get going.
As soon as you start the tournament, the first match is automatically placed on that board and is ready for scoring straight away. You can rename or delete the board at any time, or add more — just hit "Add board" for every extra dartboard.
Team fixture: player view now like a normal tournament
A team fixture (home vs. away) now feels like a regular tournament for players and spectators — same view, same handling:
• On your phone you get the familiar tabs: "My Matches" shows your singles and doubles (with partner and opposing pair), "All Matches" every live and finished game, "Stats" as usual.
• The "Fixture" tab shows the overall team score (home X:Y away) plus an overview of every single/double with status and winner — it replaces the bracket, which a fixture doesn't have.
• On the projection screen the team-score bar at the top is now slimmer and more subtle, giving the schedule and results more room.
League organising: add your own teams directly, fix seasons, clickable schedule
Organising a team league is now much faster:
• Add your own teams to the season directly — no join code, no approving yourself. Select several teams at once and you're done. The league code remains for outside team captains.
• Seasons can now be edited and deleted while in preparation — a misconfigured season (e.g. wrong match format) no longer haunts your league forever. When creating one you get a clear format preview, and we warn you if another season is already in preparation.
• The schedule now lists every fixture individually — tap one to go straight to the match page with lineups, match start and live scoring. Previously matchdays were just counters with no way to the actual game.
• League name and description can be changed afterwards.
The club area got faster too: add players as a list (one name per line — paste entire rosters at once), the dialog clearly shows which club you're in, and clubs can finally be renamed and restyled instead of deleted and recreated. And if something fails to load you now get an error message with a retry button instead of an empty page.
After the tournament: next one with the same players – one tap
When your tournament finishes, the wrap-up screen now offers a "Next tournament – same players" button. One tap creates a fresh tournament with the exact same line-up and settings — no need to re-enter players, and you land straight in the admin view of the new one.
Especially handy for club and pub nights that run several tournaments back to back.
Creating a tournament: preview before sign-up + clearer free options
When you put together a tournament without an account, we now show you a short summary of your finished setup first — name, format, game mode and (for a simple tournament) your player list — before asking you to sign up. You can see at a glance that everything is saved, and create a free account with one tap to start and share the code.
If you run into a format that isn't included in your plan, the free option is now clearer: you can try the format you want free for 24 hours instead of being sent to the pricing page first.
Small improvement: "Play & Practice" is placed a bit more prominently on the home screen and described more clearly.
Ranking series: fix a mixed-up player after the fact
In a ranking series, players are matched to the same entry across matchdays by their name. If someone spells their name differently one time (e.g. "Felix M." and "Felix Mil." the next) or two people use the same name, the standings could mix up the results.
New: "Edit player". You simply pick what applies — (1) just rename (same person, different spelling), (2) this is a different person → own entry, or (3) assign to an existing entry. If the target player already played that matchday, the two are swapped automatically. Points, averages and stats move along correctly.
You can reach it in two places: in the standings with a tap on the player, or in the matchday menu ("…"). To help you spot the right person, the dialog shows each player's result for that matchday and which other matchdays they played, warns about similar names, and shows a before→after preview before you confirm.
When renaming you can optionally tick "Also rename in the tournament" — the name then carries into the linked tournament results too, so standings and tournament show the same name.
There is also a new active hint in the Pool tab when two entries might be the same person (e.g. "Felix M." and "Felix Mil."). All corrections work comfortably on mobile too.
Quick Match & Training: a new, faster setup
Setting up Quick Match and Training is now noticeably faster and clearer.
In Quick Match you pick your opponent with a single tap as a card: a friend (pass & play on the same device), a bot (play solo against the AI across five strengths) or 3–6 players taking turns. For the bot you now see the opponent strength as a "ladder" with a short profile, and you can fine-tune it with ◀/▶. The format (501/301, best of/first to, legs) sits tidily behind "Adjust", and the "Start game" button is always active — no more hunting for the next step. Names are optional; leave them empty and it simply reads "Player 1/2".
In Training you switch between Checkout and 121 at the top and choose your session goal as a card (10 checkouts, 5 minutes or endless). A level ladder shows you how far it goes, and if you are logged in you can resume your last practice with a single tap.
Everything is optimised for phone, tablet and desktop — the start button stays within reach at the bottom.
Big-screen show: 180 celebration, join QR & optional sound
The big screen becomes a stage: when a player hits a 180 in a live match, the projection now shows a large "180" celebration with the player's name — clearly visible for the whole room.
During the registration phase the screen shows a join QR code in the bottom-right corner: guests scan it and land straight in the join/watch flow — no need to type the code.
There is also a new sound toggle at the top of the projection (off by default). Turn it on and a short cheer plays on a 180 — perfect for the atmosphere at live events, but only if you want it.
Small bonus under the hood: after brief network drops the live updates now reconnect faster.
Results page: "My stats" and a better share preview
The public results page now has a personal "My stats" block: if you are logged in and took part yourself, you see your own record, average, 180s, highest finish and placement at a glance, right at the top.
When you share the results link, the page now carries a fitting title with the tournament name and winner (e.g. "City Championship — Winner: Max | SmartDart") — making the tab title and preview more meaningful than before.
Admin comfort: delete a tournament, tab stays after refresh & a clearer empty player list
A few conveniences in the admin dashboard:
New: you can delete a tournament you created from its settings ("danger zone") — handy for test tournaments that never started.
The empty player list now actively helps: instead of just "no players" there is a clear hint and direct add buttons — so at your first tournament you immediately know what to do next.
Your last opened tab now stays after a page refresh — you no longer keep landing back on the overview.
And for quick tournaments without boards the public code is now clearly labelled "spectator code" (in neutral blue instead of alarm red) — making it clearer that it is safe to share.
Creating a tournament made easier: try any format, format recommendation & a clearer start
The home page now has a clear entry point: "Your tournament on the big screen in 2 minutes" plus a big "Start tournament" button that takes you straight into the quick wizard.
You can now pick any tournament format in the wizard and go through the whole setup at your own pace — including Group+KO, double elimination or Swiss system. The upgrade prompt only appears when you actually start the tournament, no longer on the first click on a format tile.
New while creating: as soon as you add your players, SmartDart suggests the format that fits (e.g. "round robin" for small groups). With "Compare formats" you get an overview of what sets the formats apart — no more create-and-delete just to find the right one.
Also fixed: if you activate a PREMIUM trial, you can now immediately use more players and boards in tournaments you already created (previously the old limit was wrongly still applied in that case). And when you fire a lot of actions in quick succession, you now get a friendly notice instead of a silent error — the action is retried automatically.
Quick Match: 1-tap rematch, "one level harder" vs the bot & share your result
After a Quick Match you no longer land back in setup: a big "Rematch" button starts the next match with the same opponent and format in one tap — and against the bot the difficulty is now kept (previously it silently fell back to "Amateur").
Against the bot there is also "One level harder": beat "Pro" and immediately challenge "World-Class". A small bot ladder shows which levels you have already beaten and what comes next — each level with its average benchmark (e.g. "Pro · ~70 avg") so you know what you are in for.
The result screen now celebrates your highlights (new average record, 180s, high finish, bot beaten) and you can send your result via "Share". "Change setup" lets you adjust legs and bot level in a slim overlay — without a detour via the home page.
Don't want to lose your match without an account? The save prompt is now personal ("Save your 54.3 avg") and appears after bot matches too. Plus larger, thumb-friendly buttons on mobile.
Training reimagined: session goals, daily streak & 121 now playable without an account
Checkout training now has a real goal: before you start, pick "10 checkouts", "5 minutes" or "endless". A progress bar at the top always shows how far along you are — and when you hit your goal you get a little win moment plus the option to keep going with the same goal right away.
New for signed-in players: a daily streak 🔥. Every day you train counts — just like language apps. You also earn XP, level up and unlock badges (e.g. "7-day streak" or "Checkout Master"). Your last session is shown when you start, including a difficulty recommendation.
You can now try 121 Dart without an account too — the first rounds are free, and your high score is saved with a free account.
Also a fully reworked mobile layout: the input pad including Bull/Bull's Eye/Confirm now fits on screen without scrolling — especially on small devices like the iPhone SE. On tablet landscape the left side now shows a live stats board instead of empty space.
Permanent club board: log in once, optional PIN, idle goes straight to Quick Match
If you use a laptop or tablet as a fixed dartboard at your club, you now only need to log it in ONCE. Every club board has a fixed device code — log in with it and the device stays connected across all future club tournaments. No more re-logging in before each tournament.
Optionally you can protect any board with a PIN (4–8 digits, in the club settings under "Boards"). The device login then asks for the PIN after the code — so players can't accidentally reach the admin or home page.
And when no tournament is running, the board shows an idle screen with a big "Start Quick Match" button — perfect for practising until the next tournament begins. As soon as the admin starts a tournament, the board reconnects automatically.
New: per-leg throw history — plus keyboard score entry
Now available: the full throw history of the current leg — as a clear table with one column per player. You see every throw with points and remaining score, instead of just the "last throw". Available in laptop/board mode and in Quick Match.
Also: when you use a laptop as your dartboard, you can now type the score on the number keys and confirm with Enter — instead of clicking the input field with the mouse (Backspace deletes, Esc clears). On phone and tablet everything stays as before via the on-screen pad.
Share your public season & league standings + beamer
Team leagues now have a public, shareable season standings table — just like the ranking-tournament series. As a league owner you can flip your league to "public" in the league settings and get a link you can drop into the club WhatsApp or your website. Anyone can see the current season standings — no account needed.
There is also a beamer mode: dark background, large type, top 3 with medals — perfect for showing the season table on matchday at the club or pub. It updates live while the matches are being played.
Private leagues stay private: the link only works while you have explicitly set the league to public.
Ranking table: medal instead of rank number for the top 3
In the ranking-series table on the public results page, the rank column now shows the medal (🥇 🥈 🥉) for the top three directly — instead of the number 1/2/3 plus a small extra medal next to the name.
This moves the medal away from the player name: long names no longer wrap onto two lines and get more room. The "Avg Pts" column header now also reliably stays on a single line.
Ranking series: new "avg points per matchday" column
A ranking series table now shows a new "Avg Pts" column right next to the total points — the average points per matchday played (total points divided by number of matchdays).
This makes it fairer to compare players who attended a different number of matchdays: someone who only played half the matchdays sits lower on raw total points, but might be the strongest on a per-matchday average.
The column is purely informational — it does not change the ranking or scoring of the table. It appears everywhere: in the management view, on the public results page (the shared link) and on the beamer projection.
Connecting a board: clearer codes, better error messages
Connecting a scoring device (tablet/phone at the board) is now far less error-prone.
— Correct example in the input field: The code field used to show "AB12X" as an example — but that's the format of a tournament code. Board codes use the format "D + 4 digits" (e.g. D1234). The field and hint text now state the correct format so nobody types the wrong code.
— Understandable error messages: Instead of a generic "not found", the app now clearly says what's wrong — either "code format doesn't match (expected D + 4 digits)" or "device code not found — check the code in the admin dashboard, or the tournament has already ended".
— Faster player join: Joining with a normal tournament code now goes straight into the join flow without an unnecessary detour.
Results page redesign: champion spotlight, highlights & share as image
The public results page (the link you share after a tournament) used to be mostly a stack of tables. Now it puts the moment that matters front and center: the win.
— Champion spotlight: A big winner banner now sits at the top with a trophy, the name and the champion's key numbers (win rate, average, high finish, 180s). A short burst of confetti greets you on open.
— Tournament highlights: A row of animated tiles shows the headline figures (matches played, legs, 180s, darts thrown) followed by the tournament records — high finish, most 180s, best average, fastest leg and more, each with the player behind it.
— Match results with average bars: Instead of a plain table, each match is a card with a small average comparison bar — see at a glance who threw better. Tapping still opens the detailed stats.
— Share as image: A new button generates a polished result graphic (podium + champion + top highlight) — perfect for the WhatsApp group or Instagram.
Bracket, standings and player statistics are still there — there's just a lot more around them now.
Board view: reset current leg via header icon
In the score pad (board / device view), a small orange reset icon now sits in the top-right header next to the connection indicator. It lets you reset the current leg back to its starting score (e.g. 501) mid-match — useful if you mis-typed a score and want to start over cleanly.
A tap opens a confirmation dialog with an explanation. Once confirmed:
— The current leg score jumps back to the starting score
— Darts already thrown in THIS leg no longer count toward the match average
— Won legs stay the same (the leg counter is not touched)
— 180s, 140s and bonus statistics are NOT reset — the player keeps them
The board tablet now has the same "clean up without losing a leg" tool that the admin screen got in the previous update. Reachable directly in the live game without anyone needing to step in from the admin tablet.
Ranking series: points distribution now visible to everyone
Until now only the owner of a ranking series could see how the points are configured (in the settings tab). Spectators on the public results link, or players checking the standings, only saw the table with the final totals — but not why one player has 28 points and another 22.
A compact "points distribution" card now sits above the standings table with two columns:
— Base points on the left: match win, match draw, leg win (draw shown only if greater than 0)
— Bonus points on the right (if active): 180 visit, 140+ visit, high finish from a threshold (e.g. ≥120), maximum finish (170 checkout)
Fields with value 0 are hidden — if no bonus points are configured, the entire right column disappears. The tiebreaker hint sits at the bottom: "On ties: 1) leg difference, 2) average".
Visible in three places: public results page of a series (/series/results/CODE), standings tab in the series detail view, and also in the empty state during the preparation phase — so the owner can double-check the rules while setting up.
Team-match tournament: assign team directly from the Players tab
Until now you could only assign players to a team via the Line-up tab in the classic team-match tournament format (Home vs Away, no club required). Sorting players quickly during prep meant switching tabs.
Now each player row on the Players tab has a 3-way toggle "Home | Pool | Away" showing the actual team names from the tournament. One tap assigns the player. The toggle sits on its own row beneath the name so nothing gets squeezed on desktop. The Line-up tab still handles slot placement.
Once the tournament starts the assignment is locked so nobody can shuffle teams mid-match.
Admin view: reset the current leg mid-match
When scoring goes wrong in a running leg — a visit typed incorrectly or a few darts thrown without a score — you can now cleanly restart the current leg straight from the admin match card.
On a running match, the button "Reset current leg to 501" (showing the actual starting score) appears as soon as something has been thrown in the leg. A click opens a confirmation dialog explaining what happens:
— The leg score jumps back to the starting score
— Already-won legs stay unchanged (it does not count as a lost leg)
— 180s and bonus statistics are kept for the player
— Only the darts thrown in the current leg stop counting toward the match average
This fixes a mistyped leg without having to set up the whole match again.
Team match on the projector: same look as a regular tournament
The projector view of a team match used to look entirely different from other formats — a slim header, a giant home-vs-away score in the middle, a sub-match ticker at the bottom. Meanwhile KO, league, round-robin and double-elimination projections showed the full branded header (logo, club badge, live indicator, layout settings, spectator QR) plus the familiar broadcast layout with live-match card and stats ticker.
Team matches now use that same shell:
— Full branded header (logo, club, status, live indicator, font scale, layout editor, QR) — Compact team-scoreboard card at the top showing the aggregate home-vs-away score and fixture progress — Left column: live sub-matches in the usual PDC/Stadium/Broadcast/Classic card style, plus recent results — Right column: the full fixture list with singles/doubles positions, home and away line-ups, status chip, trophy icon on the winning side
Sections can be toggled exactly like in the other formats, auto-scroll handles long fixture lists, and the spectator QR can be blown up to full screen — all from the same layout editor.
Consistent branding: SmartDart logo on waiting and login screens
A few interstitial screens — like the public results page of a running tournament or the board login on a tablet — used to show a generic dart arrow as a hero icon. That felt off-brand between the logo header above and the rest of the content.
Those spots now carry the actual SmartDart logo:
— Public results page while a tournament is still running ("Tournament still in progress …") — Board login (enter code) — Board "waiting for next match" screen — the logo gently pulses there (fades light/dark and scales slightly), but does not rotate. Keeps the logo upright instead of spinning like the old arrow icon did.
No functional change, purely visual — but noticeably more consistent when you share a link to a live tournament.
Friendly match: assign team directly from the Players tab
On the Players tab of the friendly-match admin view, you could only add or remove players — assigning a side (home/away) required dragging into a slot in the Line-up tab. On mobile or when sorting many players in a row, that felt slow.
Each player row now has a 3-way toggle "Home | Pool | Away". One tap assigns the player to a team or moves them back to the pool. Drag & drop in the Line-up tab still works as an alternative for slot placement.
After the match has started, assignment is automatically locked so nobody can shuffle teams mid-game.
Friendly match line-up: drag & drop instead of three tabs
Player-to-match assignment in friendly matches was spread across three tabs — Players, Teams, and Line-up — and required five clicks plus a manual "save" per side for a single assignment.
The new line-up lives in a single tab with three columns: Home slots on the left, player pool in the middle (grouped into Home pool / Not yet assigned / Away pool), Away slots on the right. Players are dragged directly into a slot — side is set automatically. Every change is saved instantly, no extra click needed.
On mobile, long-press a player and drag. If you prefer: tap a slot and pick a player from the menu.
The "Teams" tab is gone — side assignment now happens in the line-up. The Players tab shows side only as a small badge (Home/Away/Pool) — changes happen in the line-up tab.
Ranking series statistics: visual season overview with podium, top lists and scoring volume
The statistics page of a ranking series used to be very plain — three simple lists, nothing else. There is now a visually richer season overview:
- Hero cards at the top: number of matchdays, finished matches, total maximums of the season and highest checkout (with player name).
- Podium with gold/silver/bronze for the current top 3, including points, match record, average and 180s count.
- Scoring volume as colored bar comparison: 180s, 140s, 100s, 60s summed across all players.
- Eight top lists in a grid: top 180s, 140s, 100s, highest checkouts, match wins, best average, best checkout %, best first-9 average. With mini progress bars per entry.
The stats overview is now also visible on the public result link of the series (`/series/results/CODE`) — players and fans can pull up the season stats at any time via the shared link, without logging in.
Smaller fixes on top: the "connect request pending" chip on the series list previously showed the placeholder `{{n}}` instead of the count. And the Reject button on a pending pool identity request was barely readable on the gold background (red on gold).
Player view: New info banner while you wait for your next round
When you are in a tournament but currently have no live match and no upcoming match (e.g. because you got knocked out in the KO bracket while the tournament continues, or because the admin has not started the next round yet), the player view used to be empty — no indication what was happening or whether the app was still working.
Now a clear info banner appears with the heading "It's not your turn yet". Content:
- If another match in the tournament is currently running, the banner shows which players are playing right now. - If nothing is running (e.g. break between rounds), it shows "Break — no match is running right now".
Under both variants there is an explanatory text: "Your next round will start as soon as the open matches of this round finish and the admin advances the bracket."
Ranking series: admin sees new pool requests live + join blocked once tournament is running
Two more improvements around pool identity requests:
1) Live notifications for admins
Previously the admin had to switch tabs or reload to see a new pool request. Now requests flow into the admin view in real time — as soon as a player submits an identity request, it shows up at the top of the players tab. A snackbar info message also appears: "New pool request — please approve or reject in the Players tab".
The series detail page (pool tab) also has a 15-second auto-refresh as a safety net.
2) Joining blocked once tournament is running
Until now a player could submit a pool identity claim even after the tournament had started. The admin could approve it — but the player would be registered without being slotted into the bracket → they would have no matches.
That is now properly handled: anyone trying to join a running tournament sees a clear hint on the join screen "This tournament is already running — you can't join as a player anymore. If you only want to watch, go back and pick Just watch". The backend API blocks submit + approve with 409.
If the tournament starts between request and admin decision: approve fails with "Tournament is already running — approval no longer possible. Please reject the request."
Tier wall in admin dashboard now shows upgrade dialog instead of raw error
When you tried to add an 11th player to a tournament, start a 2nd active tournament or create a 3rd board as a BASIC user in the admin dashboard, you previously only saw a short red "Create failed" snackbar at the top of the screen. What was actually blocking (BASIC tier limit) and how to resolve it (activate trial / upgrade) was not visible.
Now the familiar upgrade dialog appears instead of the error — showing which specific limit was hit, with the option to activate the free 24h trial or upgrade to PRO/PREMIUM directly.
The same improvement was already live for tournament creation on the home page since session 182 — now the admin dashboard catches up. Bulk player adds benefit too.
Ranking series: pool-identity check on tournament join + merge players
Two improvements around pool identities in ranking tournament series:
1) Pool identity check on tournament join
Previously anonymous players could sign up under any name — even if the name already existed in the series pool. That was a security gap: anyone could type "Max" and steal the real Max's stats.
What changes:
• Logged-in users with a pool hit: When you join a matchday with your account and have already played in this series, you see a small banner above the code entry — "You've played here before — Max · rank 3 · 28 pts". Friction-free join with clear identity confirmation.
• Anonymous joiners with name conflict: If someone without an account enters "Max" and a pool entry "Max" exists, the dialog now asks: "Are you the existing Max?". Yes triggers a pool request to the organizer — the player waits for approval (or can create a SmartDart account; the system then recognises them automatically in future matchdays). No creates a new pool entry.
• Admin surface: The tournament admin sees the request at the top of the players tab in their admin view ("Jan wants to play as ‘Max‘ — Approve / Reject"). The series owner additionally sees all pool requests for their series in the pool tab. Both can decide — first come, first served.
• On approval, the player is auto-redirected to the tournament, stats run on the existing pool entry. On rejection, the player picks a different name.
2) Merge pool players
It often happens that the same player was entered as "Max" on matchday 1 and accidentally as "Max.S" or "M.Schmidt" on matchday 2 — both anonymous, two separate pool entries. Stats run separately, the table is wrong.
The series owner can now merge two entries in the pool tab: button "Merge players" → pick source + target → preview shows before/after ("Max.S (12 pts, 1 md) + Max (28 pts, 3 md) → Max (40 pts, 4 md)") → confirm. All stats and matchdays move to the target, source is deleted, table is recomputed.
Conflict protection: if both entries played on the same matchday (rare but theoretically possible) or are linked to different accounts, the backend blocks the merge with a clear message.
Dedicated SEO landing page for the ranking-tournament feature
The ranking-tournament feature now has its own explanatory landing page at smartdart.app/dart-ranking-tournament (German slug: /dart-ranglistenturnier).
What changes:
• The purple "Ranking Tournament Series" tile on the landing page now sends non-logged-in visitors to the new landing page first, instead of straight to the auth wall. Logged-in users still land directly in the series overview — no extra clicks for existing users.
• The landing page explains the feature compactly: hero, 8 feature cards (multiple matchdays, live table, pool, bonus points, QR public link, projection view, stats parity, season-end champion), 4-step setup guide, 4 typical use cases (club championship, pub cup, hobby season, corporate cup), 12 FAQ entries and a final CTA.
• SEO: full Helmet tags + JSON-LD schema (SoftwareApplication + FAQPage + HowTo + BreadcrumbList) + hreflang DE/EN. The page is part of sitemap.xml and gets prerendered at build time. Plus five long-tail redirects on the German side for direct URL inputs.
• English version at /en/dart-ranking-tournament — bilingual content kept in sync.
Background: the feature used to be reachable only via the tile + auth wall — search engines had no indexable page, and first-time visitors had to sign up before they understood what the feature actually was.
Ranking series: add external players retroactively + series badge in player & projection view
Two additions around ranking series:
1) Add external players retroactively
The standings tab of a series has a new button "Add external player". Use it to retroactively add players who took part without SmartDart, or whose result came from a spreadsheet.
Only name + points are required — everything else is optional. Open "Show advanced stats" to add match W/L, leg W/L, average, scoring avg, first-9, checkout %, 180s/140+/100+/60+ and highest checkout — they flow straight into the ranking and the player profile popup.
All external entries land in a shared special matchday "External results" (marked with an "External" chip in the matchdays tab). If a name already exists in the pool, an auto-suffix is appended — you can rename the entry later.
2) Series badge in player view + projection
If a tournament is part of a ranking series, you now see a purple trophy chip with the series name everywhere — not just in admin mode, but also in the player view (clickable → public series page with live standings) and in the projection/beamer view (informational, so spectators at the club instantly recognise this is a matchday of a league season).
Ranking series: multiple matchdays, live standings, dedicated pool
New mode for whole seasons with N matchdays and an overall ranking — perfect for a club cup, pub league or a private hobby season.
How it works:
• Create a series (e.g. "Club Championship 2026") with its own points config (default 2 points per match win + 1 per draw + 1 per leg won — every slider individually tweakable).
• Bonus points for special throws (optional): X points per 180, per 140+ visit, for high finishes from a threshold (100/120/140/170) and an extra bonus for the maximum finish (170 checkout). Reward strong individual play, not just wins.
• Maintain a player pool (name + optional email). Players can later link themselves to a pool entry via the public link — you confirm it in the pool tab.
• Two ways to attach a tournament: a) Add a matchday from the series detail view (3 modes: new tournament / import existing / manual results). b) When creating a tournament normally from the landing page, pick a series in the wizard — the tournament is auto-attached as a matchday. The admin view shows a purple trophy badge for linked tournaments; unattached tournaments show "Attach to series" for later linking.
• Automatic pool sync: Whoever joins the tournament — added manually by the owner, via self-join or via QR — lands instantly in the series pool and standings. On self-join, the player is asked if they're already a pool member (link to existing entry) or new; for "new", first-come-first-serve enforces the name is still available (no more auto-suffix for QR joins).
• Add matchdays — three ways: brand-new tournament inside the series, import an existing FINISHED tournament (e.g. last weekend's club championship), or enter results manually (for clubs migrating from Excel mid-season).
• The overall ranking updates live after every match — tiebreaker: points → leg difference → average.
• Full stats parity: 180s, 140+, 100+, 60+, first-9 average, checkout % and highest checkout flow automatically from tournament matches into the series. For MANUAL matchdays you can enter the same values as optional fields.
• Click a player on the public page to open a profile popup with hero cards (points, avg, win rate) + scoring/finishing/consistency sections with big icons + match and leg balance bars + highlight for high finishes and 170 maximums.
• Public link with QR code + projection layout — share the season table in your club WhatsApp or throw it on the wall during a matchday. On the projection the leg difference is colored (green/red) for instant readability.
Now on the landing page as its own tile (purple, medal icon) — directly clickable. Premium feature for now — BASIC/PRO see a demo preview with bonus points enabled as an example.
New stats + results page refreshed: KO qualifiers, clickable matches, leg-avg rankings
The results page and stats sections get a bigger step forward:
Three new stats — visible everywhere:
• Avg in best leg — for each player in a match, their highest 3-dart average of a single leg. Won or lost — if someone nails a single leg in 12 darts at 125 avg, that now shows up as its own number in the match stats dialog (next to "Best leg (darts)").
• Top-5 best leg averages of the tournament — new leaderboard in the tournament statistics. Who had the best single leg in the whole event?
• Top-5 best match scoring — the five players with the highest match scoring average (turns above 170, no finish throws). Shows who was most consistent in pure scoring.
On the player view and in the tournament ranking on the results page, both new values are also shown per player — visible for every player in the tournament, not just yourself.
Results page refreshed:
• KO qualifiers in the group standings are now clearly highlighted — green border stripe + check icon + legend "Top X qualify for the KO phase". You see at a glance who advances.
• Match cards and rows are visibly clickable — previously you had to guess that tapping a match opens the detailed stats. Now every card shows a chevron arrow + "Stats" label, the desktop table has a dedicated "Details" column with a stats button. Plus a discreet hint line above the match list.
Team match: line-up tab + stats for QR players
Two last gaps in the team-match mode are closed:
1) Captain assigns slots directly from the pool The team-match admin mode now has its own "Line-up" tab (4th tab, between Teams and Boards). Three columns: home slots on the left (singles 1, 2, … + doubles 1.1, 1.2, …), pool players grouped by side in the middle, away slots on the right. Tap a slot, pick a pool player, slot is filled. Save per side — both saved → match is ready to start.
Especially handy for the QR flow: players join via their phone (pool), you assign them a side (home or away) in the teams tab, then put them into a concrete slot in the line-up tab.
The previous line-up via roster members from the detail view still works — you can even mix pool players and roster members in the same line-up.
2) Players see their stats after joining Whoever joined a team match via QR code now sees a new button "Show my matches" after joining. A click opens a stats card with:
• W/L/D + legs balance across all sub-matches • 13-row statistics like the match comparison (Average, Scoring avg, First-9, 60+/80+/100+/140+/180+, Highest checkout, Checkout %, Shortest leg) • List of all sub-matches with opponent, doubles partner, result and click-link to the match replay
No login needed — the stats hang off the match share-code and are immediately available to the player.
Landing page: tidier first row — Create · Join · Connect device
The top tile row on the landing page is reshuffled and easier to scan:
• Create Tournament (red tile, plus icon) — opens the picker dialog (Classic, Quick Tournament, Team Match). • Join Tournament (cyan tile, login icon) — jumps straight to the code-entry step. One tap instead of two (previously you had to tap "Create or Join" and then dig into the dialog). • Connect Device / Projector (teal tile, TV icon) — was previously buried as a grey, unobtrusive card further down. Now it sits in the first row with a clear color.
The dialog behind "Create Tournament" only shows creation variants now — the join entry was removed there.
Manage team matches like a tournament — with QR-code join
Team matches (friendly + quick) now have a fully featured admin mode with the same tabs as a regular tournament.
New: • TeamMatchAdminView at `/team-match/admin/{code}` — 5 tabs: Overview, Players, Teams, Boards, Matches • Players tab — add players manually (bulk: one name per line, max 50) or let them join via QR code • Teams tab — 3-column layout (Pool · Home · Away) with click-to-assign between columns • QR code in share dialog — players scan the code with their phone and join directly • Public join page at `/team-match/join/{code}` — enter username, done (no login needed) • Mobile bottom-nav instead of top tabs on <600px • ADMIN badge on the team-match detail page opens the new admin view directly
The existing detail page remains for lineup setting + board setup + live-match control — the new admin view is the higher-level overview.
Backend: Team matches get an admin code (32 char) for captain access plus a short join code (6 char uppercase) for QR join. Existing team matches were backfilled with both codes — no breaking change.
Tier limit: Players in the team-match pool count toward the same player limit as tournament players (BASIC 10 / PRO 20 / PREMIUM unlimited). For DSAB friendlies with the 16+4 format you need PREMIUM if you want to fill the full pool.
Live board more compact: size slider on the device view + full-screen match summary
On small phones (for example when scoring at the board with the phone in your hand) the device view was previously too tall — score header + tabs + numpad + bull buttons did not fit into the viewport without scrolling. The stats dialog after clicking a finished match (admin / player / results page) also had to be scrolled inside its own window.
New — dedicated "Draw" tab on the live board: The draw action (Session 171) is now a fully featured 4th tab in the device view instead of a hidden three-dot menu. The tab is called "Draw", has a handshake icon and only appears if the match is actually allowed to end as a draw (Round Robin or GK group stage with draws enabled). Content: large cyan handshake icon, "Draw" headline, both player names, an explanation "End the match as a draw? There is no winner; both players get 1 point." and a big cyan "End as draw" button. After clicking, the end-of-match overlay is shown immediately with the handshake banner.
New — more compact device view by default: The live-board view now starts automatically in a compact 70 % rendering. With that, both player score headers, all 20 number buttons, Bull / Bull's-Eye / Miss, the Single/Double/Triple selector and the help banner fit into a typical smartphone viewport (e.g. iPhone 13, 390x844) without scrolling. Additionally the orange "Anna vs Bob — Best of 3" match-info stripe is gone, since player name and format are already visible on the score cards.
New — size slider on the live board: In the top-right corner (next to the home button) there is a new slider icon. On first visit it pulses briefly and shows a tip "you can adjust the size here", so the feature is not overlooked. Clicking it opens a slider from 70 % to 120 %. The chosen size is stored in the browser and restored on the next visit. The slider affects the whole scoring area as well as the end-of-match trophy screen with the statistics.
Improved — full-screen match summary on mobile: The statistics dialog (opens after clicking a finished match) now uses the full screen on mobile instead of a small popup. All 14 comparison rows (avg, scoring, first-9, checkouts, darts thrown, 60+ / 80+ / 100+ / 140+ / 180s …) plus the "Close" button are visible without internal scrolling. On tablet and desktop the familiar centered dialog layout is preserved.
Draws now visible everywhere — projector, live board, results page
The new Draws option (see yesterday's update) was previously only visible in the admin dashboard. From now on the feature carries through consistently to all views:
New entry points: • Live board (scoring device) — via the three-dot menu in the top right you can now end a live match as a draw directly at the board (e.g. when a player has to leave early). Confirmation dialog before saving. • Boards tab in the admin dashboard — every board card with a live group-stage match shows the same three-dot menu.
New display locations: • Player view (`/player/{code}`) — match lists now show a blue "Draw" chip instead of a trophy. Standings tables get a "D" column (Round Robin, Champions League, GK groups). • Projector view — KO brackets show draw matches with a blue chip instead of winner-highlight. The standings table on the projector also gets the "D" column. • Public results page (`/results/{code}`) — match list has a draw chip, standings get a "D" column. Mobile + desktop. • Match Replay page (leg-by-leg breakdown) — for a draw match a clear "🤝 Draw" banner appears on top instead of winner trophies. • Team-match sub-matches — draw status (DSAB) is now also rendered correctly as a "Draw" chip on the public results page and on the team-match projector.
Under the hood: The Match DTO now carries the tournament format and `drawsAllowed` setting, so live views can decide whether to render the draw button without an extra data fetch.
New: DSAB E-Dart mode + draws in group-stage tournaments
Two requests from a DSAB player's feedback after his first club tournament are now live:
1) DSAB E-Dart format presets for team friendly matches In the Friendly Wizard you can now pick two new presets: • DSAB E-Dart (Standard, 16+2) — 16 singles + 2 doubles, 501 Double Out, Best of 3 Legs (DSAB standard league) • DSAB E-Dart (Upper Leagues, 16+4) — 16 singles + 4 doubles, otherwise identical
Perfect for club friendlies against other teams that you used to track on paper. The app auto-generates all 18 or 20 sub-matches, you set your line-up, hit start — live view on the tablet, score entry in parallel on the phone.
New in the "Create tournament" dialog on the landing page: an additional "Team Match" card opens a slim 4-step wizard — you only enter match name + format + both team names + player lists, and the app auto-creates everything in the background (club, teams, players, line-up). No club setup needed, no captain approval — you are captain for both sides and can start immediately.
2) Draws in round-robin and group-stage tournaments When creating a tournament you now see a new option "Allow draws" under the Round Robin and Groups + KO formats. When enabled: • In the Admin dashboard you can end a live group-stage match as a Draw with one click • Both players get 1 table point (Win = 2, Draw = 1, Loss = 0 — DSAB standard) • The standings table automatically gets a "D" column as soon as at least one match ends in a draw • KO phases are excluded — a knockout match always needs a winner
DSAB sub-matches also got a "Draw" button next to the walkover buttons (for abandon situations).
What's not in this update? A native smartphone app is on the roadmap but not yet here — until then, the web app works great on phone + tablet in parallel via the browser.
Reminder mail for tournaments that are played out but not officially closed
When your tournament has been fully played (all matches finished, winner determined) but you forgot to click "Finish tournament", you now get a short reminder mail the next morning with a direct link to wrap it up.
Why? As long as a tournament shows "in progress", the public results page is not unlocked — and the tournament slot keeps counting against your tier limit. One click on the mail CTA "Finish & share results" handles both: tournament is officially closed, and the results page (`/results/{code}`) is instantly shareable — perfect for the WhatsApp group after club night.
How exactly does it work? • Detection: daily check at 09:30 (Berlin time), finds tournaments where every match is `FINISHED` and the last match ended at least 1 hour ago • Recipient: only you as the tournament creator • Frequency: maximum one mail per tournament — if you ignore the reminder, no second push • Language: automatically DE or EN based on your account preference • Existing tournaments that are already "played out but open" today get no retroactive reminder
English language is now detected automatically
If you visit smartdart.app with an English-language browser, you now see the English version straight away — no manual switching needed.
What changes: • English browser on `smartdart.app` → automatic redirect to `smartdart.app/en` • Works for every topic page too (`/dart-vereinsturnier` → `/en/dart-vereinsturnier`, `/pricing` → `/en/pricing`, etc.) • Works in tournament views (Admin, Player, Projection, Results page) — even without an `/en` URL the UI runs in English • `<html lang>` attribute is kept in sync — screen readers pronounce correctly, Google indexes cleanly
What deliberately does NOT happen: • Search engine crawlers (Google, Bing, Facebook preview, etc.) are NOT redirected — SEO stays unchanged • If you manually click "DE", you stay on German — even with an English browser, even after reload, even in new tabs • If you manually choose "EN", you stay on English — even when opening a German link/bookmark (a bookmark to `/pricing` then leads to `/en/pricing`)
Additional fixes shipped alongside: • Results page (`/results/...`): bracket headings "Quarter-Final / Semi-Final / Final" are now translated correctly (previously always German, even on the English page) • Projection view: "Live View" / "Results" toggle is now actually English on the English page
Match Reports are now available
Every finished match now shows a complete side-by-side player report. The stronger value per row glows green, the winner gets 🏆 + a gold accent.
What's in the report? • Legs won • Average (match average) • Scoring average (excludes finish attempts) • First-9 average • Checkout % • Checkout rate (e.g. 3/26) • Highest finish • Total darts thrown • Best leg (fewest darts) • 60+ / 80+ / 100+ / 140+ / 180s
Where does the report appear? • Quick Match + Pass-and-Play: right in the result screen • Beamer/board: second step after the confetti-trophy • Tournament (Admin + Player): every finished match is tappable → dialog with the full table • Club league / team match: per singles match beneath the fixture overview • Public results page (shared link `/results/...`): every match row is now tappable • Match replay page (`/team-matches/.../replay`): shows the full report • Team match detail (captain view): each finished singles match has a "Show statistics" chip
Note: for matches finished before this update, some fields stay empty — if you see "—", the match was simply played before today. New matches have everything.
Try the tournament wizard without signing up — account only required to create
You can now click through the entire tournament wizard without an account. Pick a format, enter a tournament name, configure best-of / mode / bracket options — everything works without signing up.
Only when you hit "Create tournament" at the end, we ask you to register or log in. After successful auth, your full setup is automatically restored and the tournament is created immediately — no need to re-enter anything.
Why the change? Until now, the first click on "Create tournament" redirected straight to the login screen, without you ever seeing what the app actually does. Now you see all the options (all 7 tournament formats, modes, best-of config) before you decide.
Technical: your setup is cached in your browser for 24 hours and submitted right after login. If a chosen format is outside your tier (e.g. Swiss on BASIC), you get the usual upgrade hint — but the rest of your setup remains intact.
New: Match replay + head-to-head stats DartCounter-style
You can now open the match replay for every finished match in a friendly or league season — and a new head-to-head comparison DartCounter-style shows both players side by side.
Head-to-head comparison — new on the match replay page and in every sub-match card of the public results page: a side-by-side table with average, first 9, checkout %, 100+/140+/180s, highest finish and shortest leg. The better value is highlighted in green — at a glance you see who led in which discipline.
Open match replay — the public results page of a team match (`/team-matches/share/...`) now shows a "Replay →" button for each sub-match. Click it to open a dedicated page with score header, the head-to-head comparison, and a leg-by-leg list: per leg you see winner, darts per player, highest checkout and duration.
The league season player detail (click a player in the "Players" tab) also exposes the replay link for each match.
Shareable — the replay page is public via the share code, no login required. Handy to share a 121 checkout with the team or for a captain debrief "why did we lose leg 3".
Note: The throw-by-throw replay (every individual turn T20-T19-D16) is coming in a later update — for now we show the leg level, because the app only stores the per-turn totals.
New: Club Teams & Team League with seasons, standings and player stats
The biggest update in months — complete club league system is now live:
Teams within your club (PRO and up) — each dart club can now host multiple teams (e.g. "Eagles 1", "Eagles 2"), pick a captain, assign players from the club pool and share a team code. Captains set the lineup (singles + doubles) before every match.
Friendlies between teams (PRO and up) — invite other teams via team code, choose a format preset (DDV-Klassisch, BDV-Bezirksliga, UK Pub League, UK Super League or Custom), set lineups in parallel. Live execution across multiple boards, projection view with a carousel of running sub-matches, per-player stats, walkover option for cancelled sub-matches. Public results page for sharing.
Club leagues with seasons & schedule (PREMIUM) — under /leagues you create a league with a points system (3-1-0 adjustable) and format. Teams request to join via league code, you approve. At season start the app generates the Berger schedule (round-robin, optional home + away) — all matches appear with one click.
Live standings with form curve — sortable table with DFB-style tiebreaker (points → head-to-head → leg difference), form of the last 5 matches as W/D/L chips (green/yellow/red). Updates flow live via WebSocket — once a match finishes, the table refreshes in every open browser without reload.
Auto-champion celebration — once every matchday is played, the season automatically flips to FINISHED, the champion is recorded, and the standings show a big trophy banner with confetti. Season stats freeze in place.
Player stats & top lists (PREMIUM) — new Players tab shows league aggregate (total 180s, league average, highest checkout, active players), 4 top-5 lists (average, 180s, checkout, most matches) and a sortable table of all season participants. Clicking a player opens the match-by-match detail: every sub-match with opponent, score, average, 180s, highest checkout.
Everything works on mobile — the table collapses columns, the detail modal goes fullscreen, and every action is covered by data-testid (162 automated tests).
Manual draw + custom match order
Two new features for everyone who already has their draw on paper or wants to steer the match order live:
Manual draw — for knockout and group+KO tournaments you can now choose "Manual" as the draw mode at creation time. After adding all players, the Bracket tab in the admin area shows an editor where you either click together the round-1 pairings yourself (with the option to mark individual players as BYE) or manually assign players to groups. The tournament can only be started once the draw is set — everything after that works as usual.
Match order — in the matches tab each pending match now shows two small ▲▼ buttons to change its position in the list. Handy when a player arrives late, you want to follow a specific seeding or just sort upcoming matches. The order also applies to the player and projection views.
The default modes (random draw, fixed seeding) remain unchanged — the new option is purely additive.
Edit every tournament setting before the start
Until now the admin "Settings" tab only let you change game mode, legs and bracket/board mode. Format-specific things — matches per player (Champions League), number of groups, KO qualifiers, whether there's a 3rd/4th place match — were locked in at creation.
From now on everything from the create dialog is editable before the tournament starts:
- Tournament name, game mode, scoring type, legs/first-to - Matches per player (CL), KO qualifiers, group count, best runners-up - New Yes/No switch "Play 3rd/4th Place Match" — surfaced as a clear toggle instead of being hidden in a number - KO phase with its own settings, including per-round configuration (R16 Bo5, final Bo11, etc.) - Double Elimination mode
The format itself stays fixed.
Use case: connect all tablets in the morning, then adjust match count and group setup right before kickoff depending on actual turnout — no need to recreate the tournament. Comes straight from club feedback.
Small companion fix: the "KO Round Modes" dialog and the KO rounds row in the overview were still showing German strings in the English UI — now fully localized.
Projector results screen: QR code always visible, no scrolling needed
When a tournament finished, the projector showed the results screen with podium, stats and hall of fame — but the QR code to the results page sat at the bottom. Spectators had to wait for it to scroll into view (or got nothing at all if the projector machine was static).
New layout: podium with stats and hall of fame on the left, a dedicated card on the right with the QR code large and prominent, plus the link URL. Nothing scrolls anymore — the QR is visible from the start and can be scanned at any time.
New: Configure each KO round individually (R16/QF/SF/F + 3rd-place)
Previously the KO phase had one mode for all rounds — once groups were done, everything ran to the final on the same Bo3/Bo5/Bo7. Classic tournament pacing (e.g. R16 Bo5, QF Bo7, SF Bo9, Final Bo11) wasn't possible.
Now you can set a separate mode per KO round. Two entry points:
• Right when creating the tournament (wizard under "KO Phase" → toggle "Configure each KO round individually") • Later from the admin overview ("KO rounds" card → "Edit") — editable as long as the KO phase hasn't started yet
The 3rd/4th-place playoff has its own slot, so you can configure it separately (e.g. short Bo3 to ease out while the final is Bo11).
Only GROUP_KNOCKOUT and CHAMPIONS_LEAGUE — other formats don't have a separate KO phase. Existing tournaments stay unchanged: without configuration the KO phase runs as before with a single shared mode.
SmartDart branding on projector view and shared result pages
When the projector runs at the club for hours or you share a result link via WhatsApp, there was no visible cue showing where this actually came from.
On the projector view, the SmartDart logo now sits in the top-left header next to the tournament name, with a subtle "smartdart.app" watermark in the bottom-left. Both clickable — in case the projector machine does have a mouse.
On the public result page (`/results/CODE`), there's now a clickable logo plus wordmark at the top (replacing the old "Back to SmartDart" button) and a prominent branding block at the bottom: logo, "Created with SmartDart", subtitle, and a big "Start your own tournament" button. Anyone receiving the link from a friend immediately sees what the app does and can start a tournament with one click.
Admin overview: player and boards tiles are now directly tappable
When a tournament has just been created and is still in preparation, it wasn't always obvious for first-time admins where to add players or boards.
From now on, the player tile and the boards tile in the admin overview are the button while in preparation mode: a small arrow in the top-right corner, "Add player" or "Add board" as a hint at the bottom of the tile, a tinted border, and hover/tap feedback. Tapping anywhere on the tile jumps straight to the matching tab.
Once the tournament is running the hint disappears and the tiles just show the numbers again. For quick tournaments without boards, the boards hint is hidden automatically.
Live score on projector and player phones: remaining score after every dart + dart progress indicator
On the scoring device, the player has always seen the remaining score update dart by dart — on the projector and on the player phones, however, the score only refreshed after all three darts were entered.
From now on the remaining score also ticks down on the projection and in the player view immediately after each individual dart. In addition, three small bars under the active thrower's name show how many darts have been thrown in the current turn — the first bar lights up after dart 1, the second after dart 2, all three after the full turn.
Bust throws roll the preview back, and at the end of the turn the confirmed score from the scoring device takes over as usual.
Scoring device: new match assignments appear automatically
Up to now you sometimes had to manually refresh the scoring device or reopen the tab when the tournament admin assigned a new match to the board.
From now on the scoring device automatically refreshes its match list whenever any of those matches changes — so a fresh assignment lands right away. Upcoming matches show up in the queue immediately, and when the admin starts the next match, the scoring view jumps to it without any extra step.
Double-elimination auto-rotate: speed now configurable
In auto mode, the double-elimination projection switches automatically between Winners and Losers Bracket. Up to now the wait time was hard-coded to 10 seconds — some found that too fast, others too slow.
The layout popover now has a seconds slider from 3 to 30 seconds. The choice is persisted and applies to every double-elimination tournament on this device.
Double-elimination projection: layout controls now apply here too
Up to now, the "Layout" button on the projection was crippled for double-elimination — only font size, score/legs, and QR mode worked.
From now on the same controls apply as for the other formats:
• Toggle sections — LIVE MATCHES, UP NEXT, RECENT RESULTS, and the stats ticker at the bottom • Live card style: PDC, Stadium, Broadcast, or Classic • Pick the stats shown under each player's name (average, 180s, 140s, ..., highest checkout) • Auto-scroll for long WB/LB brackets and long lists • QR code either as a fixed section in the live column or as a big overlay
The WB/LB/Both/List/Tiles toggle in the center of the screen stays untouched — it's DE-specific and the fastest way to switch between brackets.
Double-elimination projection: unified look-and-feel with the other formats
The big-screen projection for double-elimination tournaments now uses the same building blocks as the other formats (KO, Group-KO, Champions League, Round-Robin, League, Swiss).
The left column now has three clearly separated sections: LIVE MATCHES, UP NEXT and — new for double-elimination — RECENT RESULTS. So you can tell at a glance what is happening right now and what was just played, without needing to read the bracket tree.
Grand Final showcase, reset banner, auto-rotate WB↔LB and the final podium remain unchanged. Upcoming updates will bring the familiar layout controls (toggle sections, pick card style, density) to double-elimination as well.
Admin: leg entry unified — submits only on confirm
In the Matches tab and the Boards tab, leg entry now works with the same flow:
Tapping a player's name stages the leg locally on the card (highlighted as "unsaved"). Only when you hit "Confirm" does the change go to the server — until then, mis-taps can be dismissed via "Undo" without anything being saved.
The Matches tab now also features the large tap zones per player (previously just small "+Leg" buttons), exactly like the Boards tab. −1 Leg and "Set match winner" are reachable through the three-dot menu on each player tile — same as on the board.
When the confirmed score ends the match, it closes immediately with a winner hint — no tab switch needed.
Board view: "who starts?" as a clean dialog
On the board view (DeviceView) every queued match used to show a tiny "Starter: Player 1 / Player 2" toggle below it — visually busy, especially on tablets.
From now on you just hit "Start" and a clean dialog appears: "Who starts?" with two large buttons for the player names. One tap and the starter is set + the match begins. Cancel closes the dialog without changing anything.
Projection: bracket auto-scrolls vertically
The auto-scroll toggle in the projection layout settings now also applies to the tournament bracket. With large KO brackets or Champions League tournaments the tree gently scrolls top-to-bottom and back, so every round becomes visible on the projector without anyone touching the tablet.
Horizontal swiping remains manual (for very wide brackets). When the content fits the screen entirely, nothing animates — same as the match lists.
Projection: layout switch is now a proper button
The entry point to the layout settings (top-right in the projection) used to be styled as a small chip — which read more like a status label than a clickable control. We turned it into a clearly recognisable accent-coloured button so it's obvious at first glance that this is where you can tweak the layout.
Tournament stats: more leaderboards
The tournament stats tab now has three new leaderboards:
• Best First-9 Avg — average 3-dart score over the first 9 throws per leg (pro: 60+, top tier: 90+).
• Best Legs — top 5 legs with the fewest darts to win (the "Holy Grail" in darts).
• Longest Legs — top 5 legs with the most darts (anti-stat: shows the gruelling checkout battles).
Projection: live card stats now configurable
In the projection layout settings (Layout chip top-right) there's now a new "Live-Card Stats" section. You can pick freely which stats show below the player name — Avg, 180s, 140+, 100+, 60+, 26s, High Finish and/or current leg score.
Applies to the "Broadcast" and "Classic" card styles. PDC keeps the fixed LEGS/SCORE/AVG columns (stadium default) and Stadium stays drama-pure without stats. Selection is saved in your browser and applies across tournaments until you change it.
Default: Avg + 180s + High Finish (as before).
Stats: 60+ and 26s are now tracked everywhere
In addition to 100+, 140+ and 180, we now track two more score buckets in all match and tournament stats:
60+ (throws from 60 to 99) as an extra stat category and 26 as an anti-stat ("Bed and Breakfast" — the classic score when you miss T20).
The new values appear in your profile, the tournament stats tab, the projection, the live player banner, the quick match result and the club leaderboard. The tournament stats tab also gets a "Most 26s" leaderboard — as a tongue-in-cheek anti-award. Order: 180 → 140+ → 100+ → 60+ → 26.
Note: 60+ and 26 count from now on — older matches show 0 here since these values weren't tracked before.
Quick Match: per-player handicap + Single/Master Out
In Quick Match you can now choose different starting scores (101, 201, 301, 401, 501) and out modes (Single Out, Double Out, Master Out) per player.
Great for matches with mixed skill levels — the weaker player starts e.g. on 301 Single Out, the stronger on 501 Double Out. The "Play with handicap" toggle appears in the quick-match wizard right below "Who starts?".
Who starts – now in tournaments and before the decider leg
In tournament mode you can now pick who starts each match before it begins, right in the boards tab. Plus: in best-of matches you'll be asked who starts the decider — bull-off style (in the app: just pick the winner of the bull-off).
Fast entry: how many darts on checkout?
In fast score entry (total mode), a small dialog now appears on checkout: "How many darts to check out — 1, 2, or 3?". This keeps the average accurate even when someone finishes with just 1 or 2 darts. Default is 3 — one tap and you're done.
Last throw everywhere + persistent undo button
You now see the last throw of each player everywhere — score entry (DeviceView), Quick Match, and in the PDC live scoreboard on the player dashboard. So you always know what was thrown last.
Plus: the undo button in DeviceView now also works after tab switch or browser reload (previously the local state was lost). Mistyped = simply undo, score stays correct.
Live Scoreboard in PDC style with all stats
The player and spectator dashboard now displays a full PDC-style live scoreboard at the top:
Large remaining points for both players, thrower highlighted green, "On throw" indicator. Stats grid per player: average, 60+, 100+, 140+, 180s counter. When remaining ≤170, a checkout suggestion appears as a green highlight (e.g. "T20 · T18 · D8"). Board is prominently displayed in gold colors at the top right.
The banner shows your own live match — or, if you don't have one, the current highlight match in the tournament. Visible on the "My Matches" tab (player) or "All Matches" tab (spectator).
All Matches: Live score in match cards
The "All Matches" tab in the player dashboard now also shows the currently remaining points for both players in cards/rows of live matches. Player on throw is highlighted green.
KO Bracket: Live score in match cards
Match cards in the KO bracket now show the currently remaining points for both players during live matches — the score of the player on throw is highlighted green. Works in admin, player and projection views as well as the results page.
Live Match: current scores + who's up
In your live-match banner you now see not just the legs won, but the currently remaining points for both players — plus a hint "You're up" / "Opponent is up" so you always know whose turn it is.
Edit player name also during running tournaments
You can now also fix typos in player names after the tournament has started — the edit button stays visible in the admin dashboard at all times. Standings, bracket and projection update immediately.
Deleting players is still only allowed before tournament start, since it would damage the match history.
Join: Choose player or spectator + player list on typos
When joining a tournament, you're now first asked whether you want to participate or just watch. Spectators no longer need to enter a name — they're in within a second.
If you join as a player and your name doesn't exactly match, we show you the list of registered players — just tap your name and you're in as a player (instead of accidentally ending up as a spectator). You can still switch to "watch as spectator" from the list if needed.
Group Tournament: Top X per group + flexible wildcards
When creating a tournament, you now only pick "Top N advance" and the number of groups — the app automatically calculates what that means:
• Top 16 + 4 groups → Top 4 per group • Top 8 + 5 groups → 1 per group + 3 best runners-up (wildcards) • Top 16 + 5 groups → 3 per group + 1 best 4th-place
Live preview shows immediately who advances and whether the bracket fits cleanly or requires byes. In the admin dashboard and projection view, direct qualifiers are highlighted green, wildcard slots in amber with a "WC" badge.
Wildcard Selection: Dynamic + Live Preview
The tournament wizard now only shows valid wildcard options — with 3 groups, options 4+ disappear because each group only has one runner-up.
New below: a live hint "5 group winners + 3 wildcards = 8 players in KO" plus bracket status (✓ fits perfectly / ⚠ will be padded with byes). You see instantly whether your selection results in a clean bracket.
Group Tournament: 5 Groups & Wildcard Qualification
When creating a group+KO tournament, you can now select 5 groups (this option was previously missing).
New: the "Best Runners-Up" wildcard option. Instead of a fixed number per group, you can set how many of the best second-placed teams advance as wildcards — e.g. group winners + 3 best runners-up.
Career Mode: Tournaments against 100 AI opponents
New: Career Mode! Play full tournaments against 100 unique AI bots — each with their own name, nationality, playing style, and skill level.
8 difficulty levels from Casual Thrower to PDC Pro. Choose tournament size (8, 16, or 32 players) and format (KO, Round Robin, Group+KO) — the same options as real tournaments.
Your career profile tracks tournament wins, average, 180s, and your personal rivalries: Who is your nemesis? Who do you play most often? A public leaderboard shows top players per difficulty level.
Active tournaments are saved — pick up where you left off at any time. Find it at /career.
Standings tiebreaker, KO settings in overview & better defaults
When two players are tied on points and leg difference, average is now used as the 4th tiebreaker (after head-to-head). Previously, equally ranked players were shown in an arbitrary order.
KO phase settings (separate game mode/legs for the knockout round) are now shown as a dedicated tile in the tournament overview in the admin dashboard — e.g. "501 · Best of 5".
When creating a tournament, board mode and bracket mode now default to "Fixed assignment".
Configure the KO phase with its own game mode
For tournaments with a group phase (format "Groups + KO" and "Champions League") the final stage can now be played with different settings than the qualifying phase — e.g. groups 301 best of 3, knockout 501 best of 5.
The Create-Tournament dialog has a new "KO phase" section with a toggle "Use different settings for the KO phase". When off, everything works as before: the KO phase inherits the qualifier settings. When on, you can pick game mode (301/501), scoring (best of / first to) and leg count separately.
The settings are locked in at creation time and apply to every KO match once the knockout phase begins — ideal when you want a quick group phase and a more substantial final round.
Faster leg scoring in the Boards tab
In the admin Boards tab, recording leg results is now much faster and far more forgiving:
1. Tap on the player name / field = +1 leg, immediately. Large tap zones for thumb input on tablets.
2. "−1 Leg" button right under each player name — misclicks corrected in one tap, no dialog.
3. "Undo last leg" button at the bottom of the card — reverts the very last entry whenever at least 1 leg has been scored.
4. The match never ends automatically: when someone wins the deciding leg, an explicit "Confirm match — XX wins YY:ZZ" button appears. Accidental taps will never finish a match.
5. Three-dot menu per player for rare actions: set match winner directly, open the score dialog.
6. Leg progress as small dots per player — at a glance you see how many legs are left.
7. On first visit to the Boards tab a short tips box explains all four input paths (one-time, dismissable).
Operators who use external auto-counter systems and run SmartDart only for tournament management save several hundred taps per hour — and every misclick is visibly correctable in one tap.
Projection: four live-card styles, spectator QR, and full layout control
The projection view has grown a lot — everything is now bundled in the same Layout popover at the top right:
1. Four selectable live-card styles: "PDC" (sportscast scoreboard with columns LEGS/SCORE/Ø), "Stadium" (drama with huge score), "Broadcast" (slim TV lower-third bar), and "Classic" (two player rows with stats). Free to pick per format.
2. Spectator QR code in three modes: off / small as a section in the live column / full-screen overlay. Plus a "Show QR" chip in the header — one click opens the overlay for an announcement, one click anywhere closes it again. Anyone scanning lands in the tournament as a spectator with no sign-up.
3. Size is now a slider (50–150 % in 5 % steps) instead of click-through stages. Works from the header chip and inside the layout popover.
4. Table density (Compact / Normal / Comfortable) for every format with tables — adjusts row height and font size in one go. Tables also show each player's average (Ø), both in the standings and under finished match results.
5. Hero number switch (legs as the big number vs. running 501 score) as clear tile selection instead of a toggle.
6. League view expanded: spotlight cards show the top performers of the season (best average, most 180s, longest win streak, most wins). The matchday hero now has a season progress bar showing how far the season has come.
7. Match progress in the header is now an animated fill bar — flows smoothly to the current state and turns green at 100 %.
8. Auto-scroll toggle for long lists (table, results, upcoming, groups) — gentle up-and-down when the content doesn't fit the container.
9. Double-Elimination tournaments now also get the layout chip — with a reduced feature set (size, hero number, spectator QR), while DE's own bracket toggles (WB / LB / Auto) stay intact.
All settings are saved and come back automatically the next time you open the projection.
Projection view gets the sportscast treatment — with its own layout editor
The projection view (/projection) now looks like a real sportscast. Whichever format you are running — KO, group KO, Champions League, round robin, league or Swiss — the screen carries the same stadium-style look: dark background, clear section headers with coloured accent bars, pulsing "LIVE" markers, animated score updates and a scrolling stats ticker at the bottom with top values, 180 counts and form highlights.
New sections per format: "LIVE MATCHES" with big cards (the player currently throwing is highlighted), "UP NEXT" for the upcoming pairings, "RECENT RESULTS" with a trophy icon for the winner, plus format-specific "GROUPS", "STANDINGS", "BRACKET" or "MATCHDAY".
Brand new: the layout editor. There is now a "Layout" chip in the top-right — click it and you decide what to show and how big. Three modes (split, live only, bracket/table only), a slider for the column ratio (from 20/80 to 80/20), switches per section to show or hide them, and a reset button. Your settings are saved and come back automatically the next time you open the projection.
Tablet-mirroring tip: combine the layout editor with the size toggle (60 %, 70 %) so your tablet layout fits cleanly on a TV or beamer — no matter which format is running.
Projection view loads faster — new size steps for tablet mirroring
Two improvements to the projection view (/projection):
1. Faster loading — the page used to download the full tournament list on every open just to find the right tournament by its code. It now asks the server for that one tournament directly. Noticeably faster, especially on mobile networks or once a lot of tournaments live in the system.
2. New size steps 60 % and 70 % in the “Size XX %” toggle at the top right. Handy when you mirror the projection view from a smaller tablet to a big screen (Cast / AirPlay / Miracast / HDMI). Just dial the content down on the tablet — the TV or beamer will scale your tablet picture back up to its own resolution without cutting things off the edges or squashing columns into each other. The projection now works cleanly no matter how large your tablet is.
English content moves to clean /en/* URLs
Until today the English version of pages lived behind a `?lang=en` query parameter (e.g. /pricing?lang=en). From now on it has its own clean URLs: /en/pricing, /en/dart-training, /en/dart-club. That makes English pages much easier to surface in Google search results and ensures each language gets its own listing instead of being treated as a duplicate.
Old `?lang=en` links keep working — they auto-redirect to the new path. The language toggle in the header behaves the same as before; only the URL in the address bar looks cleaner now.
Tier-limit dialog now offers your free trial directly
If you hit a feature on BASIC that requires an upgrade (e.g. a locked format, more players, more active tournaments), the upgrade dialog now offers your free 24-hour PREMIUM trial directly — as long as you have not used it yet. One click on "Try free for 24h" and you can use the feature immediately, without taking out a subscription.
Not logged in yet? The dialog now tells you that a free account gets you 24 hours of PREMIUM for free, and takes you straight to sign-up with one click.
Bug fix: In Checkout Training, the bust notification was shown to German users as a raw key ("training.bust") instead of the proper text. It now correctly reads "Bust! Muss auf Double auschecken" again.
Also: several English translations have been brought up to date — English users saw a few German originals in places ("Keine Matches.", "Niedrige Erkennungsqualitaet...").
Match history, best legs & resume button on the statistics page
The statistics page now shows a match history with your last 10 matches including leg score (e.g. "3:2"), opponent, date, match average and context (tournament / bot / quick match). Lost matches have a red badge, wins green.
For matches that are still in progress or that you abandoned, an orange "Continue" button now appears — one click and you jump back into the match without having to remember the match ID or navigate through other pages. Works for Quick Match and bot matches.
New with PREMIUM: a fourth tab "Best legs" in the performances section — shows your top 5 won legs sorted by darts thrown. The fewer darts to finish, the higher the rank.
Bug fix: In the "Leg won" dialog, very short legs occasionally showed "0 average / 0 darts" for one of the two players. The backend now stores a clean pre-reset snapshot of the leg stats — the display is now correct for both sides.
Stats overview after every leg and at match end
Quick Match now shows a small overview right inside the "Leg won" dialog after every leg — leg average and darts thrown for both players, side by side.
On the result screen at match end, an additional match comparison appears: match average, first-9 average, 180s, 140+, 100+ and highest checkout for both players. Rows with no data (e.g. no 180s) are automatically hidden to keep the overview compact.
Works for early-ended matches and bot games too.
New statistics page with trends & anonymous comparisons
There is now a dedicated statistics page accessible via "My Statistics" on the start page — significantly deeper than the profile boxes.
The hero shows a 0–100 performance score with a ring visualisation, plus your headline numbers (matches, wins, legs, 180s, best avg, highest checkout).
Five comparison cards put your value next to the average across all SmartDart players — with a coloured delta arrow ("+24% above average"). Compared metrics: best match average, total 180s, highest checkout, matches played and legs played. Fully anonymous — no names, no public profiles.
A 90-day GitHub-style activity heatmap shows when you played.
PRO and PREMIUM unlock trend charts: average trend over the last 30 matches, rolling 10-match win-rate trend, and 180s per week across the last 12 weeks.
PREMIUM additionally gets a weekly recap card (this week vs. last week with deltas) and your top 5 match highlights — sortable by best average, best checkout or most 180s in a single match.
End Quick Match early
Quick Match can now be ended early right after every won leg — useful when you have to stop or want to take a break.
The "Leg won" dialog now has a third button "End match" alongside "Confirm" and "Redo last throw". You get a confirmation showing the current score. The player with more legs is recorded as the winner, and the match counts toward your statistics as usual.
On a tie (e.g. 1:1), you pick the winner in the dialog. Pre-selected is the player with the better match average — but you can switch to the other player anytime. The results page shows a "Match ended early" hint to indicate that the match was not played to completion.
Dedicated stats box for matches vs. bots
Your profile now shows a separate "Matches vs. Bots" statistics box — separated from your Quick Match stats against real opponents.
The benefit: training matches against the bot no longer skew your real Quick Match record. Both boxes show the same fields (matches, wins, win rate, average, 180s, highest checkout, legs, breaks) — aggregated independently. PRO fields and the PREMIUM match history work as before, also separated.
Player statistics on the results page
The public results page for a finished tournament (smartdart.app/results/CODE) now includes a dedicated player statistics table — one row per participant, sorted by wins and win rate.
Columns: rank, name, matches played, wins–losses, win rate, legs +/-, average, 180s, highest checkout and clean sweeps. The scoring columns (average, 180s, checkout) hide automatically when nobody tracked scoring data (legs-only mode) — so the table stays compact and only shows what was actually tracked.
More live stats in the projection ticker — including legs-only
The live stats ticker at the bottom of the projection now shows five new items:
• Most total legs won • Best leg difference • Longest match of the tournament (with number of legs played) • Total 140+ and 100+ scores
The first three also work in pure legs-only tournaments (no score tracking) — where the ticker used to be sparse, you now always see what is currently happening even without throw data.
Live average visible during play
While a match is running, the player's current average is now shown right next to their name — on the projection, in your player view and on the scoring device.
Previously the Ø only appeared on finished matches. The value now updates live with every dart, consistently everywhere — groups, knockout, grand final, third-place match, league.
Projection: scrolling stats ticker in sports-news style
The projection view now has a rolling stats ticker at the very bottom — the kind you know from sports news channels. A red "LIVE" label on the left, and the tournament's live stats scroll endlessly from right to left next to it.
What you get: total legs played, matches currently running, progress (finished vs total plus percent), total 180s, who threw the most 180s, highest checkout, top average — and for league tournaments additionally the current leader with points. For Double Elimination, live WB/LB/Grand Final matches are flagged on top.
Speed is around 70 px/s (calm enough to read along). Hovering the ticker pauses it so spectators can catch details. Works across every tournament format and stays visible during the results view as well — entertainment even when nothing is being thrown right now.
League projection: matchday moves into the header
The league projection layout used to have a separate banner right below the header — repeating the tournament name plus a "Matchday 3 / 10" indicator.
That banner is gone. The matchday number now lives as a small chip in the regular header next to status and phase. That frees roughly 70 pixels vertically — on a beamer that means one extra row of table and matches visible without scrolling.
Projection shows the key stats at a glance when a tournament ends
When a tournament finishes, the projection view now automatically switches to the results screen. The goal: see at a glance who won and who threw the highlights — without being overwhelmed by detail tables.
What you get: the podium (1st/2nd/3rd plus 4th), a few key numbers (matches, legs, players) and a "Hall of Fame" with three cards — best average, most 180s and highest checkout, each with player name and value.
Want the full picture? Scan the new QR code on the projection or open the results URL — you will get the complete bracket tree, group standings, every match result and full leaderboards.
Also new in the developer dashboard: next to "Open admin view" there is now a "Open projection view" button — one click, and you have the correct projection URL for the selected tournament.
Fixed club boards: set up once, ready for every tournament
Each club can now register its own dartboards — with name, description and optional camera URL. When you create a tournament from the club, those boards are pre-selected and set up with one click.
Where to find it: The club detail view has a new "Boards" tab. Owners and co-admins can add, edit and delete boards there. All members can see the list (read-only).
In the tournament wizard (when you click "New tournament" from the club), the boards appear as pre-selected chips — just like the members. You can deselect individual ones if only some of the boards are in play that night. The camera URL is copied onto the new tournament board; calibration and device code are generated fresh per tournament so nothing leaks across events.
Simulate now fills averages and darts
Simulating a match or full tournament previously produced a winner and leg count, but all stat fields stayed at 0 — averages, 180s, 140s, 100s, highest checkout, dart counts. That made stat tables and leaderboards look broken after a simulation.
Now the simulate button fills realistic aggregate values. Winners trend toward higher averages (58-72) than losers (46-58), 180/140/100 counts scale with the leg count, and the highest checkout is weighted (mostly 32-80, rarely 140+).
Applies to all three simulate paths: single-match simulate, "simulate all group matches", and "finish active matches". Performance is unchanged — no extra database writes are triggered.
Club affiliation now visible everywhere
A club tournament is now immediately recognizable as such — with club name, emoji and club color as a small badge.
Where you see the badge: in the admin header (clickable, takes you to the club page), in the player subheader, and in the projection header above the tournament name. Additionally, every club-member player gets a small badge under their name in the admin "Players" tab — so you can tell at a glance who is internal and who is an external guest. The tooltip shows the club role (owner / admin / member).
Also: the club leaderboard overlay on the projection view is gone — it overlapped the game and was more distracting than useful.
Club tournaments: open or closed
When creating a club tournament you now decide who can join: "Club members only" for closed club championships, or "Open with join offer" for spontaneous invites.
External players in the open mode automatically get a prompt on join: "Would you like to join the club too?" — those who accept become members (public clubs instantly, private clubs with admin approval). Club-internal stats then automatically count for the leaderboard.
Dart Clubs: your player pool for recurring teams
New: Clubs. A club is a persistent player pool for regulars, clubs or friend groups. Register members once, invite via link, start as many tournaments from the pool as you want.
Features: invite link (public or private with admin approval), name-only placeholders for players without an account (with claim flow), owner and co-admin roles, per-member club statistics, club emoji and accent color, projection widget with a top-5 leaderboard.
Tier limits: BASIC 1 club / 10 members, PRO 3 clubs / 20 members, PREMIUM unlimited. Find it under "My Clubs" or directly at /clubs.
Email verification reminder
Users who register but don't verify within 24 hours now receive a friendly reminder email with a fresh verification link.
SmartDart now also stores your preferred language at signup so that follow-up mails (password reset, trial reminder, feedback requests) arrive in the correct language.
New SEO landing pages: darts league, club tournament, pub tournament
Three new landing pages for concrete use cases: /dart-liga-verwaltung (league management with home and away), /dart-vereinsturnier (groups+KO for clubs), /dart-kneipenturnier (quick setup for pub nights with QR code onboarding).
Each landing is bilingual (DE+EN), with FAQ, SEO metadata and a direct CTA to the matching format.
What else SmartDart can do
Beyond Quick Match and Training, SmartDart is a complete dart platform for pubs, clubs and leagues.