Личный проект
Личный трекер денег. Записываю траты и доходы — вижу, сколько осталось и куда уходит больше всего. Работает на айфоне офлайн.
Я хотел вести учет своих средств, но готовые приложения мне не подходили. В одних функций было слишком много — бюджеты, цели, графики, синхронизация со счетами. A в других, наоборот, не хватало простой вещи: быстро записать трату и увидеть, сколько осталось.
Поэтому я сделал свое. Главная цель была одна — видеть текущий баланс и понимать, куда уходят деньги. Приложение я писал под себя, поэтому валюта по умолчанию — тенге, а интерфейс на русском. Технически это PWA: добавляется на домашний экран айфона своей иконкой, открывается отдельным приложением в полный экран и полностью работает офлайн. Записи хранятся на устройстве, а как только появляется интернет — синхронизируются с облаком. Ничего не теряется, даже если телефон долго был без сети.
Первое, что я хотел видеть — сколько у меня сейчас денег. Не сколько заработано и сколько потрачено по отдельности, а именно текущий баланс.
Я специально не стал делать отдельные страницы и навигацию. Весь смысл приложения умещается на одном экране: общая сумма, текущие траты и кнопка «добавить операцию». Чем меньше мест, куда можно нажать, тем меньше шума и тем быстрее я записываю трату.
Все текущие операции я вижу прямо посередине главного экрана — список последних трат и доходов под балансом.
А чтобы посмотреть прошлый месяц, не нужно уходить в отдельный раздел: я нажимаю на выбор месяца и просто беру нужный. Сразу вижу все траты того месяца и его итог.
Каждую трату я отношу к категории — продукты, кафе, транспорт, кот, развлечения. Это дает ответ на главный вопрос: на что уходит больше всего.
Я могу посмотреть категорию и за конкретный месяц, и за все время — например, сколько в мае ушло на продукты или сколько вообще я потратил на развлечения.
В приложении нет рекуррентных платежей. Каждую трату нужно записывать руками — и это сознательное решение. Когда делают приложение, часто уходят в автоматизацию: раз пишу, то пусть оно само подтягивает подписки, само раскидывает регулярные платежи, само все считает. В итоге приложение живет своей жизнью, и связь с собственными деньгами теряется.
Я хотел обратного. Приложение должно помогать замечать. Когда я каждый раз сам набираю сумму и выбираю категорию, я на секунду останавливаюсь и вижу, на что трачу. Эта маленькая ручная пауза и есть весь смысл.
Приложение простое, но одно действие оно делает хорошо: наглядно показывает, куда уходят деньги. А это помогает мне принимать правильные решения.
Из настроек — только то, что действительно нужно: тема, состояние синхронизации, резервная копия и экспорт в CSV, если данные захочется забрать.
Интерфейс — Svelte 5, TypeScript, Vite
Локальное хранилище — Dexie поверх IndexedDB
Офлайн и установка на телефон — PWA и Workbox
Облако — Supabase: PostgreSQL, GoTrue для входа, PostgREST и свой тонкий клиент вместо supabase-js
Инфраструктура — Docker Compose: локальный стек Supabase (PostgreSQL, GoTrue, PostgREST, MailHog)
Качество — Vitest, ESLint, Prettier
Шрифт — Fraunces