English | Русский
Ваши деньги, ваш контроль - где угодно и когда угодно.
Finapp помогает легко отслеживать личные финансы и управлять ими. Репозиторий представляет собой pnpm-монорепозиторий с Nuxt-приложением и сайтом документации.
Интерактивная карта архитектуры кодовой базы: finapp-graph.ilko.me/ru
- Просто: ничего лишнего - только ваши транзакции и балансы.
- Быстро: работает офлайн и мгновенно синхронизируется между устройствами.
- Приватно: данные принадлежат вам - сначала хранятся локально и синхронизируются через ваш собственный бэкенд Supabase.
- Гибко: поддержка нескольких валют с автоматическими курсами обмена.
- Удобно: оптимизировано для мобильных и десктопных устройств, устанавливается как PWA.
- Кошельки: 6 типов - наличные, банковские счета, кредитные карты, депозиты, криптовалюта, долги.
- Транзакции: расход, доход, перевод, корректировка со встроенным калькулятором.
- Категории: иерархические родительские и дочерние категории с произвольными иконками и цветами.
- Мультивалютность: более 165 валют с ежедневным автоматическим обновлением курсов.
- Дашборд со сводкой, расходами и доходами.
- Столбчатые и линейные графики со средней линией.
- Гибкие диапазоны дат: день, неделя, месяц, год или произвольный период.
- Разбивка по категориям с разными режимами отображения.
- Множественные фильтры по кошелькам и категориям.
- Offline-first PWA, работает без интернета.
- Локальное хранилище SQLite с автоматической фоновой синхронизацией при подключении.
- Синхронизация между устройствами в реальном времени через PowerSync.
- Светлая, тёмная и системная темы.
- Более 20 основных цветов и 5 нейтральных палитр.
- Настраиваемый радиус скругления.
- Конфигурация виджетов дашборда для каждой вкладки.
- Английский и русский интерфейс.
- Vue 3
- Nuxt 4
- Pinia
- @nuxt/ui v4 и Tailwind CSS v4
- Supabase (Postgres)
- PowerSync
- Supabase Auth
- Docus
- pnpm workspaces
finapp/
app/ # Nuxt-приложение, конфигурация Supabase + PowerSync, тесты, ассеты
docs/ # Сайт документации на Docus
Корневой пакет содержит только workspace-скрипты. Зависимости приложения и документации хранятся в своих манифестах.
- Node.js
>=24.12.0 - pnpm
10.x - Docker и Supabase CLI для локального бэкенда
git clone https://github.com/ilkome/finapp.git finapp
cd finapp
pnpm installСкопируйте пример env-файла приложения и заполните значениями Supabase и PowerSync:
cp app/.env.example app/.envОбязательные переменные окружения:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_POWERSYNC_URL=your_powersync_urlДля локальной разработки они указывают на локальный стек, запускаемый ниже: Supabase на http://localhost:54321 и PowerSync на http://localhost:8080.
Бэкенд - это локальный self-hosted Supabase (Postgres + Auth) плюс self-hosted сервис PowerSync. Выполните один раз из workspace app/:
cd app
# 1. Запустить Supabase (Postgres + Auth на :54321)
supabase start
# 2. Применить настройку репликации PowerSync (роль + публикация)
docker exec -i supabase_db_app psql -U postgres -d postgres < supabase/powersync_setup.sql
# 3. Запустить сервис PowerSync (:8080)
docker compose -f powersync/docker-compose.yaml up -dАутентификация - Supabase email/password. Зарегистрируйте новый аккаунт на экране входа или создайте его через Supabase CLI.
Workspace приложения использует несколько .env файлов (все в gitignore, кроме .env.example):
| Файл | Назначение |
|---|---|
app/.env |
Значения dev, читаются Nuxt |
app/.env.prod |
Значения prod-деплоя, используются pnpm dev:prod |
Когда локальный бэкенд запущен, запустите Nuxt-приложение:
pnpm devПриложение доступно на http://localhost:3050.
Запустите сайт документации:
pnpm docs:devДокументация доступна на http://localhost:3051.
Запуск dev-серверов приложения и документации одновременно:
pnpm dev:all| Команда | Описание |
|---|---|
pnpm dev |
Запуск dev-сервера приложения |
pnpm docs:dev |
Запуск dev-сервера документации |
pnpm dev:all |
Параллельный запуск dev-серверов приложения и документации |
pnpm build |
Сборка всех workspace-пакетов с командой build |
pnpm generate |
Генерация приложения для статического хостинга |
pnpm docs:build |
Сборка сайта документации |
pnpm lint |
Линтинг монорепозитория |
pnpm lint:app |
Линтинг пакета приложения |
pnpm lint:docs |
Линтинг пакета документации |
pnpm lint:fix |
Линтинг с автоисправлением |
pnpm test |
Запуск тестов в workspace-пакетах |
pnpm typecheck |
Проверка типов в workspace-пакетах |
Руководства пользователя, заметки по разработке и техническая справка находятся в docs/content.
Запустите сайт документации командой pnpm docs:dev.
Предыдущая версия Finapp на Firebase доступна в ветке firebase.
- Telegram: @ilkome
