Анонс Recipe scaler
Навайбкодил себе проект, вдруг кому будет полезен
Зачем нужен
В рецептах обычно указывают количество ингредиентов на Х порций, а приготовить нужно на Y. В этих случаях приходится пересчитывать все ингредиенты рецепта, сохраняя пропорции.
Для этого дизайн-директор Злых Марсиан Рома Шамин написал приложение Recipe scaler. Мне не хватало в нем текста описания, чтобы вставить сам рецепт, а ждать обновлений как будто не приходится. Я написал для себя свое другое.
Что я посчитал нужным добавить:
- Текст описания. Если в нем разметить ингредиенты, то будет актуальный рецепт на нужные пропорции
- Десктоп-версию. Бывает, что удобнее записать рецепт с компьютера, особенно если нужно скопировать рецепт с сайта, убрать лишнее, переписать.
- Синхронизацию устройств. Можно написать рецепт на компьютере, а потом готовить по телефону.
- Шаринг рецептов. Когда кто-то спросит «ой, а поделись рецептом», у вас будет ответ. В целом можно готовить прямо по пошаренному рецепту, их тоже можно пересчитать.
- ИИ. Куда же сейчас без него. Начните с рецепта и нажмите волшебную палочку. ИИ попробует распознать и разметить ингредиенты за вас, придется лишь чуть-чуть его поправить.
Мобильный:

Десктоп:

Как работает
Рецепты хранятся у вас в браузере и синхронизируются на сервер. Можно писать в оффлайне, как выйдете в оффлайн, все синканется. Изменения можно делать даже в одном рецепте, конфликтов быть не должно (в теории), не каждый коммерческий продукт так умеет.
Сервер не знает о вас ничего, кроме рецептов, — ни почты, ни телефона, ни аккаунта, даже айпи-адрес. Чтобы залогиниться на другое устройство, используются сид-фразы, как в криптокошельках, не потеряйте ее или сессию на любом из устройств.
Приложение можно сохранить как PWA и на десктопе, и на телефоне. При добавлении сайта как PWA очищаются все локальные сторы, поэтому по умолчанию ваших рецептов там не будет. Зайдите в PWA как в новый девайс через сид-фразу.
Неочевидные штуки:
- Если ввести две и более черточки, то вставится разделитель, а если ввести название и не указывать ингредиенты, добавится заголовок.
- Если мыслите категориями порций, сделайте ингредиент «порции» и введите туда количество, можно будет пересчитывать по порциям.
- На тачпаде тоже работают свайпы для удаления.
Что под капотом
Если кому интересно, что внутри, то вот ключевые слова:
React, Tailwind (не берите, гадость), CRDT, YJS, Websockets, Express.js, Supabase, Openrouter, Gemini Flash.
Предложения можно писать на mike.ozornin@gmail.com.