Грязный ноукодер
1.38K subscribers
128 photos
13 videos
3 files
171 links
Пишу про AI, no-code и бизнес процессы.
@low_code - для связи
Видео гайды - https://www.youtube.com/@5_min_ai
Обучение - https://www.skool.com/5minai-pro
Download Telegram
Если клиент просит добавить фичу (за деньги), которая заведомо не имеет продуктовой значимости, основана на чистом желании клиента и не будет использоваться, вы добавите ее не обсуждая или попытаетесь доказать, что она не нужна?
Почему? (мотивация может быть разной - деньги, время, принципы и тд)
Сегодня я поделюсь лайфхаками по работе с Supabase, которые я узнал, пока автоматизировал многоступенчатый процесс лизинга для мексиканской компании.

1️⃣ Вы можете создать базу через интерфейс, но мне больше нравится описывать вместе с ChatGPT запросы на создание нужных таблиц и просто запускать их во вкладке SQL Editor.

CREATE TABLE public.log_types (
id uuid NOT NULL DEFAULT gen_random_uuid(),
type_name TEXT NOT NULL,
CONSTRAINT log_types_pkey PRIMARY KEY (id)
) TABLESPACE pg_default;

2️⃣Немного о первичном ключе:

- Каждая запись должна иметь уникальный идентификатор, иначе вы не сможете изменять или удалять их.

- Для первичного ключа я использую поле с типом uuid и автоматической генерацией через дефолтное значение - gen_random_uuid(). Можно выбрать порядковую нумерация начиная с 1, но мне такой вариант не подошел, ведь при использовании этого id в ссылке пользователь сможет заменить его на другой и посмотреть чужую запись.

- Если вы ошиблись и хотите поменять тип Primary поля, то вам придется сделать несколько действий - для начала вам нужно снять галочку с текущего поля и сохранить таблицу, только после этого вы сможете выбрать новое поле.

3️⃣ Для разных типов данных можно использовать разные типы поля. Вы можете использовать для текста один и тот же тип text, а можете варьировать тип в зависимости от размера данных, которые собираетесь там хранить. Каждый из типов резервирует в базе определенный размер памяти, поэтому если вы собираетесь делать большой и масштабируемый проект, есть смысл задумываться над типом каждого поля.

- Varchar - короткий текст
- Text - длинный текст
- Timestamptz - дата с временем и таймзоной
- Int8 - для целых чисел
- Float8 - для чисел с точкой
- Bool - для логических переменных
- JSON - для хранения объектов

4️⃣ У поля можно выбрать дефолтное значение - удобно выставлять текущую дату или дефолтный статус.

5️⃣ Вы можете настроить поле с ссылкой на другую таблицу (значок ссылки). Для этого нужно будет выбрать таблицу и нужное поле (uuid). В настройке “Action if referenced row is removed” следует выбрать поведение базы при удалении референса, иначе при удалении записи и наличии связи база выдаст ошибку.

- Cascade - удалить связанные записи
- No action - ничего не делать, но вызывает ошибку
- Set default/NULL - выставить дефолтное/NULL значение (выбрайте это, если не знаете что лучше)

6️⃣ Все типы полей могут быть массивами (значок шестеренки - Set as Array). Однако, ссылки на другие таблицы не поддерживают массивы. Для хранения массива ссылок на другую таблицу следует убрать связь и хранить данные как массив uuid/text.

7️⃣ Не стоит забывать про нейминг таблиц и полей. Я использую snake_case конвенцию, а ссылки на другие таблицы обозначаю как entity_id.

8️⃣ Файлы хранятся отдельно в storage и вызываются/сохраняются по пути файла через API (название папок/название файла.расширение). Каждый файл я храню в отдельной папке пользователя (название - user_id), сами папки хранятся в папке сущности (users). В отдельной таблице в БД хранятся файлы с названием и полным путем до файла в storage (users/user_id/filename.txt).

9️⃣ Для получения временной ссылки на файл (удобно для просмотра) нужно сначала запросить url с помощью запроса https://yourbase.supabase.co/storage/v1/object/sign/file_storage/[filepath] : JSON body {"expiresIn": 600}. Далее эту ссылку можно использовать с префиксом https://yourbase.supabase.co/storage/v1


