Если клиент просит добавить фичу (за деньги), которая заведомо не имеет продуктовой значимости, основана на чистом желании клиента и не будет использоваться, вы добавите ее не обсуждая или попытаетесь доказать, что она не нужна?
Почему? (мотивация может быть разной - деньги, время, принципы и тд)
Почему? (мотивация может быть разной - деньги, время, принципы и тд)
Сегодня я поделюсь лайфхаками по работе с 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
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’)
Спасибо вам, за то что читали мой блог весь этот год. ❤️🔥
Поздравляю всех с наступающим Новым Годом🎄, ставьте лайки и подписывайтесь, в следующем году дело примет серьезные обороты!
Продолжаем говорить о 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’)
Спасибо вам, за то что читали мой блог весь этот год. ❤️🔥
Поздравляю всех с наступающим Новым Годом🎄, ставьте лайки и подписывайтесь, в следующем году дело примет серьезные обороты!
Telegram
.DEV | No/low-code agency
Недавно мы сделали интеграцию между Bubble и AWS RDS и хотели бы поделиться с вами ценными советами, которые мы не смогли найти в Интернете.
Совет дня (Bubble — SQL-запрос):
Используйте NULLIF($1, '') в запросах UPDATE/INSERT, чтобы избежать пустых текстовых…
Совет дня (Bubble — SQL-запрос):
Используйте NULLIF($1, '') в запросах UPDATE/INSERT, чтобы избежать пустых текстовых…
👍15
Добро пожаловать на канал Грязного ноукодера
Что случилось?
Я делаю ребрендинг и начинаю прокачивать личный бренд. Вместе с этим я хочу выбросить из головы различные дурацкие принципы, сдерживающие меня от более публичной жизни и личностного роста.
Так повелось, что в моей семье и в условиях того места, где я жил, выделяться из толпы было зазорно и порою даже опасно. Поэтому будучи когда-то энергичным и открытым к миру, я навесил на себя множество ограничений, чтобы выжить в том суровом мире. Теперь, когда жизнь координально изменилась, пора меняться и мне.
Почему такое название?
Несмотря на мой сугобо технический контент, в жизни я совсем другой человек👀
Посудите сами - сейчас, когда меня просят рассказать о себе, я представляюсь так:
2019: работал бизнес-аналитиком
2020: работал в Integromat
2021: помогал делать немецкий стартап
2022: работал с инвестиционным фондом из США
Сухо, грустно, скучно. А что если так:
2012: слил первую 10ку на бинарных опционах
2014: придумывал стратегии для Forex
2015: полгода пытался математически переиграть букмекеров
2016: кардил через Paypal аккаунты
2019: создал сетку дропов для заработка на альфах
🔽
2022: все эти ранее накопленные навыки помогли мне с помощью ноукод обработать транзакций на $14 млн.
Стало интересней? А если я добавлю, что мне пришлось чистить следы за одним из 🍋 и мой бывший босс все еще под следствием в США? Думаю теперь вам будет о чем почитать😏
А чтобы познакомиться еще ближе, предлагаю начать этот год с полезной личной встречи. Я буду рад пообщаться с вами и узнать на каком этапе ноукодерского пути вы находитесь, по возможности дам полезный совет и задам несколько вопросов, которые помогут вам выйти на следующий уровень в новом году.
Назначить встречу можно тут - https://calendly.com/lowcodingdev/networking
Что случилось?
Я делаю ребрендинг и начинаю прокачивать личный бренд. Вместе с этим я хочу выбросить из головы различные дурацкие принципы, сдерживающие меня от более публичной жизни и личностного роста.
Так повелось, что в моей семье и в условиях того места, где я жил, выделяться из толпы было зазорно и порою даже опасно. Поэтому будучи когда-то энергичным и открытым к миру, я навесил на себя множество ограничений, чтобы выжить в том суровом мире. Теперь, когда жизнь координально изменилась, пора меняться и мне.
Почему такое название?
Несмотря на мой сугобо технический контент, в жизни я совсем другой человек
Посудите сами - сейчас, когда меня просят рассказать о себе, я представляюсь так:
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👍3⚡2❤1
Как достичь стабильности в ноукоде?
Ответ на мой вчерашний призыв не заставил себя ждать и я уже успел созвониться с одним из своих подписчиков и обсудить его путь 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
Ответ на мой вчерашний призыв не заставил себя ждать и я уже успел созвониться с одним из своих подписчиков и обсудить его путь no-code разработчика.
Несмотря на весомый опыт в разработке, знание кода и английского языка (как по мне отличный набор для выхода на новый уровень), у него есть одна острая проблема. Эта проблема знакома большинству разработчиков и агентств - нет стабильного потока проектов. Невозможно строить планы и не сжигать нервные клетки, когда проекты то и дело появляются и исчезают в самый неподходящий момент.
Откуда же берется стабильность? Из большого потока задач. Ими вас может обеспечить агентство (продажники постоянно находят новые проекты), компания с растущим продуктом (рост = потребность в новых фичах) или же налаженный источник трафика (главное выстроить хорошую воронку).
1️⃣ Агентство. Вы можете создать свое
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 часовые рабочие дни.
Сколько часов в день работаете вы работаете сейчас?
Пытаетесь ли вы работать больше или качественнее, чтобы выйти на новый уровень дохода?
С одной стороны примеры из соцсетей дразнят нас историями людей, которые работают по часу в день и путешествуют по всему миру.
С другой стороны успешные люди в интервью то и дело рассказывают про 10-12 часовые рабочие дни.
Сколько часов в день работаете вы работаете сейчас?
Пытаетесь ли вы работать больше или качественнее, чтобы выйти на новый уровень дохода?
🔥4
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
Пост искренности.
Регистрация на урок⏬
Последние несколько месяцев я делился прикладными знаниями из мира ноукод, благодаря которым многие из вас смогли вырасти в профессиональном плане.
Несмотря на то, что я интроверт, у меня всегда была острая тяга к знаниям и желание помочь окружающим познать этот мир.
Я репетиторствовал различные предметы, давал лекции в школе по финансовой грамотности, бесплатно консультировал людей.
Я верю в то, что все границы лишь у нас в голове, и каждый способен обуздать любое знание, каким бы сложным оно не казалось.
Также я верю в индивидуальный подход - каждый человек видит и понимает этот мир по-своему, и каждому требуется “переводчик”, который преподнесет знания в правильной форме.
Но чтобы использовать этот навык и делать каждый пост релевантным и полезным для вас, мне нужно узнать вас получше.
Поэтому предлагаю уделить 5 минут, заполнить анкету и ответить на несколько вопросов и в благодарность за доверие и уделенное время, после заполнения анкеты — вас будет ожидать ссылка-регистрация на урок по автоматизации в Make, который я проведу завтра, в 17:00 (МСК), в зуме.
⏩Ответить на вопросы и зарегистрироваться на урок можно по ссылке: https://airtable.com/appHwXgLVrBujox4J/pagJQrqEjY7RuNhdP/form
Последние несколько месяцев я делился прикладными знаниями из мира ноукод, благодаря которым многие из вас смогли вырасти в профессиональном плане.
Несмотря на то, что я интроверт, у меня всегда была острая тяга к знаниям и желание помочь окружающим познать этот мир.
Я репетиторствовал различные предметы, давал лекции в школе по финансовой грамотности, бесплатно консультировал людей.
Я верю в то, что все границы лишь у нас в голове, и каждый способен обуздать любое знание, каким бы сложным оно не казалось.
Также я верю в индивидуальный подход - каждый человек видит и понимает этот мир по-своему, и каждому требуется “переводчик”, который преподнесет знания в правильной форме.
Так сложилось, что я обладаю такими навыками и моя супер-сила: объяснять людям сложные вещи простым языком.
Но чтобы использовать этот навык и делать каждый пост релевантным и полезным для вас, мне нужно узнать вас получше.
Поэтому предлагаю уделить 5 минут, заполнить анкету и ответить на несколько вопросов и в благодарность за доверие и уделенное время, после заполнения анкеты — вас будет ожидать ссылка-регистрация на урок по автоматизации в Make, который я проведу завтра, в 17:00 (МСК), в зуме.
Всем, кто не сможет присоединиться в это время я отправлю запись на почту.
⏩Ответить на вопросы и зарегистрироваться на урок можно по ссылке: https://airtable.com/appHwXgLVrBujox4J/pagJQrqEjY7RuNhdP/form
🔥10
Всем привет!
Весь день готовлюсь к предстоящему уроку по автоматизации в Make, на который записалось уже 20 человек.
С каждым часом в голове всплывает все больше инсайтов и кажется что и двух часов не хватит, чтобы всех их покрыть.
Кто еще не успел прочитать последний пост в канале, заполнить анкету и зарегистрироваться на урок — успевайте, так как времени осталось совсем немного.
Даже если вы не сможете принять участие в уроке — я все равно пришлю его запись на почту.
А пока оставляю вам план урока, до встреч в 17:00 по МСК.
Весь день готовлюсь к предстоящему уроку по автоматизации в Make, на который записалось уже 20 человек.
С каждым часом в голове всплывает все больше инсайтов и кажется что и двух часов не хватит, чтобы всех их покрыть.
Кто еще не успел прочитать последний пост в канале, заполнить анкету и зарегистрироваться на урок — успевайте, так как времени осталось совсем немного.
Даже если вы не сможете принять участие в уроке — я все равно пришлю его запись на почту.
А пока оставляю вам план урока, до встреч в 17:00 по МСК.
🔥13💔2
Спасибо всем, кто поучаствовал на вчерашнем уроке и заполнил анкету!🔥
Я внимательно изучил ваши запросы и сделал вывод, что ваша основная точка интереса — это вырасти в уровне дохода.
У меня есть много чем поделиться на эту тему, так как сам прошел каждый шаг на пути с 0 до $5’000 на ноукоде и понимаю, как прийти к этому результату кратчайшим маршрутом.
Сейчас я рассылаю всем запись урока вместе с презентацией (вы еще успеваете получить ее, заполнив анкету).
Также я добавил туда дополнительных ссылок и домашнее задание разной сложности.
Кто был на уроке — напишите, как вам?
Буду благодарен за обратную связь в комментариях⏬
Я внимательно изучил ваши запросы и сделал вывод, что ваша основная точка интереса — это вырасти в уровне дохода.
У меня есть много чем поделиться на эту тему, так как сам прошел каждый шаг на пути с 0 до $5’000 на ноукоде и понимаю, как прийти к этому результату кратчайшим маршрутом.
Сейчас я рассылаю всем запись урока вместе с презентацией (вы еще успеваете получить ее, заполнив анкету).
Также я добавил туда дополнительных ссылок и домашнее задание разной сложности.
Кто был на уроке — напишите, как вам?
Буду благодарен за обратную связь в комментариях⏬
⚡10👍2🔥1
Решил подвести итоги прошлого года: лучше поздно, чем никогда.
Очень важно уметь останавливаться и анализировать пройденный путь.
Надеюсь мои достижения вдохновят вас поставить свои амбициозные цели и достичь их в новом году.
🏆Как и предыдущие 3 года, этот — стал для меня рекордным.
В 2023 году я получил под управление сложный проект с ежемесячным бюджетом на команду в $20к.
С помощью него я смог довести свой доход до $7к в месяц и обеспечить своих друзей высокооплачиваемыми местами в команде.
Но деньги для меня не самоцель.
Они безусловно важны, но для меня — это лишь инструмент, чтобы получать эмоции, путешествовать и познавать мир, помогать своим близким, жить в комфортных условиях и так далее.
Поэтому, за 2023 год я очень много путешествовал и посетил несколько стран:
🇬🇪Грузия. Тбилиси.
Я затащил туда своих друзей, как когда-то затащил их в ноукод.
Мы катались по горам на арендованном Камаро, а на мой день рождение выбрались на экскурсию в Казбеги.
Далее я продолжил свой путь один и поехал закрывать гештальт, появившийся после посещения Шри-Ланки.
🇮🇩Бали. Убуд.
Мой план на Бали включал в себя серфинг и живописные закаты, но для начала я решил поселиться в спокойном Убуде, чтобы восстановиться духовно.
К сожалению, это место мне не пришлось по вкусу и возросшая нагрузка на работе потянула меня в каменные джунгли, где можно было зарядиться энергией большого города.
🇹🇼Тайланд. Бангкок.
В Таиланде было жарко, но по-своему уютно. Я гонял на работу в Wework на байке и впитывал дух азиатского мегаполиса.
Далее я стоял перед выбором - пробираться в Европу через Черногорию или отправиться на дальние берега. И я решил рискнуть…
🇦🇷Аргентина. Буэнос-Айрес.
Пожалуй, это лучшее место, где я был. Еда, воздух, люди, архитектура - все прекрасно.
Я люблю концерты, но до этого момента был лишь на паре из них. В Аргентине я оторвался по полной - был на Weeknd’e и 21pilots, а Drake и Billy Eillish решил обойти стороной.
Сюда ко мне прилетели девушка и соскучившийся друг-ноукодер, с которым мы отдыхали в Грузии.
Какое-то время мы исследовали БА вместе, но потом ему наскучило и он улетел в Рио.
Вскоре и мы последовали за ним.
🇲🇽Мексика. Тулум
Рио показался диким и мы догнали друга в Тулуме на белоснежном пляже Карибского моря.
Оказалось, что всего в паре часов от нас располагается Чичен-Ица. Мы вместе посетили ее и покупались в сеноте (пещера-колодец), в которую древние племена Маяй возможно скидывали своих жертв🥲
Потом я почувствовал тоску по дому и отправился обратно, в Кемерово, чтобы встретить новый год в кругу родных.
***
В суете буден все путешествия кажутся рутиной и зачастую ты не успеваешь осознать происходящее и прочувствовать момент.
Сейчас, пока я писал этот пост — заново пережил эти моменты и понял сколько удивительных событий произошло со мной за прошедший год.
В моем детстве удаленной работы не существовало и о такой жизни можно было только мечтать.
Возможно стремление к чему-то новому, свободе и путешествиям подсознательно подтолкнуло меня сделать выбор в сторону зарождающегося тогда ноукода, который в итоге привел меня в ту точку, где я нахожусь сейчас.
Лучший инструмент для саморазвития - рефлексия.
Очень важно уметь останавливаться и анализировать пройденный путь.
Надеюсь мои достижения вдохновят вас поставить свои амбициозные цели и достичь их в новом году.
🏆Как и предыдущие 3 года, этот — стал для меня рекордным.
В 2023 году я получил под управление сложный проект с ежемесячным бюджетом на команду в $20к.
С помощью него я смог довести свой доход до $7к в месяц и обеспечить своих друзей высокооплачиваемыми местами в команде.
Но деньги для меня не самоцель.
Они безусловно важны, но для меня — это лишь инструмент, чтобы получать эмоции, путешествовать и познавать мир, помогать своим близким, жить в комфортных условиях и так далее.
Поэтому, за 2023 год я очень много путешествовал и посетил несколько стран:
🇬🇪Грузия. Тбилиси.
Я затащил туда своих друзей, как когда-то затащил их в ноукод.
Мы катались по горам на арендованном Камаро, а на мой день рождение выбрались на экскурсию в Казбеги.
Далее я продолжил свой путь один и поехал закрывать гештальт, появившийся после посещения Шри-Ланки.
🇮🇩Бали. Убуд.
Мой план на Бали включал в себя серфинг и живописные закаты, но для начала я решил поселиться в спокойном Убуде, чтобы восстановиться духовно.
К сожалению, это место мне не пришлось по вкусу и возросшая нагрузка на работе потянула меня в каменные джунгли, где можно было зарядиться энергией большого города.
🇹🇼Тайланд. Бангкок.
В Таиланде было жарко, но по-своему уютно. Я гонял на работу в Wework на байке и впитывал дух азиатского мегаполиса.
Далее я стоял перед выбором - пробираться в Европу через Черногорию или отправиться на дальние берега. И я решил рискнуть…
🇦🇷Аргентина. Буэнос-Айрес.
Пожалуй, это лучшее место, где я был. Еда, воздух, люди, архитектура - все прекрасно.
Я люблю концерты, но до этого момента был лишь на паре из них. В Аргентине я оторвался по полной - был на Weeknd’e и 21pilots, а Drake и Billy Eillish решил обойти стороной.
Сюда ко мне прилетели девушка и соскучившийся друг-ноукодер, с которым мы отдыхали в Грузии.
Какое-то время мы исследовали БА вместе, но потом ему наскучило и он улетел в Рио.
Вскоре и мы последовали за ним.
🇲🇽Мексика. Тулум
Рио показался диким и мы догнали друга в Тулуме на белоснежном пляже Карибского моря.
Оказалось, что всего в паре часов от нас располагается Чичен-Ица. Мы вместе посетили ее и покупались в сеноте (пещера-колодец), в которую древние племена Маяй возможно скидывали своих жертв
Потом я почувствовал тоску по дому и отправился обратно, в Кемерово, чтобы встретить новый год в кругу родных.
***
В суете буден все путешествия кажутся рутиной и зачастую ты не успеваешь осознать происходящее и прочувствовать момент.
Сейчас, пока я писал этот пост — заново пережил эти моменты и понял сколько удивительных событий произошло со мной за прошедший год.
В моем детстве удаленной работы не существовало и о такой жизни можно было только мечтать.
Возможно стремление к чему-то новому, свободе и путешествиям подсознательно подтолкнуло меня сделать выбор в сторону зарождающегося тогда ноукода, который в итоге привел меня в ту точку, где я нахожусь сейчас.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥7❤5⚡2
Совсем забыл, что хотел визуализировать вчерашний рассказ 😅
🔥5❤2
Цели и целеполагание🎯
Достижение новых горизонтов не является случайностью, даже чтобы случайно открыть Америку вам нужно как минимум поставить цель добраться до Индии.
Я с детства мечтал путешествовать и любил игры про пиратов, где нужно было бороздить Карибское море на 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.
Достижение новых горизонтов не является случайностью, даже чтобы случайно открыть Америку вам нужно как минимум поставить цель добраться до Индии.
Цели важны, чтобы не сбиваться с пути, и могут быть поставлены не только в явном виде, но и на подсознании.
Я с детства мечтал путешествовать и любил игры про пиратов, где нужно было бороздить Карибское море на 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 документацию скрыли.
На выходных я созвонился с бывшим боссом и он предложил мне повторить разработанную нами систему для нового инвестфонда. Я задумался о том, что хочу сделать новую систему более безопасной и эффективной и для этого составил список вещей, которые нужно не забыть применить при разработке системы в Bubble.
1️⃣ Скрывайте URL запросов в API Connector. Вместо URL может быть указан как параметр [url], в котором будет записан нужный URL с галочкой Private, что позволит скрыть его на фронте для пользователя. Так как я делаю запросы для бекенд процессов в Make мне требуется скрыть эти URL (чтобы не задуддосили
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