Cutly — self-hosted сервис для сокращения ссылок
Зачем?
Недавно купил железку, и возникла необходимость генерировать QR-коды, которые будут хорошо считываться. Для этого нужно делать ссылки максимально короткими. Не хотелось привязываться к сторонним сервисам, поэтому решил написать свой сервис без фатальных недостатков.
Хотелось реализовать выбор длины ссылки и OIDC-авторизацию. Плюс хотелось попробовать настроить нормальный CI/CD с автоматической сборкой и пушем Docker-образов.
Какие технологии использовал?
React — иной раз оверкилл, но так проще сделать форму с валидацией без лишних заморочек.
Bun — модный и быстрый js runtime, все свежие pet-проекты делаю на нем.
Tanstack Start — хотел попробовать, позиционируется как улучшенная версия Next.js. Работать интересно, но пока мало информации от LLM.
Mantine UI — отличный UI-кит для React с нормальным CSS, без css-in-js и tailwind.
Prisma — удобный ORM с строгой типизацией на TypeScript и миграциями из коробки.
SQLite — нагрузок больших нет, пару таблиц, поэтому достаточно.
nanoid — для генерации случайных ID.
openid-client — для реализации OIDC, проверял с Pocket ID, работает отлично.
biome — для форматирования и линтинга кода.
GitHub Actions — для CI/CD.
Ну и ссылка на репозиторий: https://c.dskr.dev/b9
Post #183
501

- 🔥 7
- 👍 3
- ❤ 2