Данные советы могут содержать неточности и основаны лишь на моем опыте. Также для простоты я использую мастер-ключ для API запросов к базе (получение файлов), что является плохой практикой. Каждый пользователь должен быть создан в Supabase, данные должны быть привязаны к пользователю и для запросов к API нужно использовать токен пользователя, чтобы ограничить доступ к другим файлам.

Ставьте лайк и подписывайтесь, в следующей части мы разберем лайфхаки подключения SQL к Bubble
👍8🔥5
В no-code возможно зарабатывать $5-10 тыс./мес.

Какого уровня дохода вам хотелось бы достичь в следующем году? Как вы думаете, какие скиллы вам нужно для этого подтянуть?
🔥5👍1
Как сделать не виснующее ноукод приложение с БД в 1000000 строк?

Продолжаем говорить о SQL и сегодня разберем полезные советы о работе с SQL в Bubble.
Ранее я уже делал ряд постов об этом, поэтому не будем повторяться и посмотрим новые инсайты.

1️⃣ Для подключение к Supabase устанавливаем плагин SQL Connector и берем креды из Settings - Database. Далее формируем строку для плагина - postgres://User:Password@Host:Port/Database.

- Пример: postgres://postgres:YGe24reS51Sba@db.ekgfdgwertwerajnwqw.supabase.co:5432/postgres

2️⃣ Работая с большим объемом данных не обойтись без пагинации - ее можно сделать с помощью OFFSET и переменной ($1). Для показа следующей “страницы” добавьте к переменной число, указанное у вас в LIMIT. При пагинации обязательна сортировка данных, чтобы БД точно понимать какие именно записи идут следующими.

- ORDER BY created_date DESC LIMIT 200 OFFSET $1;

3️⃣ Переменные в запросах:

- При составлении запроса заранее задумайтесь о переменных, которые вы будете использовать в нем. Если вы захотите удалить переменную, то порядок всех остальных переменных сместиться, поэтому лучше просто заменять ненужную переменную на последнюю в списке.

- Если вам нужно сделать запрос для поиска с различными фильтрами (переменными), которые могут быть пустыми, добавьте в условие проверку переменной - $1 IS NULL. Примеры условий для разных типов:
- - Текстовая переменная - (status LIKE '%' $1 '%' OR $1 IS NULL)
- - Числовая переменная - (telegram_id = $1 OR $1 IS NULL)
- - Массив - school_name = ANY(ARRAY[$1] OR $1 IS NULL) - $1=‘Harvard,Stanford’

- Если у вас есть проблемы с типом данных на стороне Bubble, смените тип переменной в SQL - $1::text или $1::int

4️⃣ Не бойтесь SQL, за меня на нем пишет ChatGPT. Даже 3.5 версии достаточно скормить структуру ваших таблиц (Table - Definition) и он сам напишет все нужные запросы за вас.

🔥Совет со звездочкой для самых-самых:

Кейс - я хочу выбрать из списка заказ и показать детали этого заказа.
Источником данных для карточки деталей заказа я использую выбранную запись из общего списка заказов, который основан на запросе get_orders. Тут нет проблем - жмем на заказ и используем This get_orders.
Но каждый запрос воспринимается как отдельный тип данных. Если я хочу из карточки счета перейти в заказ мне нужно либо использовать отдельный запрос get_this_order, либо брать весь список заказов и фильтровать его на стороне клиента, чтобы получить данные по конкретному заказу.

Первый способ вернет другой типа данных, который нельзя использовать для карточки товара (у нас там все завязано на get_orders). Второй же способ небезопасен (так как грузятся все данные на сторону клиента) и неэффективен (это может занять очень много времени). Что же делать?

