diff --git a/finance/fava/Makefile b/finance/fava/Makefile
index 1297081fa193..eef3673fc19a 100644
--- a/finance/fava/Makefile
+++ b/finance/fava/Makefile
@@ -1,39 +1,40 @@
 PORTNAME=	fava
-PORTVERSION=	1.27.3
+PORTVERSION=	1.28
 CATEGORIES=	finance
 MASTER_SITES=	PYPI
 
 MAINTAINER=	delphij@FreeBSD.org
 COMMENT=	Web interface for Beancount
 WWW=		https://beancount.github.io/fava/
 
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR}
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Babel>=2.7:devel/py-babel@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}cheroot>=8:www/py-cheroot@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}click>=7:devel/py-click@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}flask-babel>1:devel/py-flask-babel@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}flask>=2:www/py-flask@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}Jinja2>=3:devel/py-Jinja2@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}markdown2>=2.3.0:textproc/py-markdown2@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}simplejson>=3.16.0:devel/py-simplejson@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}watchfiles>=0.21.0:devel/py-watchfiles@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}werkzeug>2:www/py-werkzeug@${PY_FLAVOR} \
 		beancount>=2.1.3:finance/beancount
 
 USES=		python # same as finance/beancount
 USE_PYTHON=	autoplist distutils noflavors
 
 # Upstream archive contains files with UTF-8 names
 EXTRACT_CMD=	${SETENV} LC_ALL=en_US.UTF-8 /usr/bin/bsdtar
 NO_ARCH=	yes
 
 post-patch:
 	@${ECHO_CMD} "from setuptools import setup" > ${WRKSRC}/setup.py
 	@${ECHO_CMD} "setup()" >> ${WRKSRC}/setup.py
 
 .include <bsd.port.mk>
diff --git a/finance/fava/distinfo b/finance/fava/distinfo
index db2ee1fd943c..8d2ff6cd7964 100644
--- a/finance/fava/distinfo
+++ b/finance/fava/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1710705794
-SHA256 (fava-1.27.3.tar.gz) = 1ac9d765a6b31223a1ca36c88a71d10f57dda2a940a7777972cae6b727719863
-SIZE (fava-1.27.3.tar.gz) = 1563141
+TIMESTAMP = 1721571003
+SHA256 (fava-1.28.tar.gz) = b161d5911d3fd15306cc7e4e3313822b8bac7fb1b4a1dcccb6bf3611245086b9
+SIZE (fava-1.28.tar.gz) = 1575936