История обновлений
v1.9 10.11.2026
- Сайт снова работает после аварии у хостинг-провайдера: 1–2 ноября инфраструктура прежнего хостера была уничтожена вирусом-вайпером. Сайт восстановлен из собственной резервной копии базы от 27 октября и перенесён на нового провайдера в российский дата-центр
- На главной появилось оповещение о случившемся: что произошло, что сохранилось, какие заявки утрачены и куда написать, если ответ не пришёл. Оповещение ведёт на подробный разбор
- Новая статья «Почему сайт лежал три дня»: что случилось с Beget, почему резервные копии провайдера не спасли, что именно уцелело и что мы изменили в работе с бэкапами. В конце — чек-лист для тех, у кого свой сервер
- Аккаунты, визитки и NFC-метки работают как раньше: адреса вида nfcrafter.ru/u/имя не изменились, перезаписывать метки не нужно. Фотографии, кнопки и настройки визиток сохранены — они хранились в базе и приехали вместе с ней
- Трафик и статистика просмотров за 27 октября — 2 ноября утрачены: данные этого периода были только на погибшем сервере
- Инфраструктура переехала с общего сервера на отдельный: теперь у проекта свой VPS, один набор контейнеров и собственный Caddy для HTTPS. Платный SSL не понадобился — сертификаты Let's Encrypt выпускаются автоматически
- Резервное копирование переделано: база дампится каждую ночь по расписанию, хранится 14 копий, а скрипт проверяет размер файла — если дамп подозрительно маленький, приходит предупреждение вместо тихого «всё в порядке». Свежая копия регулярно скачивается вне сервера
- Политика обработки персональных данных обновлена до редакции 2.1: сведения о хостинг-провайдере и месте размещения базы данных приведены в соответствие с новой инфраструктурой
- Новая страница «Статус сервисов»: видно, работают ли сайт, API и база, и есть история инцидентов — чтобы при сбое не приходилось гадать, что происходит
- RSS-лента новостей и статей: /rss.xml. На неё можно подписаться в любом агрегаторе, браузер находит её сам
- Страница 404 перестала быть тупиком: кнопки в инструкции, статьи, инструменты, магазин и статус сервисов — вместо одной ссылки на главную
- Появилась картинка превью для соцсетей: раньше при отправке ссылки на сайт в Telegram или ВКонтакте превью приходило без изображения
- В личном кабинете можно скачать свою визитку файлом JSON — это ваша копия, независимая от сайта. Данные должны быть выгружаемыми
- В админке появилась вкладка «Бэкапы»: размер базы, свежесть данных по таблицам и предупреждения, если данные давно не обновлялись
v1.8 21.10.2026
- Конструктор визитки стал сама визитка: справа живой предпросмотр в рамке телефона, слева — шаги настройки. Сверху вниз: тема, адрес, короткая справка, «Шапка визитки», «Кнопки визитки». Обе секции свёрнуты, но в заголовке видно, что внутри: какие поля заполнены и какие кнопки активны
- Пять новых тем оформления: «Стекло» (матовое стекло на бирюзовом фоне), «Строгий бизнес» (бланк с антиквой и кнопками в рамке), «Объём» (выпуклые кнопки и рамка у шапки), «Неон» (свечение текста и рамок), «Clay» (тёплый крафт с фактурой). Прежние «Фирменная», «Светлая» и «Тёмная» остались как были
- Экран «Моя визитка»: визитка показана так, как её увидит гость на телефоне, рядом — статус «Опубликована» или «Черновик», адрес с кнопкой копирования, число кнопок, запись на метку и действия
- «Снять с публикации» — одна кнопка на экране визитки: ссылка перестаёт открываться, но визитка, фото и кнопки остаются на месте. Публикацию можно включить снова
- Сохраняем двумя кнопками: «Сохранить» оставляет визитку черновиком, «Сохранить и опубликовать» открывает её по ссылке. Согласие на распространение данных — отдельная галочка, без неё публикация не пройдёт. У опубликованной визитки «Сохранить» правки применяет, но с публикации не снимает
- Из редактора можно выйти без сохранения кнопкой «Назад» — она стоит сверху и на телефоне, и на компьютере
- Кнопок стало 26, и они разложены по категориям: связь, мессенджеры (Telegram, WhatsApp, МАКС, Skype, Discord, WeChat), соцсети и блоги (ВКонтакте, Одноклассники, Instagram, Facebook, X, TikTok, Pinterest, Дзен), видео (YouTube, RuTube, VK Видео, Twitch), карты (Яндекс Карты, 2ГИС, Apple Maps), музыка (Яндекс Музыка, Звук)
- Добавление кнопки — через выезжающее меню с коротким списком: выбираете тип, вписываете только данные (имя, номер или адрес), домен подставляется сам. Плитка «Добавить кнопку» всегда последняя в списке
- У каждой кнопки на визитке свой логотип, а настройки открываются по клику на плитку: короткое описание, поле, подсказка формата и действия. Иконки одноцветные и подстраиваются под тему визитки — и в предпросмотре, и на самой странице
- «Сохранить контакт» теперь можно выключить тумблером: кнопка появляется сама, когда есть имя в шапке и телефон, а данные остаются на визитке в любом случае. В счётчике кнопок она учитывается — цифра совпадает с тем, что видит гость
- Справка — один аккордеон вверху редактора и шесть шагов внутри: адрес, шапка, фото, кнопки, публикация, «Сохранить контакт». Всё свёрнуто по умолчанию, раскрывается по нужному шагу
- На бесплатной визитке блок статистики убран совсем: вместо заглушки с предложением тарифа там теперь ничего нет
- Ссылки-кнопки в статьях стали компактнее: тонкая рамка и небольшой размер, чтобы не выбиваться из текста. В светлой и тёмной теме — свои цвета
- Новая статья: «Почему NFC Tools бесполезен для Mifare Classic и какие метки на самом деле существуют» — форматы NDEF и Mifare, виды меток (F08, Magic Gen1 и Gen2, FM11RF32, EV1), таблица выбора и разбор «костыля» с NDEF на Mifare
- Новая инструкция: «Mifare Classic Tool: как клонировать ключ от домофона по шагам» — дамп, проверка секторов, запись на F08 или Gen2, отдельный режим для Gen1, финальная проверка и три частые ошибки
v1.7 09.10.2026
- Новая страница «Оплата и доставка»: как оплатить заказ (карты, СБП), как приходит посылка через пункты выдачи и курьером, сроки и стоимость доставки, условия возврата и обмена, а также меры безопасности платежей. Ссылка на страницу добавлена в подвал и в боковое меню
- В публичную оферту добавлены разделы об оплате (онлайн-оплата картой и через СБП, электронный чек) и доставке (пункты выдачи, постаматы, курьер; срок и стоимость считаются при оформлении). Отдельно указано: если заказ уже передан в доставку и вы от него отказываетесь, стоимость доставки не возвращается
- Обращения в поддержку теперь можно создавать только после входа — так ответ всегда приходит в ваш личный кабинет и не теряется. Гостям, которые уже начинали переписку, она остаётся доступной для чтения
- Счётчик непрочитанного больше не «висит» зря: раньше у вас горел красный счётчик сразу после собственного сообщения, хотя отвечать было нечего. Теперь он появляется только когда администрация действительно ответила, а после прочтения переписки сразу гаснет — и в меню, и в личном кабинете
- Статус обращения теперь видно прямо в переписке: когда мы принимаем вопрос в работу, в диалоге появляется сообщение «Мы приняли ваше обращение в работу», а при закрытии — «Обращение закрыто». Раньше менялся только цвет ярлыка, и понять, что происходит, было нельзя
- Если при закрытии обращения мы написали комментарий, он приходит вам в переписку, а следом — стандартное «Обращение закрыто»
- Исправлено закрытие обращений: раньше при закрытии не записывалась дата закрытия, и обращения выглядели как незавершённые
- Починена кнопка «Обратная связь» на телефоне: баннер с согласием на cookie перекрывал нижние пункты выезжающего меню, и нажатие по ним не срабатывало. Теперь, пока меню открыто, баннер скрывается
- Телефон +7 919 491-56-83 перенесён на страницу «Контакты» (раньше дублировался в подвале каждой страницы). В подвале и меню оставлены только используемые соцсети — Telegram, VK и YouTube
- В реквизитах продавца указаны страна (Россия) и виды деятельности: торговля и разработка ПО
- Открыт каталог магазина: NFC-метки разложены по чипам (NTAG213, NTAG215, NTAG216, Mifare Classic 1K, Mifare Ultralight), а внутри — по форме, размеру, цвету и количеству в упаковке. Наклейки, коины, карты, брелоки и тэйбл-тенты для кафе — с фильтром по чипу. Каталог готов к наполнению ценами
- Карточки товаров стали как на маркетплейсе: фото, краткие характеристики, выбор количества кнопками «плюс/минус» с учётом кратности заказа, кнопка «В корзину» и «Подробнее» с переходом на отдельную страницу товара с полным описанием и возвратом назад
- Появилась корзина: значок в шапке и пункт «Корзина» в меню профиля со счётчиком товаров и суммой. В корзине можно менять количество и удалять позиции, а оформить заказ можно, только если сумма достигла минимальной (1000 ₽). После успешной оплаты корзина очищается сама
- На страницах «Магазин» и «Бизнесу» боковые панели плавно уезжают за экран — контент занимает всю ширину, а при возврате на обычную страницу панели въезжают обратно
- Страница товара тоже открывается на всю ширину — без боковых панелей, как и каталог
- Каталог стал как на маркетплейсе: карточки идут ровной сеткой без разделов по чипам, а сверху появились два фильтра — по чипу и по виду (наклейка, коин, карта, брелок, тэйбл-тент, антиметалл). Раньше товары прятались в разделы, и выбрать нужное было дольше
- На странице товара — расширенные характеристики: UID (идентификатор, только чтение или перезаписываемый), объём памяти, рабочая частота, протокол (NFC Forum Type 2, ISO/IEC 14443-A), возможность перезаписи и защита паролем. Теперь видно, подойдёт ли метка под задачу
- У товаров появилось SEO-описание для поисковиков: страница товара попадает в поиск по запросам вроде «NFC-метка NTAG215 купить» с описанием чипа, памяти и частоты
- Страница товара стала удобнее: фото в формате 3×4, а характеристики, применение и описание — отдельными плитками, а не сплошным полотном на всю ширину
- У каждого товара появилась плитка «Применение» — подробно, для чего подходит чип: электронная визитка, умный дом, Amiibo, контроль доступа, маркировка металла и т.д. Теперь проще выбрать метку под свою задачу
- На странице товара можно вписать своё количество вручную — оно само подстроится под кратность заказа (например, при кратности 5 число 7 станет 10)
- Фильтры в магазине стали компактнее и удобнее: вместо ряда кнопок — два выпадающих меню в одну строку («Чип» и «Вид») с галочками. Можно выбрать сразу несколько чипов или видов, рядом — кнопка «Сбросить» и счётчик «Найдено». На телефоне меню занимают строку пополам и раскрываются аккуратно
- В личном кабинете появилась статистика визитки: сколько раз её открыли, по каким кнопкам нажимали и сколько раз сохранили контакт. Можно смотреть за 7, 30 или 90 дней — с графиком по дням и списком самых нажимаемых кнопок. Цифры обновляются сразу, как только визитку открыли по ссылке или NFC-метке
- Статистика — бесплатная и работает у всех визиток. Видно только числа: кто именно заходил и откуда, не показывается и не хранится
v1.6 03.10.2026
- Шрифт на сайте стал одинаковым на всех устройствах. Раньше браузер подставлял системный шрифт — на компьютере и телефоне текст выглядел по-разному, а заголовки «плыли». Теперь используется Inter: он скачивается с нашего сайта, поэтому не пропадёт и загружается быстрее
- На главной странице карточки материалов стоят ровными рядами: раньше на широком экране последний ряд оставался почти пустым — одна карточка и пустое место справа. Теперь карточки крупнее, а сетка всегда заполнена целиком
- Личный кабинет стал аккуратнее: заголовки разделов больше не слипаются с текстом, у подписей и подсказок читаемый размер. Раньше в кабинете не работали отступы между заголовком, текстом и полями — всё шло сплошным блоком
- Таблицы в статьях и инструкциях снова выглядят аккуратно: раньше шапка была короче строк — справа оставалась пустая серая полоса. Теперь шапка и строки совпадают по ширине, а длинная таблица прокручивается сама, не растягивая страницу
- Кнопка «Сохранить контакт» снова работает: раньше она пропадала при сохранении визитки, и на странице её не было вовсе. Теперь контакт собирается сам из данных визитки — как только есть имя и телефон, кнопка появляется на странице без ваших действий
- Выбирать «Сохранить контакт» в списке кнопок больше не нужно: этот тип убран из редактора, потому что настраивать в нём нечего. Остальные семь кнопок (Telegram, ВКонтакте, почта, сайт, звонок, Яндекс Карты, 2ГИС) на месте
- На iPhone файл контакта открывается карточкой с кнопкой «Добавить», а не уезжает в «Файлы»: телефон и почта попадают в контакты одним касанием. На Android файл открывается в «Контактах»
- Убрана лишняя кнопка «Добавить в контакты» под визиткой — она дублировала основную и нужна была только из-за прежней поломки
v1.5 01.10.2026
- Письма с кодами подтверждения снова доходят на Яндекс.Почту: настроена DMARC-запись у домена — раньше без неё письма отбрасывались, хотя отправка шла успешно
- Регистрация больше не говорит «код отправлен», если отправить письмо не удалось: человек видит честное сообщение и понимает, что делать дальше, а не ждёт письмо, которого нет
- В журнал сервера теперь пишется и успешная отправка писем, и ошибка с причиной отказа: раньше сбой доставки никак не проявлялся, и поиск причины занимал часы
- Сервер больше не представляется почтовым серверам как 127.0.0.1: такое имя выглядит подозрительно и добавляет балл к спам-оценке — теперь представляемся доменом
- Добавлены таймауты отправки: раньше при недоступности почтового сервера отправка могла висеть неопределённо долго, и ошибка терялась
- Контакты на визитке стали кнопками: каждая ссылка — это выбор типа (Telegram, VK, Почта, Сайт, Телефон, Яндекс.Карты, 2ГИС, Сохранить контакт), понятная иконка и подпись. Отдельного поля «название» больше нет — подпись подставляется сама по выбранному типу, а поле «Контакты текстом» убрано, чтобы не дублировать кнопки
- Контакты пользователя больше не собираются из текста: раньше телефон и почта вытаскивались из свободного поля, и в файл контактов мог попасть мусор — теперь данные берутся только из кнопок, которые вы добавили сами
- Убрана кнопка-ссылка «Ссылка»: непонятный тип без своей иконки и подписи. Вместо него для обычной ссылки подойдёт «Сайт»
- Лимиты визитки приведены к разумным: имя, должность и компания — 40/60/60 символов, описание — 200 символов. Раньше описание допускало длинный текст, и визитка на телефоне превращалась в полотно со скроллом
- Если выбран тип «Сохранить контакт» (vCard), но телефона среди кнопок нет, сервер не даст сохранить: файл контактов без телефона бесполезен, и теперь такая ошибка видна сразу, а не всплывает у получателя
v1.4 29.09.2026
- Новая статья в блоге: «NFC-визитка в 2026» — как физически работает тап (пассивный чип, 13.56 МГц, NDEF-запись), почему NTAG 215 стал стандартом визиток и причём тут Nintendo Amiibo, где у технологии пределы (дальность 1–3 см, разные правила iOS и Android, запись с ПК невозможна) и что делать, если метка перестала читаться
- Статья и инструкция по NFC-визитке честно объясняют выбор: запись контакта vCard прямо на чип устарела. На iPhone она работает непредсказуемо (iOS читает только первую NDEF-запись), данные после записи не обновить, для соцсетей есть лишь одно поле, фото не влезает в NTAG 215. Ссылка на страницу-визитку решает всё это: контакт правится на сервере, менять метки не нужно
- Инструкция «NFC-визитка» переработана: способ со ссылкой на страницу-визитку стал рекомендуемым и поставлен первым, vCard прямо на чип описан со списком проблем и таблицей сравнения, добавлены разделы про iPhone и переписаны чек-лист и блок «частые проблемы»
- В статью собрана статистика рынка: 60% бумажных визиток теряются за неделю, до 88% отправляются в мусор, цена обмена 0.18 $ против 0.03 $ за показ профиля, NFC-визитки дают на 58% больше вовлечённости, а цифровые визитки уже используют 42–56% профессионалов
- Обложка статьи — картинка цифровой визитки на смартфоне и NFC-карты с волнами связи (1.4 МБ PNG сжата до 65 КБ WebP, экономия 95%)
- Материалов на сайте стало 37: добавлена новая статья про NFC-визитки (сайт «О нас» в цифрах обновлён)
- Личный кабинет стал проще: теперь это один раздел «Моя визитка» вместо двух. Нет визитки — показываем экран «Визитки пока нет» с одной кнопкой «Создать визитку»; есть — экран самой визитки: имя, должность, статус (опубликована или черновик), адрес в виде nfcrafter.ru/u/имя и кнопки «Редактировать», «Копировать ссылку», «Открыть», «Удалить»
- Исправлено название кнопки «Сохранить контакт» в списке типов: вместо непонятного «vcard» теперь русская подпись, как и у остальных кнопок
- Разделы «Профиль» и «Безопасность» объединены в один — «Профиль и безопасность»: имя, почта, пароль, выход и удаление аккаунта в одном месте. Логично искать смену пароля в профиле, а не в отдельной вкладке
- Смена почты теперь в два подтверждения: код приходит сначала на ваш текущий адрес, потом на новый. Так аккаунт нельзя увести с чужой открытой вкладки, а опечатка в новом адресе сразу видна — раньше подтверждалась только новая почта
- Смена имени теперь подтверждается кодом из письма — код приходит на вашу текущую почту. Имя попадает на визитку и в файл контактов, который люди сохраняют себе, поэтому молча переименовать вас из чужой вкладки больше нельзя
- Смена пароля стала проще: можно ввести текущий пароль (сработает сразу) или не вводить его — тогда придёт код на почту. Второй способ выручает, если пароль забыт или в него закралась опечатка — раньше в такой ситуации войти было нельзя
- Меню профиля приведено в порядок: осталось только нужное — «Личный кабинет», «Настройки», «Обратная связь» и «Выйти». Пункты теперь одной высоты, с ровными иконками и отступами в обеих темах; раньше ссылки и кнопки были оформлены по-разному и выглядели криво, а в мобильном меню кнопки выбивались рамками и свечением. Заодно починено имя в раскрытом меню: раньше в шапке оно оставалось пустым, показывался только email
- Раздел «Обращения» в кабинете: вместо одной кнопки появилась история — тема, статус (новое / в работе / есть ответ / закрыто), дата и число сообщений. Ответ администрации помечается точкой, по клику сразу открывается переписка по этому обращению
- Письма с кодами стали понятнее: в теме и тексте письма указано, что именно подтверждается — регистрация, смена email, имени или пароля. Для подтверждения смены почты в письме отдельная пометка с советом, что делать, если запрос делали не вы
- Личный кабинет и редактор визитки адаптированы под телефоны: разделы выстраиваются в горизонтальную прокрутку, кнопки занимают всю ширину, предпросмотр визитки встаёт под формой — раньше на узком экране всё сжималось в две тесные колонки
- Цифровая визитка: у каждого аккаунта теперь есть страница-визитка по адресу /u/имя — фото, имя, должность, компания, описание, контакты текстом и кнопки-ссылки (до 10). Адрес можно записать на NFC-метку или отправить ссылкой
- На аккаунт доступна ровно одна визитка: её создают в личном кабинете, там же редактируют и удаляют. При удалении адрес снова становится свободным
- Появился личный кабинет (/cabinet.html) с разделами: «Моя визитка», «Профиль», «Безопасность», «Настройки», «Избранное», «Обращения». Ссылка на кабинет добавлена в меню профиля (в том числе в мобильное меню)
- Смена email прямо в кабинете: указываете новый адрес и текущий пароль, на новый email приходит код из 6 цифр — пока код не введён, почта не меняется. Чужой email привязать нельзя (он должен быть свободен), ошибки ввода и попытки ограничены
- В кабинете сохранили и настройку темы: галочка «Запоминать тему оформления в аккаунте» синхронизирует светлую или тёмную тему между устройствами, без галочки тема хранится только в браузере
- Редактор визитки с живым предпросмотром: фото, оформление (фирменное, светлое, тёмное), порядок ссылок стрелками, счётчик ссылок и «осталось символов». Большие фото автоматически уменьшаются до 1200 px по длинной стороне
- Фото визитки хранится в базе данных и отдаётся отдельным запросом с кешированием (ETag) — страница визитки открывается быстро даже на слабой связи, что важно для NFC-метки
- Версионирование визитки: если открыть редактор в двух вкладках, сохранение из устаревшей не перезапишет новые правки — придёт предупреждение обновиться
- Админ-панель: появился раздел «Визитки» — список с поиском и фильтром, сводка (всего, опубликовано, черновики, ссылки, с фото) и кнопка «Снять с публикации» для жалоб и нарушений
- 152-ФЗ, ст. 10.1: публикация визитки возможна только с отдельным согласием на распространение персональных данных (имя, фото, должность, компания, описание, ссылки); согласие фиксируется в базе с редакцией документа. Отзыв согласия (снятие с публикации) сразу закрывает страницу, повторная публикация требует нового согласия
- Неопубликованная визитка недоступна по ссылке и не отдаёт фото: ответ такой же, как для несуществующего адреса, поэтому перебором нельзя узнать, занят адрес или нет
- Ограничения ссылок: принимаются только адреса http:// и https://, страницы с javascript: и подобными схемами отклоняются и в редакторе, и на сервере
- Публичная страница визитки с водяным знаком «Создано на NFCrafter» и кнопкой «Сделать свою визитку». Страница показывает только данные владельца и его кнопки — никаких служебных действий на ней нет. Для поисковых систем страницы визиток закрыты (noindex, Disallow: /u/) — это персональные данные
- Тесты и документация: scripts/test_cards_api.js (19 проверок API визитки и смены email), scripts/diag_card_ui.py (браузерный сценарий кабинета и публичной страницы), новый скилл skills/business-cards.md
- Появилась защита от ботов и сквоттинга: визитку может создать только аккаунт с подтверждённой почтой, не раньше чем через 10 минут после регистрации; с одного IP создаётся не больше 3 визиток в сутки. Удалённый адрес визитки резервируется на 30 дней, поэтому перехватить чужое имя сразу после удаления нельзя
- Кнопка «Сделать свою визитку» на странице визитки ведёт в личный кабинет (раньше — в конструктор vCard-файла, это другой инструмент). Самому владельцу эта кнопка не показывается — всё, что нужно владельцу, живёт в кабинете
- Кнопки визитки получили аккуратные SVG-иконки вместо текстовых значков: Telegram, ВКонтакте, конверт, глобус, телефонная трубка, метка на карте, знак 2ГИС и звено ссылки. Иконка наследует цвет кнопки и видна в любой теме, а в редакторе сразу отражается в предпросмотре
- CSS и скрипт визитки теперь подключаются с версией по содержимому файла: после обновления стилей браузер сам подгружает новую версию, а не показывает старую из кеша — больше не нужно просить посетителей «обновить страницу»
- Новая кнопка «Сохранить контакт»: визитку можно сохранить в телефон одним нажатием. Телефон, почта, имя и компания берутся из визитки, на iPhone файл открывается в «Контактах», на Android скачивается. Обязательны имя и телефон — без них сохранять нечего, почта добавляется, если указана
- Вместо адресов теперь можно вводить только имя: в кнопке Telegram достаточно написать «nfcrafter» — система сама сделает ссылку t.me/nfcrafter. Так же для ВКонтакте (имя страницы или числовой id), телефона (номер в любом виде) и почты — домен и схему подставляем сами
- Кнопка «Позвонить» сразу открывает набор номера на телефоне, «Написать на почту» — почтовое приложение: на iPhone и Android эти кнопки работают как системные, а не как обычные ссылки
- Редактор визитки подсказывает, что вводить: у каждой кнопки своя подсказка и пример поля, а в свёрнутой памятке — как взять ссылку на точку в Яндекс Картах и 2ГИС. Название кнопки ограничено 40 символами, чтобы влезало в одну строку на телефоне, кнопок — до 9
- Кнопка 2ГИС получила узнаваемую иконку: скруглённая метка на подложке вместо прежнего круга
- Состав кнопок бесплатной визитки приведён к делу: Telegram, ВКонтакте, «Написать на почту», «Сайт», «Позвонить», «Яндекс Карты», «2ГИС» и обычная ссылка — всего 8 типов. Карты получили свои цвета: у Яндекса красный, у 2ГИС фирменный зелёный. Лишние типы (WhatsApp, Instagram, YouTube) убраны
- На странице визитки появилась кнопка «Пожаловаться»: причина из списка и комментарий, жалобу можно отправить без входа. Частые жалобы с одного IP и на одну визитку ограничены, владелец не может жаловаться на себя
- Админ-панель: в разделе «Визитки» появился блок жалоб — видно причину, комментарий и владельца, можно сразу снять визитку с публикации либо принять или отклонить жалобу. В Telegram уходит только номер визитки и причина, без персональных данных
- Тесты и документация: scripts/test_cards_antibot.js (лимиты, резерв адресов и пересоздание), scripts/diag_card_ui.py (кабинет, редактор и публичная страница), скилл skills/business-cards.md
- Технически: единая точка определения адреса API (assets/js/api-base.js) — убрали дублирующее автоопределение в разных скриптах, модули визитки вынесены в assets/js/card/, стили — в assets/css/modules/21-card.css, копирование папки /u/ добавлено в сборщик, а выкладка на хостинг теперь передаёт .htaccess (dot-файлы)
- Публичная визитка очищена от служебных действий: убраны «Копировать ссылку», «Записать на метку», «Как записать метку» и строка с адресом страницы под кнопками. Человек открывает визитку, чтобы увидеть контакты, а не служебные кнопки — они переехали в личный кабинет
- «Записать на метку» убрана и из кабинета: запись через браузер работает только в Chrome на Android одновременно. На компьютере и iPhone кнопка не появлялась вовсе, а в остальных случаях вводила в заблуждение
- Редактор визитки больше не открывается сам: человек идёт посмотреть, что у него есть, а получал простыню полей. Теперь сначала экран визитки, а форма открывается кнопкой «Редактировать»
- После сохранения визитки видно подтверждение: раньше сообщение выводилось в форму, а потом она закрывалась вместе с ним — было непонятно, сохранилось ли вообще
- Новая кнопка создаётся сразу как Telegram — раньше стояла «Обычная ссылка», и человек вводил имя без https, получал ошибку про формат ссылки и бросал задачу
- Исправлена ошибка «укажите undefined»: если оставить поле адреса пустым, вместо подсказки показывался текст без самой подсказки. Теперь видно, что нужен полный адрес с https:// в начале
- Визитку можно сохранить 2 раза в час: этого хватает на «сохранил, перечитал, поправил». Если лимит исчерпан, в ответе написано, сколько ждать («через 1 час», «через 2 часа 15 минут») и что делать, если нужно срочно
- Удалить визитку и создать новую можно раз в сутки — так нельзя перебирать адреса, занимая красивые имена и оставляя их пустыми. Имя, должность и кнопки при этом правятся в редакторе без удаления
- Убран лимит «2 создания в сутки», который считал все создания подряд, включая первое. Человек, исправлявший опечатку в своем же имени, упирался в стену и ждал сутки — при том, что вторая визитка на аккаунт всё равно невозможна
- Создание визитки больше не ограничено: если визитки нет, её всегда можно создать — иначе удаление оставило бы человека и без визитки, и без выхода из ситуации
v1.3 23.09.2026
- Единый релиз за день: версии 1.25.0, 1.26.0 и 1.27.0 объединены в одну запись 1.3 — чат обратной связи, переработанная админка, доставка писем, три новых материала и SEO-вычитка всего контента
- Чат «Обратная связь»: двусторонняя переписка с администрацией. Кнопка в выезжающем меню (доступна и гостям) и в меню профиля открывает окно-мессенджер: сообщения, вложения (фото и файлы до 5 МБ, до 5 штук), правка и удаление своих сообщений, статусы обращения, автопродолжение диалога после перезагрузки страницы
- Гость пишет без регистрации (имя, email, согласие на обработку ПДн) — переписка восстанавливается по личной ссылке-токену; авторизованный пользователь видит все свои обращения списком
- Админ-панель расширена: раздел «Обращения» (два окна — список с поиском и фильтрами по статусу и непрочитанным, переписка справа), ответ с вложениями, смена статуса и приоритета, правка и удаление сообщений, удаление обращения целиком, бейдж непрочитанных на вкладке
- Админ-панель разбита на модули (assets/js/admin/: core, tabs, files, tickets) вместо одного inline-скрипта — проще развивать разделы
- Письма пользователю по обращению: автоответ при создании, уведомление об ответе администратора и о смене статуса (SMTP, шаблоны в backend/mailer.js)
- 152-ФЗ: переписка и вложения хранятся только в БД на территории РФ (срок хранения 365 дней), в Telegram уходят обезличенные факты («новое сообщение в обращении #N») без текста и ПДн; без согласия обращение не создаётся; удаление по требованию субъекта — одной кнопкой
- Безопасность вложений: разрешены только изображения, PDF, txt/csv, zip, doc(x), xls(x) до 5 МБ; исполняемые файлы и SVG отклоняются и на клиенте, и на сервере; файлы отдаются с защитой от подмены типа (nosniff)
- Тесты: scripts/test_support_api.py (API гостя и админа, вложения, правка, статусы), scripts/diag_support.py (браузерный сценарий пользователя), scripts/diag_admin_chat.py (сценарий админа) — все три создают и удаляют тестовое обращение
- Новый скилл skills/support-chat.md: схема таблиц, состав API, правила 152-ФЗ и лимиты вложений
- Админ-панель открывается во всю ширину страницы (без боковых сайдбаров) — таблицы больше не распирают вёрстку
- Раздел «Пользователи» переделан: сортировка кликом по заголовку любого столбца (email/имя, способ входа, город, регистрация, последний вход, входы, инструменты, геоточки), стрелка направления, липкая шапка
- Поиск по email, нику, имени, городу и номеру пользователя — без перезагрузки страницы; фильтры: все, администраторы, email не подтверждён, подписаны на рассылку, заходили за 7 дней, с таймером удаления
- Пагинация (25/50/100 на странице) вместо жёсткого лимита в 500 строк, счётчик «показано N–M из K»
- Кнопка «Детали» раскрывает строку: анкета (пол, возраст, город), согласие на обработку ПДн и его версия, таймер удаления, избранное и обращения, последние координаты и часовой пояс
- Прямо из таблицы можно включить/выключить рассылку, выдать или снять права администратора (свои снять нельзя), удалить пользователя и выгрузить текущую страницу в CSV
- Мобильный вид: строки таблицы превращаются в карточки, горизонтального скролла нет ни на одной вкладке админки (проверено на 1440, 1024 и 390 px)
- Админка: выпадающие списки (статус и приоритет обращения, фильтры, размер страницы) и шапка таблицы пользователей читаются в обеих темах — раньше при переключении темы текст сливался с фоном; теперь у селектов явные цвета опций и правильная схема оформления, шапка в светлой теме светлая, отсортированный столбец — синий (контраст от 6:1 до 16:1)
- Превью партнёра Eibery на странице «Партнёры» заменено на фирменную надпись: оранжевый вордмарк EIBERY с NFC-волнами на тёмном фоне вместо фотографии (генератор scripts/make_partner_cover.py, весит 16 КБ)
- Тесты отправки писем: scripts/test_email.py поднимает локальный SMTP-приёмник и проверяет 33 письма на адреса mail.ru, yandex.ru и gmail.com — все шаблоны (код, ответ по обращению, статус, автоответ, предупреждение об удалении), повторную отправку на тот же ящик, отправителя, темы и код в письме
- Диагностика почты на сервере: backend/scripts/mailer-probe.js показывает ответы SMTP по каждому ящику (accepted/rejected) и проверяет соединение с логином; тест дополнительно печатает MX/SPF/DMARC наших и клиентских почтовых доменов — сейчас у nfcrafter.ru нет записи DMARC, без неё Gmail кладёт письма в спам
- Почта: переменная SMTP_TLS=0 отключает шифрование (для внутреннего релея и локальных тестов), поведение по умолчанию не изменилось — 465 неявный TLS, 587/25 принудительный STARTTLS
- Новый скилл skills/emails.md: шаблоны писем, env-настройки, доставляемость (SPF/DKIM/DMARC) и команды проверки отправки
- Новая новость: «Осторожно, NFCGate: как защитить метки от клонирования» — как клонируют метки через NFCGate и Mifare Classic Tool, 5 уровней защиты (WRITE LOCK, пароль + ACK, оригинальные чипы NXP, защита от relay, эпоксидная заливка), чек-лист безопасности и таблица подбора чипа под задачу
- Новая статья в блоге: «Пароль на NFC-метку: что защищает, а что клонируют» — как устроен пароль PWD/PACK и AUTH0 на NTAG 213/215/216, почему у MIFARE Ultralight пароля нет, ключи Crypto-1 и нулевой блок MIFARE Classic, поколения magic-карт, чем копируют пропуска и как защищены настоящие СКУД; перелинкована с новостью про NFCGate, гидом по выбору меток и инструкциями по NFC Tools, TagWriter и контролю доступа
- Новая новость: «NFC Release 15 и DPP: цифровые паспорта товаров в ритейле» — что реально изменил Release 15 (рабочий диапазон вырос с 0,5 до 2 см, сертификация CR15), чем отличается формат NDPP, который NFC Forum только готовит, и когда цифровой паспорт становится обязательным (аккумуляторы — с 18 февраля 2027 года); архитектура паспорта с привязкой UID к артикулу, учёт возвратов в схемах FBO и FBS, защита метки на NTAG 215 и 424 DNA, чек-лист для бренда. На сайте 36 материалов
- Перелинковка: на новость о DPP ведут ссылки из материалов про Digital Product Passport, дорожную карту NFC Forum 2026 и клонирование меток через NFCGate, а также из гида по выбору NFC-меток
- SEO-вычитка предыдущего контента: у 14 материалов заголовки и описания приведены к комфортной длине в выдаче (title до 60 символов, description до 160), у новостей без тегов добавлено поле tags — из него теперь собираются метатег keywords и разметка keywords в JSON-LD
- SEO сборщика: заголовок страницы и og/twitter-заголовки получили бренд «— NFCrafter», обложки в Open Graph и JSON-LD отдаются абсолютными URL, в разметку статей и новостей добавлены articleSection, keywords, inLanguage, dateModified, isAccessibleForFree и mainEntityOfPage, в статьи — дата публикации
- Чистка контента: из таблиц совместимости (гайды по NFC на iPhone и по NFC Tools) убраны пиктограммы-галочки и крестики — вместо них обычные «да», «нет» и «ограниченно»; scripts/check_content.py снова показывает ВСЁ ЧИСТО (было 58 замечаний)
v1.21.0 30.08.2026
- Новый раздел «Партнёры»: общая страница partners.html с превью-карточками и подраздел контента content/partners/. В меню сайта, поиске, бегущей строке и перекрёстных ссылках — материалы с меткой «Партнёр». Первый партнёр — Eibery (ООО «Эйбери», Казань): статья о 3D-стикерах и NFC-метках из эпоксидной смолы с кейсами (отель Azimut, производство), характеристиками NTAG213/216, условиями заказа и контактами (Telegram @eiberystore). Добавлена пометка, что материал размещён с разрешения и согласия компании
- Страница «Партнёры» дополнена блоком «Сотрудничество» с формой обратной связи (имя, контакт, тема, сообщение); в футер добавлена ссылка «Сотрудничество». Форма «Контакты» починена: кнопка «Отправить» больше не блокируется
- Исправлена светлая тема: блок «Сотрудничество» и поля форм обратной связи теперь читаемы в светлой теме (раньше текст сливался с фоном)
- Избранное: на всех контентных страницах (статьи, инструкции, новости, партнёры) появилась кнопка «Добавить в избранное» — только для зарегистрированных. В меню профиля добавлена вкладка «Избранное» для быстрого доступа
- Единый лог действий пользователей: регистрации, входы, смены пароля, заявки и избранное пишутся в таблицу events. В админ-панели добавлена вкладка «События» с полной лентой
- Telegram-уведомления: о новых регистрациях (после подтверждения email), заявках, сменах пароля и избранном бот шлёт обезличенные уведомления — без персональных данных (152-ФЗ). Полный лог с деталями хранится в БД на территории РФ
- Регистрация завершается только после ввода кода подтверждения с email: до подтверждения аккаунт не считается активным
- Отправка писем с кодом переведена на переменную SMTP_FROM + принудительный STARTTLS для портов 587/25 — выше доставляемость до Яндекс.Почты. Ченджлог разделён на свежий (changelog.json) и архив (changelog_archive.json)
- Добавили подтверждение почты. После регистрации на email приходит код из 6 цифр — вводите его на сайте, и аккаунт становится активным. Это защищает от фейковых регистраций и позволяет связаться с вами, если что-то случилось с аккаунтом
- Кто не подтвердит почту, теряет аккаунт через 90 дней: при входе показываем окно с кодом и просим заново подтвердить согласие на обработку данных. За неделю до удаления приходит предупреждающее письмо — ничего не удаляется молча
- В окне регистрации появилась необязательная анкета: пол, возраст (только интервалом, без точной даты) и город — выбором из списка, вручную ничего вводить не нужно. Так мы понимаем, кто наша аудитория, и не собираем лишнего
- Заработала админ-панель: видно, кто и когда регистрировался и заходил, подтвердил ли почту, какие приходили заявки, откуда посетители и что они смотрят. Открывается из меню профиля, доступ есть только у администратора
- Вход теперь работает и по нику, и по email. В меню профиля появились смена пароля, настройки (запоминание темы) и выход. Заодно починили имя пользователя, которое пропадало в тёмной шапке при светлой теме
- Начали собирать примерную геолокацию посетителей — только с явного согласия и с точностью до района (~110 м), чтобы понимать, откуда аудитория. Данные хранятся 180 дней и никуда не передаются
- Подключили настоящую отправку писем через SMTP Beget: коды подтверждения теперь реально доходят до почты. Перед этим вычистили персональные данные из старых php-скриптов — всё личное хранится только в нашей базе в России (152-ФЗ)
- Обновили юридические документы: Политику обработки персональных данных переписали по актуальным требованиям, добавили страницу с текстами согласий и комплект документов для Роскомнадзора на случай проверки
- Переделали окно входа и регистрации: аккуратно выглядит и в тёмной, и в светлой теме, выпадающие списки и галочка согласия хорошо видны, вместо эмодзи — иконки в стиле сайта
v1.20.0 28.08.2026
- 152-ФЗ: полностью переписана Политика обработки персональных данных (privacy.html) — реквизиты ИП (ИНН 590504770698, ОГРНИП 323595800118436, реестр операторов ПДн 59-26-042158), локализация БД в РФ (Beget, Москва), раздел «Трансграничная передача не осуществляется» (ст. 12)
- Новая страница «Согласие на обработку персональных данных» (consent.html): тексты согласий для регистрации, заявок, заказов, публикации материалов и рекламной рассылки (ст. 9 152-ФЗ)
- Формы на «Контактах», в магазине и «Бизнесу»: явное согласие со ссылками на политику и текст согласия, фиксация версии текста (pdn-consent-v2.0); заявки уходят в API (POST /api/leads) — хранение в БД в РФ
- Безопасность: из send_form.php удалены персональные данные и захардкоженный токен Telegram-бота; send_form.php теперь прокси на API, уведомления в Telegram отправляет API без ПДн (только номер, тема, страница), токен — через переменные окружения
- Backend: миграция 004 (таблица leads, users.is_admin, users.consent_at), POST /api/leads с серверной проверкой согласия, GET/DELETE /api/leads только для администратора
- Новая служебная страница «Панель заявок» (leads.html, noindex) — просмотр и удаление заявок администратором
- Регистрация пользователей включена: обязательная галочка согласия со ссылками на consent.html и privacy.html, факт согласия пишется в users.consent_at, сервер отклоняет регистрацию без consent:true
- Футер: добавлены ссылки «Политика ПДн» и «Согласие на обработку»; sitemap дополнен consent.html; PAGE_LABELS дополнены юридическими страницами
- Организационные документы для Роскомнадзора в docs/pdn/: приказ об ответственном за обработку ПДн, регламент действий при утечке (ПП РФ № 1813), шаблон поручения обработки для тарифа Pro, чек-лист внедрения
- Cookie-баннер: уведомление об использовании cookie с кнопкой согласия (фиксация в localStorage), стили в новом модуле css/modules/18-cookie.css — в дополнение к разделу 4.6 правовой информации
- instructionAI.md: правила работы с репозиторием — запрет коммитить секреты, лимит 400 строк на файл, локальное тестирование пранков перед деплоем
v1.19.0 27.08.2026
- Удалена анимированная фоновая заставка FlowField (Canvas с частицами): убран assets/js/flow-field.js, CSS-модуль 18-flowfield и инжект скрипта в билдере и шаблонах — сайт перестаёт тормозить
- Новая статья: «Почему записать NFC-метку через сайт можно только на Android в Chrome?» — простые объяснения для владельцев iPhone, шпаргалка и заказ меток с готовой записью. Добавлена в PAGE_LABELS, на сайте теперь 32 материала
- Статистика на странице «О нас»: график посещаемости читаемее — числа просмотров над каждым столбцом, даты крупнее и без обрезания; добавлены человекочитаемые названия страниц iOS 27 Tap to Share и «Великобритания: NFC Apple/Google» в PAGE_LABELS
v1.18.0 24.08.2026
- Рефакторинг: исходники разложены по модульным папкам (pages/, assets/, docker/, scripts/, skills/, builder/)
- Сборщик обновлён: пути в constants.py/static.py теперь указывают на assets/ (css/js/img) и pages/root/
- Статические HTML перенесены в pages/root/, партиалы — pages/partials/, ассеты (css/js/img) — в assets/
- Добавлены AI-скиллы в skills/ (замена монолитного instructionAI.md)
- docker-compose в docker/, nginx.conf и Caddyfile — в docker/
- Деплой-воркфлоу обновлён под новую структуру; пути синхронизированы с GitHub Actions
- CSS разбит на модули: style.css — точка входа (@import), 17 модулей в assets/css/modules/ (base, header, layout, article, search, responsive, stats и др.)
- Новый анимированный фон на главной — FlowField (Canvas, vanilla JS): светящиеся частицы в потоке, темы aurora/ember/ocean, модуль assets/js/flow-field.js + CSS-модуль 18-flowfield
- FlowField-фон теперь на всех страницах: скрипт сам находит main-content и оборачивает контент (шапка, футер и сайдбары не тронуты)
- Документация и скиллы: памятка про PAGE_LABELS в backend/routes/stats.js при добавлении нового контента
- Новая статья: «Анатомия силиконового браслета» — физика антенны, RFID/NFC, микросхемы Mifare/NTAG, безналичные системы, 152-ФЗ/54-ФЗ. Добавлена в PAGE_LABELS, на сайте теперь 30 материалов
- Новая статья: «L-образные table tents с NFC» — конструкция подставок, выбор чипа NTAG215, крепление метки, 10 сценариев (меню, отзывы, Wi-Fi, лояльность, промо), технические нюансы и типичные ошибки
- Страницы «Магазин» и «Бизнесу»: вместо заглушек добавлена рабочая форма обратной связи (send_form.php), блоки «в разработке» сохранены
- Новая инструкция: NXP TagWriter — запись NFC-меток (10 типов NDEF-данных, блокировка, проверка, устранение неисправностей). На сайте 31 материал
- Глоссарий расширен с 139 до 163 терминов: DESFire EV2/EV3, Crypto-1, Darkside, AES-128, ISO 15693/18092, EM4100, HID, 152-ФЗ/54-ФЗ, Tap to Pay, vCard, WPA/WEP/SSID, NPS, 3M VHB/300LSE, NXP, Mifare Ultralight, URI, Bluetooth
v1.17.0 22.08.2026
- Новый NFC-пранк «Входящий вызов»: полная имитация системного звонка — интерфейс определяется под iOS, Pixel/stock Android или Samsung One UI, вибрация, синтезированные рингтоны, автодозвон при сбросе (до 4 раундов), воздухорн и этичная развязка
- В пранке «Входящий вызов» — фейковый локскрин с уведомлением для Android, полноэкранный режим, блокировка выхода и малозаметная ссылка «Завершить пранк»
- Кнопка «На метку» в каталоге пранков теперь корректно отключается вне Chrome на Android — в других браузерах она серая с подсказкой про NFC Tools
- Собственное превью для пранка «Входящий вызов» — своя обложка вместо общей
- Глоссарий расширен на 7 терминов из свежих новостей: Tap to Share, DMA, CMA, NDPP, Wayfinding Mark, iTAP, FlexIC
- Исправлен пранк «Разбитый экран»: добавлен недостающий метод playShutdown в звуковой модуль — режим «Выключение питания» больше не падает
- Пранк «Входящий вызов» разбит на модули: стили вынесены в call/style.css, логика — в call/app.js (файл сокращён с 830 до 119 строк)
- В instructionAI.md добавлен раздел «Строгие правила»: не коммитить ключи, файлы до 400 строк, тестировать пранки перед деплоем
v1.16.0 22.08.2026
- Две новые новости: iOS 27 Tap to Share — NFC-тап между магазином и клиентом, и Великобритания требует открыть NFC от Apple и Google
- Чтение меток стало информативнее: при сканировании показывается тип чипа (NTAG, MIFARE и др.), свободный объём памяти и UID
- У UID появилась кнопка «Копировать» — можно быстро скопировать серийный номер метки в буфер обмена
- Инструмент «Действия с метками» получил собственную картинку-превью
- Инструменты теперь отображаются в бегущей строке на главной
- Статистика на странице «О нас»: карточки складываются в одну колонку на мобильных, таблицы скроллятся внутри, график посещаемости с датами, диаграмма устройств в процентах
- Исправлена колонка «Поисковые запросы» в статистике — больше не уезжает за экран на мобильных
- Исправлены тултипы глоссария внутри таблиц — больше не обрезаются границами
- Исправлена подсветка термина «Nintendo» в глоссарии
v1.15.2 19.08.2026
- Обновлена документация: README и инструкция для AI — новый инструмент «Действия с метками», как деплоить, как смотреть логи GitHub Actions через токен
v1.15.1 19.08.2026
- Исправлена очистка меток в Chrome: теперь метка корректно стирается и остаётся перезаписываемой
- Честный детект браузера: Mi Browser, Samsung Internet и другие больше не показывают ложный баннер «запись доступна»
- В сторонних браузерах — жёлтое предупреждение и кнопка «Открыть в Chrome»
- Понятные сообщения об ошибках NFC: подсказка про замочек в адресной строке для Chrome
v1.15.0 19.08.2026
- Новый инструмент «Действия с метками»: чтение, запись и очистка NFC-меток прямо в браузере Chrome на Android
- Запись на метку: ссылка, текст, Wi-Fi, звонок, SMS, e-mail — без сторонних приложений
- На главной — умный баннер: если вы зашли с Android + Chrome, сайт сам предлагает записать или очистить метку
- Инструмент добавлен в список инструментов и поиск по сайту
v1.14.1 19.08.2026
- Исправлена запись приколов на NFC-метку в Chrome на Android — раньше браузер отклонял запись из-за ошибки в коде
- Проведена чистка репозитория: удалены устаревшие файлы старых версий пранков, лишние картинки и временные файлы
v1.14.0 17.08.2026
- NFC-пранк полностью переработан: вместо 8 звуковых ловушек — 4 прикола для меток (Сирена, Разбитый экран, Перегрев, Сенсор сошёл с ума)
- Новые пранки «Перегрев» и «Сенсор сошёл с ума» с громкими непрерывными звуками-сиренами, современными иконками и полной русской клавиатурой
- Запись на метку прямо из браузера на Android (Web NFC API) — кнопка «На метку» работает без сторонних приложений
- На iPhone и десктопе — понятные подсказки с инструкцией записи через NFC Tools
- Описания пранков переписаны человеческим языком без технических подробностей, убран десктопный BSOD
- Обновлена картинка инструмента и добавлена мини-инструкция + юридический блок на странице пранков
- Убраны возвраты на сайт из пранков — вместо этого кнопка «Повторить»
v1.13.0 17.08.2026
- Статистика стала подробнее: источники трафика (поисковики, соцсети, прямой заход, QR/NFC-метки), устройства, график посещаемости по дням
- Собираются поисковые запросы — видно, по каким ключам находят сайт (Яндекс, Google, Mail.ru)
- Топ-20 популярных страниц с читаемыми русскими названиями
- Исправлена SEO-оптимизация: добавлены description, canonical и JSON-LD на главную, блог и статьи
v1.12.0 17.08.2026
- Новый вид контента: интерактивная инструкция — с бейджем на карточках и отдельной секцией на странице инструкций
- Универсальный шаблон интерактивных инструкций: скриншоты приложений с кликабельными зонами, тур по экранам и мобильный полноэкранный режим
- Полный гайд по NFC Tools 9.5: все вкладки, память чипов, совместимость и сервисные операции
- Актуальная инструкция NFC Tasks: связка NFC Tools + NFC Tasks, установка, права, десять сценариев автоматизации
- Amiibo на NFC-метке: инструкция 2026 — TagMo и PlaiiBoo, перезапись меток, дампы и решение проблем
- Полное руководство по NFC на iPhone: режим разработчика, фоновое чтение, совместимость чипов, автоматизации через Команды
- Новая статья: NFC на iPhone и Android — почему Apple всё усложнила и как обойти через браузер
- Исправлена читаемость интерактивной инструкции в тёмной теме: текст на экране телефона виден и в веб-, и в мобильной версии
v1.11.0 16.08.2026
- Интерактивная инструкция NFC Tools полностью переработана: виджет встроен прямо в сетку статьи (два ряда: обложка с заголовком + телефон с панелью описаний), убран серый контейнер и iframe
- Мобильная версия: в статье карточка-вход, по кнопке открывается полноэкранный режим «как приложение» — вкладки, экраны-описания с навигацией «Назад», тур по интерфейсу и сброс
- Регистрация на сайте временно отключена: вместо формы — уведомление о направлении информации в Роскомнадзор
v1.10.1 16.08.2026
- Исправлена веб-версия интерактивной инструкции NFC Tools: панель описаний теперь прилипает при прокрутке и остаётся на уровне телефона, мобильная версия не затронута
v1.10.0 08.08.2026
- Рефакторинг: backend разбит на модули (config, db, middleware, routes), сборщик вынесен в пакет builder/
- Шаблоны статей и новостей разделены: новости с JSON-LD NewsArticle для SEO
- Исправлены тултипы глоссария на мобильных: не вылезают за край экрана, повторный тап закрывает
- Убраны вложенные термины из тултипов глоссария (38 пар), контент стал чище
- Исправлены одиночные звёздочки в таблицах и списках — жирный текст теперь корректно конвертируется везде
- Добавлены viewport-мета на страницы совместимости и дампов — мобильная версия работает на всех страницах
- Автоматическая проверка контента (check_content.py) и мобильное тестирование (test_mobile.py)
v1.9.1 08.08.2026
- Деплой ускорен: фронт собирается только при реальных изменениях, rsync вместо полного копирования, Docker-кеш слоёв на VPS
- Git-репозиторий почищен: убраны дубликаты автогенерируемых файлов (index.html, blog.html, instructions.html, js/news.js, js/search-data.js)
- Защита данных: дампы БД и автогенерируемые файлы добавлены в .gitignore
v1.9.0 04.08.2026
- Собственный счётчик статистики: перенесён с PHP на Node.js + PostgreSQL (таблицы page_views и visitors)
- Новые эндпоинты: POST /api/stats/pageview (регистрация просмотра) и GET /api/stats (агрегированная статистика)
- IP-адреса посетителей хранятся только в виде SHA-256 хешей — безопасно и анонимно
- Удалены мёртвые PHP-скрипты счётчика (counter.php, stats.php), которые не работали в Docker-архитектуре
- Удалены все эмодзи из контента: статьи, инструкции, новости, инструменты, перекрёстные ссылки
- Унифицирован шрифт: страницы-ловушки NFC-пранка переведены на Inter (был системный шрифт)
- Исправлены косяки контента: сбитая нумерация в инструкции iPhone NFC, мусорный фрагмент в новости о рынке NFC
v1.8.2 27.07.2026
- Исправлено мобильное меню (гамбургер): переписан initMobileUI — убран cloneNode, прямые addEventListener с защитой от повторной инициализации
- Исправлен fixTheme: больше не падает с Cannot read properties of null при загрузке скриптов в head (ожидание DOMContentLoaded)
- CSS: sidebar-overlay и mobile-sidebar — visibility + pointer-events вместо display: none/block для корректной CSS-анимации
v1.8.1 26.07.2026
- Обновлены превью инструментов: сгенерированы новые изображения через Stable Diffusion
- Обновлён README: добавлена документация по AI-генерации (SD, TTS, Bark)
- Чистка старых файлов инструментов в content/tools/ (не используются)
v1.8.0 26.07.2026
- Бэкенд: своя система авторизации — регистрация и вход по email/паролю (JWT + bcrypt)
- Профиль пользователя: настройки темы и данных сохраняются на сервере
- Автономный бэкенд-сервер на Node.js/Express + PostgreSQL 16 в Docker
- Автоматический HTTPS через Caddy для api.nfcrafter.ru
- Чистка репозитория: удалены устаревшие скрипты деплоя и SSH-ключи
- В шапку сайта добавлена вкладка «Магазин»
- Обновлено превью инструмента NFC-пранк на tools.html
- Исправлен переключатель темы (обработчики вешаются после загрузки шапки)
v1.7.2 22.07.2026
- Генеральная уборка проекта: удалены дублирующиеся файлы в корне и templates, неиспользуемые JS-скрипты, папки yandex metrik, sounds, dumps
- Шрифты унифицированы: Inter для всех текстов и заголовков, Consolas для кода
- Правило бэкапа добавлено в instructionAI.md — перед любыми изменениями создавать git tag backup
- Сборка build.py успешно проходит
v1.7.1 14.07.2026
- Исправлены битые перекрёстные ссылки: блоки «Читайте также» больше не ведут в 404 от инструментов
- Тултипы глоссария на мобильных: теперь не вылезают за границы экрана, текст переносится
- Улучшено позиционирование всплывающих подсказок на маленьких экранах
v1.7.0 07.07.2026
- Своя система статистики: вместо Яндекс.Метрики — собственный PHP-счётчик просмотров с уникальными посетителями по IP
- Бегущая строка: исправлены битые ссылки на инструменты (вели в 404)
- Чистка кода: удалён весь код Яндекс.Метрики (счётчик, API-прокси, OAuth-токен)
- Страница О нас: статистика теперь работает от своего API, все упоминания Метрики удалены
v1.6.1 06.07.2026
- Обновлена документация: README и instructionAI приведены в соответствие с реальной структурой проекта
- Страница О нас: глоссарий 126 терминов, 3 инструмента для работы
- Исправлены устаревшие описания в README: количество терминов, список инструментов, структура папок
v1.6.0 05.07.2026
- Новая статья: Простые NFC-решения — от крышки бензобака до умного дома
- Глоссарий расширен до 126 терминов: автомобильные сценарии, умный дом, автоматизация
- Страница О нас: блок статистики посещаемости с разбивкой по инструментам
- Поиск: теперь находит инструменты (калькулятор, генератор, пранк)
- Исправлена ошибка сборки build.py на Python 3.14
v1.5.0 04.07.2026
- Новый инструмент: NFC-пранк — 8 звуковых ловушек (сирена, BSOD, тревога, стекло, смех, рожок, полиция, ядерная тревога)
- Каждая ловушка: автоплей через Web Audio API, убегающая кнопка, fullscreen, блокировка выхода, вибрация
- Инструкция по NFC-пранку: как записать ловушку на метку, юридическая защита
- Новая страница: Бизнесу (заглушка)
v1.4.2 24.06.2026
- Новая статья: ТОП-5 компаний в мире NFC — NXP, Infineon, Broadcom, Thales, Identiv
- Новая новость: NFC Forum Roadmap 2026 — 6 направлений развития стандарта
- Новая инструкция: как найти телефон в беззвучном режиме через NFC и Tasker
- Глоссарий расширен до 112 терминов: компании, стандарты безопасности, технологии зарядки, автоматизация
v1.4.1 24.06.2026
- Форма обратной связи: отправка в Telegram через PHP-прокси (работает без VPN)
- Все соцсети кликабельны: Telegram, VK, YouTube, Rutube, Дзен, Likee
- Правовая страница: дисклеймер, ссылки на статьи УК, информация о кастомизации
- Исправлена читаемость всех блоков в светлой теме
v1.4.0 24.06.2026
- Полная переработка мобильной адаптации: компактная шапка, выезжающее меню
- Все эмодзи заменены на SVG-иконки
- Глоссарий: кастомные тултипы с авто-позиционированием
- Новые страницы: Контакты, Правовая информация, О нас
v1.3.0 24.06.2026
- Новость: рынок NFC 2024-2030 — $21.69 млрд → $60+ млрд
- Полная мобильная адаптация: карточки в 1 колонку, полноэкранный поиск, фильтры
- Глоссарий расширен до 90 терминов
- Исправлены все кракозябры в контенте и битые ссылки
v1.2.0 23.06.2026
- Новые инструкции: NFC-визитка, NFC в машине, NFC + 3D-принтер, умный замок, NFC-меню, NFC-самокат, проездной
- Новая статья: NFC-капсула времени — послание в будущее
- Автоматические перекрёстные ссылки: блок «Читайте также» под каждым материалом
- Markdown-таблицы теперь красиво конвертируются в HTML
v1.1.0 08.06.2026
- Новые статьи: крипто-кошельки, NFC-метки, цифровой паспорт товара
- Новые инструкции: NFC Tools, Amiibo, iPhone NFC
- Поддержка нумерованных списков и цитат в контенте
v1.0.1 06.06.2026
- Главная: приветствие и лента обновлений
- Исправлены пути к картинкам на всех страницах
- Обновлён глоссарий, переписаны инструкции
v1.0.0 01.06.2026
- Запуск сайта NFCrafter — гида в мире NFC-технологий
- Статьи, новости, инструкции по NFC-меткам
- Инструменты: генератор дампов, калькулятор памяти, таблица совместимости
- Тёмная тема, автодеплой через GitHub Actions