Мы делаем универсальный запрос get_orders, куда добавляем еще один фильтр id=$1. Проблема в том, что UUID это жесткий 32 символьный формат и при попытке отправки пустой строки вы получите ошибку ($1 IS NULL тоже не поможет). Для обхода этой проблемы мы заменяем дефолтное пустое значение на валидный UUID и меняем условие. (id = $4 OR $4= '00000000-0000-0000-0000-000000000000’)


Спасибо вам, за то что читали мой блог весь этот год. ❤️‍🔥
Поздравляю всех с наступающим Новым Годом🎄, ставьте лайки и подписывайтесь, в следующем году дело примет серьезные обороты!
👍15
Channel name was changed to «Грязный ноукодер»
Добро пожаловать на канал Грязного ноукодера

Что случилось?

Я делаю ребрендинг и начинаю прокачивать личный бренд. Вместе с этим я хочу выбросить из головы различные дурацкие принципы, сдерживающие меня от более публичной жизни и личностного роста.
Так повелось, что в моей семье и в условиях того места, где я жил, выделяться из толпы было зазорно и порою даже опасно. Поэтому будучи когда-то энергичным и открытым к миру, я навесил на себя множество ограничений, чтобы выжить в том суровом мире. Теперь, когда жизнь координально изменилась, пора меняться и мне.

Почему такое название?

Несмотря на мой сугобо технический контент, в жизни я совсем другой человек👀
Посудите сами - сейчас, когда меня просят рассказать о себе, я представляюсь так:

2019: работал бизнес-аналитиком
2020: работал в Integromat
2021: помогал делать немецкий стартап
2022: работал с инвестиционным фондом из США

Сухо, грустно, скучно. А что если так:

2012: слил первую 10ку на бинарных опционах
2014: придумывал стратегии для Forex
2015: полгода пытался математически переиграть букмекеров
2016: кардил через Paypal аккаунты
2019: создал сетку дропов для заработка на альфах
🔽
2022: все эти ранее накопленные навыки помогли мне с помощью ноукод обработать транзакций на $14 млн.

Стало интересней? А если я добавлю, что мне пришлось чистить следы за одним из 🍋 и мой бывший босс все еще под следствием в США? Думаю теперь вам будет о чем почитать 😏

А чтобы познакомиться еще ближе, предлагаю начать этот год с полезной личной встречи. Я буду рад пообщаться с вами и узнать на каком этапе ноукодерского пути вы находитесь, по возможности дам полезный совет и задам несколько вопросов, которые помогут вам выйти на следующий уровень в новом году.

Назначить встречу можно тут - https://calendly.com/lowcodingdev/networking
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍321
Как достичь стабильности в ноукоде?

Ответ на мой вчерашний призыв не заставил себя ждать и я уже успел созвониться с одним из своих подписчиков и обсудить его путь no-code разработчика.

Несмотря на весомый опыт в разработке, знание кода и английского языка (как по мне отличный набор для выхода на новый уровень), у него есть одна острая проблема. Эта проблема знакома большинству разработчиков и агентств - нет стабильного потока проектов. Невозможно строить планы и не сжигать нервные клетки, когда проекты то и дело появляются и исчезают в самый неподходящий момент.

Откуда же берется стабильность? Из большого потока задач. Ими вас может обеспечить агентство (продажники постоянно находят новые проекты), компания с растущим продуктом (рост = потребность в новых фичах) или же налаженный источник трафика (главное выстроить хорошую воронку).

1️⃣ Агентство. Вы можете создать свое🥲 или постучаться во все существующие агентства на российском/зарубежном рынке (не забывайте, что есть множество агентств на западе с русскими командами). Их можно найти на Clutch, Bubble, Airtable, Make, и в прочих списках.

2️⃣ Растущий продукт. Это компания с развивающимся бизнесом, использующая внешний или внутренний ИТ продукт . В зависимости от размера продукта вы можете получить должность разработчика в существующей команде или в одиночку тянуть на себе техническую часть продукта как фрилансер. Найти такое можно на досках с вакансиями (Linkedin, HH) или на биржах (Upwork, Fivver). Также, вы можете стать частью такого продукта, если создадите MVP и оно начнет приносить реальную пользу.

3️⃣ Источник трафика. Тут все гораздо сложнее, но надежнее. Вам нужно выстраивать собственную воронку с источником трафика и продуктом. Источники трафика - посты в соцсетях (Linkedin, TG), профильные статьи в онлайн журналах (VC.ru, habr), помощь в чатах комьюнити (TG, Facebook, Reddit, Linkedin), таргетированная реклама (Yandex, Google, IG), прочее (Avito🤨). Продукт - блог в тг, сайт, профиль на бирже или соцсети, где вы рассказываете о своей деятельности и призываете пользователя записаться на консультацию/оставить заявку с описанием проекта.

🔥 Бонус источник - ваши текущие клиенты. Самый мощный источник новых заказов для любого бизнеса - сарафанное радио. Выполните свою работу качественно, проявите заботу о клиенте и его продукте, и он будет советовать вас всем знакомым даже спустя несколько лет.

Кстати, этот подписчик ищет работу Bubble разработчика и вы можете связаться с ним напрямую - @pirueti

Если и вы хотите получить полезных советов или просто приятно поболтать, ставьте лайки и успевайте забронировать звонок тут - https://calendly.com/lowcodingdev/networking
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍5🔥3
Меня всегда интересовала корреляция «впахивания» и получаемых доходов.

С одной стороны примеры из соцсетей дразнят нас историями людей, которые работают по часу в день и путешествуют по всему миру.
С другой стороны успешные люди в интервью то и дело рассказывают про 10-12 часовые рабочие дни.

Сколько часов в день работаете вы работаете сейчас?
Пытаетесь ли вы работать больше или качественнее, чтобы выйти на новый уровень дохода?
🔥4
🎚️ Инструмент, который проложил мне путь к $5k в месяц на ноукоде.

3 года назад, до того, как я открыл для себя NoCode разработку — на протяжение года работал бизнес-аналитиком и хотел перетечь в сферу продакт-менеджмента.

Я такой человек, что если чем-то занимаюсь — мне важно досконально разобраться в предмете, поэтому я постоянно проходил курсы и посещал продуктовые конференции.

На одной из таких конференций меня зацепило выступление одного из основателей Зерокодера, который рассказывал про инструмент автоматизации “Make”.

Так как на работе я постоянно общался с предпринимателями и изучал их бизнес изнутри, у меня было четкое понимание, что основная проблема большинства — это неэффективные процессы.

Тогда меня осенило: Этот продукт по щелчку пальцев может улучшить любой бизнес

Пока компании растут им постоянно требуется улучшать процессы, а это неисчерпаемый рынок заказов, как следствие — денег.


Поэтому я быстро изучил этот инструмент и предложил на тот момент текущему работодателю связать CRM с Telegram.

Потом сделал автоматизированного ТГ-бота для друга.

Потом начал автоматизировать свою работу и личную жизнь, чтобы быстрее изучить английский язык и выйти на зарубежный рынок.

Удобно, правда?

Набравшись опыта, я начал делиться знаниями по Мейку в сообществе: отвечал на вопросы, помогал разобраться в инструменте и т.д.

Это принесло первых клиентов, которые платили по 20-50к за элементарные задачи (с некоторыми мы работаем до сих пор).

Дальше я вышел на Upwork и уже там, с помощью этого инструмента я начал работать с зарубежными заказчиками и вырос до дохода в $5к.

К чему это я?

Любой бизнес и по сей день имеет острую необходимость в автоматизации процессов.

А Make — это лучший инструмент в своем сегменте, который позволяет интегрировать тысячи сервисов через API и с легкостью автоматизировать маркетинг, продажи, операционку, HR, платежи, клиентскую поддержку и так далее.

Любой Ноукодер, у которого в арсенале есть этот инструмент — всегда будет крайне востребован на рынке и сможет зарабатывать от 100к, помогая бизнесу улучшать их процессы и расти.

— “Окей, грязный ноукодер Марк, а нам-то что с того?” — возможно спросишь ты.


А то, что при всей его эффективности, на рынке нет нормального обучения от профессионала и многие бывалые ноукодеры о нем даже не слышали🤷

И так как я был партнером этого инструмента и обучался непосредственно у тех, кто его разрабатывал — мне пришла идея.

Если увижу по реакциям, что вам зашло — проведу онлайн-урок, в котором на атомы разложу этот инструмент и покажу, какие боевые задачи бизнеса я им решал и как им пользоваться.

По итогу этого урока вы сможете начать брать заказы на автоматизацию любых процессов.

30🔥 под постом и я готовлю урок, договорились?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥67
Жесть…

Очень быстро собрали 30 огней🔥🤝

Для меня очень ценно видеть вашу тягу к практическим знаням, я сам был и остаюсь таким же.

Уже сел готовить для вас структуру урока, чтобы выжать 140% процентов пользы.

Как попасть на урок — расскажу завтра.
🔥13🤝81
Пост искренности.

Регистрация на урок

Последние несколько месяцев я делился прикладными знаниями из мира ноукод, благодаря которым многие из вас смогли вырасти в профессиональном плане.

Несмотря на то, что я интроверт, у меня всегда была острая тяга к знаниям и желание помочь окружающим познать этот мир.

Я репетиторствовал различные предметы, давал лекции в школе по финансовой грамотности, бесплатно консультировал людей.

Я верю в то, что все границы лишь у нас в голове, и каждый способен обуздать любое знание, каким бы сложным оно не казалось.

Также я верю в индивидуальный подход - каждый человек видит и понимает этот мир по-своему, и каждому требуется “переводчик”, который преподнесет знания в правильной форме.

Так сложилось, что я обладаю такими навыками и моя супер-сила: объяснять людям сложные вещи простым языком.


Но чтобы использовать этот навык и делать каждый пост релевантным и полезным для вас, мне нужно узнать вас получше.

Поэтому предлагаю уделить 5 минут, заполнить анкету и ответить на несколько вопросов и в благодарность за доверие и уделенное время, после заполнения анкеты — вас будет ожидать ссылка-регистрация на урок по автоматизации в Make, который я проведу завтра, в 17:00 (МСК), в зуме.

Всем, кто не сможет присоединиться в это время я отправлю запись на почту.


Ответить на вопросы и зарегистрироваться на урок можно по ссылке: https://airtable.com/appHwXgLVrBujox4J/pagJQrqEjY7RuNhdP/form
🔥10
Всем привет!

Весь день готовлюсь к предстоящему уроку по автоматизации в Make, на который записалось уже 20 человек.

С каждым часом в голове всплывает все больше инсайтов и кажется что и двух часов не хватит, чтобы всех их покрыть.

Кто еще не успел прочитать последний пост в канале, заполнить анкету и зарегистрироваться на урок — успевайте, так как времени осталось совсем немного.

Даже если вы не сможете принять участие в уроке — я все равно пришлю его запись на почту.

А пока оставляю вам план урока, до встреч в 17:00 по МСК.
🔥13💔2
Спасибо всем, кто поучаствовал на вчерашнем уроке и заполнил анкету!🔥

Я внимательно изучил ваши запросы и сделал вывод, что ваша основная точка интереса — это вырасти в уровне дохода.

У меня есть много чем поделиться на эту тему, так как сам прошел каждый шаг на пути с 0 до $5’000 на ноукоде и понимаю, как прийти к этому результату кратчайшим маршрутом.

Сейчас я рассылаю всем запись урока вместе с презентацией (вы еще успеваете получить ее, заполнив анкету).

Также я добавил туда дополнительных ссылок и домашнее задание разной сложности.

Кто был на уроке — напишите, как вам?

Буду благодарен за обратную связь в комментариях
10👍2🔥1
Решил подвести итоги прошлого года: лучше поздно, чем никогда.

Лучший инструмент для саморазвития - рефлексия.


Очень важно уметь останавливаться и анализировать пройденный путь.

Надеюсь мои достижения вдохновят вас поставить свои амбициозные цели и достичь их в новом году.

🏆Как и предыдущие 3 года, этот — стал для меня рекордным.

В 2023 году я получил под управление сложный проект с ежемесячным бюджетом на команду в $20к.

С помощью него я смог довести свой доход до $7к в месяц и обеспечить своих друзей высокооплачиваемыми местами в команде.

Но деньги для меня не самоцель.

Они безусловно важны, но для меня — это лишь инструмент, чтобы получать эмоции, путешествовать и познавать мир, помогать своим близким, жить в комфортных условиях и так далее.

Поэтому, за 2023 год я очень много путешествовал и посетил несколько стран:

🇬🇪Грузия. Тбилиси.

Я затащил туда своих друзей, как когда-то затащил их в ноукод.

Мы катались по горам на арендованном Камаро, а на мой день рождение выбрались на экскурсию в Казбеги.

Далее я продолжил свой путь один и поехал закрывать гештальт, появившийся после посещения Шри-Ланки.

🇮🇩Бали. Убуд.

Мой план на Бали включал в себя серфинг и живописные закаты, но для начала я решил поселиться в спокойном Убуде, чтобы восстановиться духовно.

К сожалению, это место мне не пришлось по вкусу и возросшая нагрузка на работе потянула меня в каменные джунгли, где можно было зарядиться энергией большого города.

🇹🇼Тайланд. Бангкок.

В Таиланде было жарко, но по-своему уютно. Я гонял на работу в Wework на байке и впитывал дух азиатского мегаполиса.

Далее я стоял перед выбором - пробираться в Европу через Черногорию или отправиться на дальние берега. И я решил рискнуть…

🇦🇷Аргентина. Буэнос-Айрес.

Пожалуй, это лучшее место, где я был. Еда, воздух, люди, архитектура - все прекрасно.

Я люблю концерты, но до этого момента был лишь на паре из них. В Аргентине я оторвался по полной - был на Weeknd’e и 21pilots, а Drake и Billy Eillish решил обойти стороной.

Сюда ко мне прилетели девушка и соскучившийся друг-ноукодер, с которым мы отдыхали в Грузии.

Какое-то время мы исследовали БА вместе, но потом ему наскучило и он улетел в Рио.

Вскоре и мы последовали за ним.

🇲🇽Мексика. Тулум

Рио показался диким и мы догнали друга в Тулуме на белоснежном пляже Карибского моря.

Оказалось, что всего в паре часов от нас располагается Чичен-Ица. Мы вместе посетили ее и покупались в сеноте (пещера-колодец), в которую древние племена Маяй возможно скидывали своих жертв 🥲

Потом я почувствовал тоску по дому и отправился обратно, в Кемерово, чтобы встретить новый год в кругу родных.

***

В суете буден все путешествия кажутся рутиной и зачастую ты не успеваешь осознать происходящее и прочувствовать момент.

Сейчас, пока я писал этот пост — заново пережил эти моменты и понял сколько удивительных событий произошло со мной за прошедший год.

В моем детстве удаленной работы не существовало и о такой жизни можно было только мечтать.

Возможно стремление к чему-то новому, свободе и путешествиям подсознательно подтолкнуло меня сделать выбор в сторону зарождающегося тогда ноукода, который в итоге привел меня в ту точку, где я нахожусь сейчас.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥752
Совсем забыл, что хотел визуализировать вчерашний рассказ 😅
🔥52
Цели и целеполагание🎯

Достижение новых горизонтов не является случайностью, даже чтобы случайно открыть Америку вам нужно как минимум поставить цель добраться до Индии.

Цели важны, чтобы не сбиваться с пути, и могут быть поставлены не только в явном виде, но и на подсознании.


Я с детства мечтал путешествовать и любил игры про пиратов, где нужно было бороздить Карибское море на 3-х мачтовом фрегате.

Случайность ли, что в 18 лет я набил на руке корабль с названием «Свобода», а в 27 — добрался до того самого моря?

Несколько лет назад я изучал свои финансы и заметил, что мой годовой доход увеличивается в 2 раза каждый год.

Случайность ли, что это продолжается до сих пор и каждый год я набираю обороты?

Вопрос риторический.

Цель сама по себе является навязчивой идеей, а идеи живут у нас в головах огромными стаями и под их влиянием, ежедневно, мы принимаем сотни решений, сами того не осознавая.


Поэтому очень важно время от времени ставить конкретные цели и визуализировать их у себя в голове, чтобы они поселялись там и помогали идти вам в нужном направлении.

Одной из техник, которая помогает ставить цели, является SMART, но вернемся к ней чуть позже, сначала хочу поделиться своими целями на 2024 год.

1) Выйти на доход $10’000 на ноукоде до 31.12.2024.

Многим это может показаться чем-то фантастическим, но для агентств в США это минимальная сумма, за которую делаются простейшие решения, нужно только оседлать их культуру продаж.

2) Переехать жить в Европу до 01.06.2024

Проведя почти год в Буенос-Айресе, я понял что хочу жить в подобном месте, но которое будет ближе к моему дому и культурным столицам мира.

3) Помочь 30 ноукодерам выйти на желаемые $3000 до 31.12.2024.

Одними из популярных целей, которые я увидел после анализа анкет, являются увеличение дохода (±$3k) и последующая его трата на семью, путешествия и давние мечты.

Несколько таких целей уже сбылись у моих 2 друзей, которых я “подсадил” на ноукод пару лет назад, и кажется, я могу сделать еще больше людей счастливыми, пройдя протоптанной дорожкой.

Это основные цели на будущий год, которые я ставил по технологии SMART, которая заключается в следующем:

S - Specific (Конкретность): Цель должна быть чётко и ясно сформулирована

M - Measurable (Измеримость): Цель должна быть измеримой, то есть должны быть чёткие критерии для отслеживания прогресса и определения, когда цель будет достигнута

A - Achievable (Достижимость): Цель должна быть реалистичной и достижимой с учётом имеющихся ресурсов и ограничений

R - Relevant (Релевантность): Цель должна быть значимой и актуальной для вас или вашей организации

