diff --git a/pyproject.toml b/pyproject.toml
index 1fca525a9c9064694cc7d6553561742f512562e3..24d4cfcf6d287732285831a506b6e24d24c25d50 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -41,7 +41,7 @@ python = "^3.9"
 feedparser = "^6.0.0"
 django-feed-reader = "^1.0.0"
 ics = "^0.7"
-aleksis-core = "^2.0"
+aleksis-core = "^3.0.dev3"
 
 [tool.poetry.dev-dependencies]
 aleksis-builddeps = "*"
diff --git a/tox.ini b/tox.ini
index 749e0606f4f02fcbd1649627219b15850cbc0a90..1098d9d9e6e3ce1f4f7e4047deac657e14fcba24 100644
--- a/tox.ini
+++ b/tox.ini
@@ -10,7 +10,7 @@ skip_install = true
 envdir = {toxworkdir}/globalenv
 commands_pre =
      poetry install
-     poetry run aleksis-admin yarn install
+     poetry run aleksis-admin vite build
      poetry run aleksis-admin collectstatic --no-input
 commands =
     poetry run pytest --cov=. {posargs} aleksis/
@@ -27,6 +27,8 @@ commands =
     poetry run black --check --diff aleksis/
     poetry run isort -c --diff --stdout aleksis/
     poetry run flake8 {posargs} aleksis/
+    node cache/node_modules/.bin/prettier --check .
+    node cache/node_modules/.bin/eslint aleksis/**/*/frontend/**/*.{js,vue}
 
 [testenv:security]
 commands =
@@ -46,6 +48,7 @@ commands = poetry run make -C docs/ html {posargs}
 commands =
     poetry run isort aleksis/
     poetry run black aleksis/
+    node cache/node_modules/.bin/prettier --write .
 
 [testenv:makemessages]
 commands =