diff --git a/app/views/users/index.html.slim b/app/views/users/index.html.slim
index 38d4a1f..d90aa65 100644
--- a/app/views/users/index.html.slim
+++ b/app/views/users/index.html.slim
@@ -1,29 +1,36 @@
-table.table.table-striped.table-hover
- thead
- tr
- th scope="col"
- | Id
- th scope="col"
- | Name
- th scope="col"
- | Admin?
- th scope="col"
- | # contests
- tbody
- - @users.each do |user|
- tr scope="row"
- td
- = user.id
- td
- = user.username
- td
- = user.admin ? "Yes" : "No"
- td
- = user.contests.length
-
.row
- .col
+ .d-flex.flex-row.justify-content-start.align-items-center
a.btn.btn-primary href=new_user_path
| New user
- = button_to "Update contestants", "/update_contestants", method: :post, class: "mt-3 btn btn-success"
- = button_to "Regenerate QR codes", "/regenerate_qrcodes", method: :post, class: "mt-3 btn btn-success"
\ No newline at end of file
+ = button_to "Update contestants", "/update_contestants", method: :post, class: "ms-3 btn btn-success"
+ = button_to "Regenerate QR codes", "/regenerate_qrcodes", method: :post, class: "ms-3 btn btn-success"
+
+- @users.each do |user|
+ - if user.admin
+ h3.mt-5 = "#{user.username} (admin)"
+ - else
+ h3.mt-5 = user.username
+
+ table.table.table-striped.table-hover
+ thead
+ tr
+ th scope="col"
+ | ID
+ th scope="col"
+ | Friendly ID
+ th scope="col"
+ | # Puzzles
+ th scope="col"
+ | # Participants
+ tbody
+ - user.contests.each do |contest|
+ tr scope="row"
+ td
+ = contest.id
+ td
+ = contest.friendly_id
+ td
+ = contest.puzzles.length
+ td
+ = contest.contestants.length
+