T - Time-bound (Ограниченность во времени): У цели должен быть чёткий временной рамки

А какие цели вы поставили для себя на 2024 год?

Если еще не успели подумать об этом, попробуйте расписать свою цель в комментариях по технологии SMART.
🔥9👍2❤‍🔥1
7 советов как обезопасить Bubble приложение

На выходных я созвонился с бывшим боссом и он предложил мне повторить разработанную нами систему для нового инвестфонда. Я задумался о том, что хочу сделать новую систему более безопасной и эффективной и для этого составил список вещей, которые нужно не забыть применить при разработке системы в Bubble.

1️⃣ Скрывайте URL запросов в API Connector. Вместо URL может быть указан как параметр [url], в котором будет записан нужный URL с галочкой Private, что позволит скрыть его на фронте для пользователя. Так как я делаю запросы для бекенд процессов в Make мне требуется скрыть эти URL (чтобы не задуддосили 🥲) и настраивать дополнительный внутренний API ключ.

2️⃣ Отключите Swagger file в настройках, иначе у злоумышленников будет полная карта вашего приложения.

3️⃣ Установите 2FA для пользователей. Это можно сделать с помощью функционала Bubble (при наличии плана Production) или с помощью стороннего плагина. Также установите Password policy в настройках, чтобы усилить пароли пользователей.

4️⃣ Исправьте backend workflows без аутентификации, все должно запускаться изнутри приложения или используя API ключ.

5️⃣ Восстановление пароля должно проходить на бекенде - если делать это на фронте, вы производите поиск по базе в открытую и в инструменте разработчика (F12) можно будет увидеть результат этого поиска вместе с новым паролем.

6️⃣ Проверьте Privacy Rules в Data - каждый пользователь должен иметь доступ только к своим данным. Если у вас есть админ панель для управления данными всех пользователей, то установите соответствующую роль для админа. Если вы хотите использовать данные по API, то пользуйтесь API ключом и ограничьте Find this in searches для Everyone else.

7️⃣ Установите галочку Make this file private для всех inputов с файлами и картинками.

Ставьте лайк и подписывайтесь, завтра я выпущу статью на VC по мотивам моего прошлогоднего поста - посмотрим что изменилось после моего разговора с основателем Betterlegal в Twitter, какие данные не прикрыли компании из зала славы Bubble и как найти ID приложения, если Swagger документацию скрыли.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍5🥰3