TGViewer
Женя, расскажи про AI Женя, расскажи про AI @that_ai_guy · 375 subscribers
Post #41 215
Чем глубже я погружаюсь в то, как устроен Notion, тем больше мне кажется, что его создал безумный гений.

Есть такая игра Prince of Persia, 1989 года выпуска. Её создал всего один человек, и это технический шедевр, а также игра, которой не должно существовать, во всяком случае не в том виде, в котором она существует.

Джордан Мекнер в свои 25 лет сотворил что-то невозможное и создал сложную игру, которая даже спустя 36 лет с момента создания выглядит неплохо, при том что для её запуска требовались всего 4 килобайта оперативной памяти и 1 мегагерцовый процессор Apple II. Полную историю создания смотрите здесь.

Как связаны Prince of Persia (1989) и Notion (2016)? Оба не должны существовать.

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

В нашем мире ужасной конкуренции, где есть:
- Десяток «ТикТоков»: Youtube Shorts, Instagram Reels, Snapchat Spotlight, Likee, VK Клипы и другие.
- Миллион дейтингов: Tinder, Badoo, Bumble, Hinge, Pure, Grindr, Mamba, LovePlanet — на любой вкус и цвет.
- Бесконечное количество разных моделей: ChatGPT, Claude, Gemini, Llama, Grok, DeepSeek, Qwen...

При этом Notion будто в отдельной лиге. Кто его конкуренты?
Coda? Слишком урезанная и багованная.
Obsidian? Борется за другой рынок.
Buildin? Поделка на коленке в попытке захватить часть рынка, которая освободилась благодаря санкциям.

У Notion нет конкурентов.

И это напрямую связано с его сложностью: Notion тупо почти нереально скопировать. Это удивительный продукт. В мире, где банальные баги в банальных продуктах не фиксятся годами, у нас есть доступ к невероятно сложному сервису, который по большей части работает идеально.

Ребята из Notion не идут на компромиссы: они хотели сделать идеальный редактор — они его сделали. Notion — это проект мечты, над которым работали ночами.

Это видно даже в таких мелочах, как фейковое выделение.

В чём суть? Редактирование в Notion — это костыль. Когда создатели HTML-спеки давали возможность редактировать стандартные HTML-блоки, то никто не мог предположить, что через 20 лет на основе этой идеи появится Notion, в связи с чем даже самые базовые взаимодействия приходится создавать самостоятельно.

Но ребятам из Notion было глубоко пофиг, ведь они делали проект мечты. Так что, когда они встретились с очередной проблемой редактируемых блоков, а она заключалась в том, что стандартное браузерное выделение сбрасывалось, когда открывалось поле для ввода ссылки, они просто сделали фейковое выделение...

И может показаться, что в том, чтобы нарисовать прямоугольник позади текста, имитирующий выделение, нет ничего сложного, и это действительно так. Но когда ты понимаешь, что у этого прямоугольника нельзя задать фиксированную высоту, в связи с чем приходится рисовать его с помощью теней. При этом тени должны быть не в высоту текста, а в высоту строки, потому что браузерное выделение рисуется в высоту строки. Также тени нельзя просто взять и нарисовать позади текста, так что отдельно под высоту текста нужно рисовать отдельный прямоугольник, а вокруг него — идеально прилегающие тени. Если немного промохнёшься, получишь либо дырки, либо наложение полупрозрачных прямоугольников друг на друга... а потом ты вспоминаешь, что у тебя есть элементы разной высоты в проекте, и сами пользователи могут поменять размер шрифта, поэтому вычислять нужно динамически. Но, выдохнув и пройдя весь ад, ты понимаешь, что твоё решение не работает, если пользователь выделелил несколько строк вместо одной, и тебе нужно переделывать его, чтобы учесть этот сценарий.

Как я узнал обо всём этом? Я реализовал почти идентичную логику в Blok. Если сравнивать браузерное выделение и выделение в Blok под лупой, можно увидеть небольшия отличия. А в Notion — нет. Сколько я ни пытался, я не увидел разницы.

Вот именно из-за такого подхода у нас никогда не будет второго Notion. Разве что какой-то другой безумец не доведёт до идеала один свой open-source проект.
  • 🔥 7
  • ❤ 3
  • 👍 2
More from @that_ai_guy
  1. Mar 13, 2026AlphaEvolve от Google DeepMind открыла новые нижние оценки для чисел Рамсея, улучшив резул…
  2. Mar 12, 2026В продолжение постов об исследованиях от METR На скриншоте — количество задач, которые мы…
  3. Mar 9, 2026Мы получили Cyberpunk 2077 в реальной жизни до выхода GTA 6 Помните бреиндансы из Cyberpun…
  4. Mar 7, 2026Кринж-METR 2/2 10 июля 2025 года METR выпускает новое исследование «Measuring the Impact o…
  5. Mar 7, 2026Кринж-METR 1/2 Есть такая организация, и вы сто процентов о ней слышали, если последний го…
  6. Mar 6, 2026Про качество кода от моделей Сегодня на созвоне вскользь поднимали тему качества кода от м…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →