MaxSite.org 20 лет!

28-02-2026Время чтения ~ 13 мин.Блог 30

Хотя сайт я сделал в далёком 2006 году, но и до этого у меня были разные web-проекты, которые имели своё влияние. Немного окунёмся в историю. 😉

MaxSite.org 20 лет!

Предыстория

Сайты того времени представляли собой, как правило, статичные html-странички. Свой первый сайт я сделал в 1998 году на зарубежном бесплатном хостинге. Где-то в начале 2000-х на серверах стал доступен PHP, а вот MySQL был большой редкостью. Я помню, что делал форум, так все сообщения хранились в текстовом файле. Когда файл стал под 1 мегабайт (по тем временам гигантский размер), я написал хостеру (кажется это был h1.ru) и они дали мне доступ к базе MySQL, на который я и переписал «движок» форума.

Но в целом всё происходило через «голый» HTML. Раньше сайты делались в индивидуальном порядке через личные встречи. Поскольку я в то время много программировал, то придумал программу, которая хранила весь сайт в виде одного файла. Была (она и сейчас легко гуглится) такая программка TreePad Lite, где используется древовидная структура данных и именно она меня вдохновила на написание своего варианта.

Идея программы была в том, чтобы весь сайт организовать в виде «дерева», указать настройки, а потом одной кнопкой программа собирает всё в html-файлы. После можно было через встроенный ftp-клиент загрузить на сервер. Фактически программа выполняла роль CMS, только без браузера. Это не какая-то прихоть, просто на тот момент не было вменяемых CMS, поэтому нужно было что-то самому изобретать.

Где-то в 2004 я впервые познакомился с WordPress. Это была версия 1.2, которую я долго пытался запустить, но полноценно она так и не заработала. Поэтому я продолжал делать сайты через свою программу, но при этом уже смотрел в сторону PHP как основу.

Когда появился WordPress 1.5 (2005 год), то он у меня сразу «завёлся» и тогда я много времени потратил на изучение того как он работает, как устроены шаблоны, плагины и т.д. Фактически WordPress выполнял то, что и делала моя программа.

Правда была одна проблема — это кодировка. Рунет того времени был в КОИ-8 и Win-1251, про юникод или UTF8 никто и не слышал. Поэтому WordPress имел огромные проблемы с кириллицей самого сайта и с кодировкой базы MySQL. То есть могло быть так, что сайт работает на Win-1251, а база работала на КОИ-8. Потом, когда сайты всё-таки мигрировали на UTF8, то базы продолжали работать кто на Win-1251, а кто на КОИ-8. Это создавало массу проблем хранения данных — они просто были нечитабельны.

Поэтому я начал вносить изменения в исходный WordPress так, чтобы учесть весь этот зоопарк кодировок и потихоньку стал делать новые сайты уже на WordPress. В конце 2005 года я уже активно участвовал на форуме русскоязычного WordPress'а, и в начале 2006 я понял, что нужен сайт, где я бы мог уже сам решать что и как делать. Так и появился maxsite.org.

Ранний период — русский WordPress

Для меня WordPress был не то что бы идеальной системой, а системой, которая показала, как именно можно строить сайты. По сравнению с другими CMS, WordPress выглядел очень достойно. Когда вышла версия 2.0 я понял, что могу предложить свою сборку, которая будет учитывать реалии рунетовских хостингов.

Моя сборка, в отличие от оригинальной, могла работать на хостинге с любой кодировкой MySQL (тогда это была большая проблема), поэтому она стала очень популярна в рунете.

Кроме того, я решил ещё одну проблему — это высокая нагрузка WordPress из-за объемного файла перевода. Я сделал хитро: написал программульку, которая меняла английские фразы в php-файлах на русский перевод. Таким образом моя сборка могла вообще не использовать внешний файл перевода, что давало существенное снижение нагрузки на сервер.

Да, уже тогда WordPress был очень прожорливым.

Потом я сделал уже свой форум по WordPress, который надолго стал основной площадкой по поддержке пользователей WordPress. Многие блогеры начинали именно оттуда, поскольку WordPress сам по себе капризный, а с учётом старых хостингов, вообще неподъёмный без помощи.

Где-то через год, стало ясно, что WordPress двигается в сторону «бирюлек», но не в сторону качественного, быстрого кода. Когда вышла версия 2.3, для многих стало понятно, что с WordPress явные проблемы, которые вызвали массу критики. Это была и сломанная совместимость, и высокая ресурсоёмкость: хостеры стали банить сайты за превышение нагрузки. Их сервера просто не были предназначены для такого монстра.

Тогда витала идея, что WordPress можно изменить, выделив ядро отдельно. Как раз тогда набирал силу CodeIgniter, который демонстрировал новые возможности.

С выходом 2.3 изменилась и моя сборка WordPress. До этого перевод был очень примитивный, но мы договорились с Иваном Калининым (LeCactus, кто помнит) и он сделал великолепный русский перевод. Я уже не хотел использовать свой вариант замены php-файлов, поэтому решил остановиться на оригинальном алгоритме через po/mo-файлы.

Поскольку они очень сильно грузили систему, я придумал разделить перевод на два файла: один для самого сайта, а другой (полный) для админки.

Плюс я поддерживал кодировки MySQL, был встроенный декодер, а также правки для корректной работы с кириллицей (пинги, трекбаки, rss и т.п.). Я включал множество своих плагинов, вроде «русских дат», «ушки», «для сапы», «случайный текст», «антиспам», «псевдокод», «произвольные поля записи», «соц. закладки» и т.д. Всего что-то около 20 штук. Также я разработал каркас для плагинов, который уже корректно работал с активацией, удалением и т.п.

То есть сборка 2.3 получилась очень классная, поскольку учитывала наши реалии, но при этом ещё и намного быстрее оригинальной.

Но потом случилось сразу много чего... Как оказалось, Маллевенгу не нужен WordPress как нормальная CMS, ему нужен был только бизнес. Поэтому он объявил о том, что система будет иметь региональные «подразделы» и тогда мы все (команда форума, где собственно все и тусовались) решили, что это будет кто-то из «своих». То есть тех, кто реально занимается поддержкой.

Но оказалось, что это нафиг никому не нужно. Русский WP был отдан какому-то «левому» чуваку, который просто тупо спёр перевод Ивана, заменил на своё имя и тем самым показал, что он «дартаньян».

Мой алгоритм раздельного перевода потом своровал какой-то другой «чувак» и выложил под своим именем на официальном wp-сайте.

Короче, началась «возня», письма «наверх», эмоции, обсуждения... Нам нравился WordPress, но лично я уже понимал, что он того не стоит. Для меня вся эта грязь оказалась неподъемной, хотя финальной точкой оказался выход WordPress 2.5.

Тут важное уточнение: после 2.3 казалось, что «главные по системе» прислушаются к замечаниям и всё-таки вернут движуху в нормальное русло. Все ждали 2.4 с этим изменениями, но кто-то «там» её зарубил, поэтому версия была пропущена, а вместо этого они налепили на админку ещё больше рюшечек прямо поверх старого «говна». С этой версией мне стало окончательно ясно, что нам не по-пути.

Я ещё несколько лет поддерживал свою сборку (2.3), делал сайты, но своё движение направил уже на развитие своих проектов.

MaxCache

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

MaxSite CMS

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

Было много экспериментов и в какой-то момент всё стало получаться. Уже 1 июня 2008 года я объявил о выпуске первой публичной версии MaxSite CMS.

Фактически я всегда рассматривал MaxSite CMS как разумную альтернативу WordPress, поэтому они очень похожи по терминологии, хотя внутри они принципиально разные. Я не буду останавливаться на истории MaxSite CMS, просто скажу что её развитие это в первую очередь история развития сайтостроения как такового.

Со временем на maxsite.org я убрал все записи о WordPress, а те что касались MaxSite CMS, перенес на отдельный max-300.com. Из-за этого мой сайт сильно «похудел».

В общем-то именно MaxSite CMS и стала моей основной разработкой, где я мог реализовывать любые задумки. В какой-то момент возможности моей системы стали превышать WordPress и я начал делать все сайты только на ней.

Landing Page Framework (LPF)

Где-то с 2012 года я стал делать на заказ лендинги. Хотя можно было для этого использовать MaxSite CMS, но было очевидно, что это слишком сложно для простой странички. Тогда я стал искать альтернативы и обнаружил, что в мире PHP просто не существует простого «движка» для обычных лендингов. Поэтому мои эксперименты привели к тому, что в 2013 году я выпустил LPF, специально для работы с лендингами и простыми сайтами.

Мне очень нравилось работать с LPF, потому что я мог на нём испытать огромное количество идей для того, чтобы потом их внедрить в MaxSite CMS. Чтобы было понятно, то у LPF было 36 версий! Если так подумать, то именно LPF стал той разработкой, которая в итоге привела к созданию множества других проектов.

2014 год

Для кого-то война началась в 2022 году, а для кого-то в 2014-м... Это был очень сложный год в личном плане, и конечно, это отразилось на моих проектах. Для LPF лицензия была примерно такого вида: «Используя Landing Page Framework, вы соглашаетесь с тем, что Крым — это Украина, а путин — Хуйло». Конечно, это отсеяло кучу россиян, но зато остались самые адекватные, с которыми я уже мог нормально работать дальше.

Berry CSS

В 2014 году я сделал css-фреймворк UniCSS, который «вырос» из общих стилей MaxSite CMS. Идея была в том, чтобы выделить в шаблонах какой-то единый css-код, а поверх него лепить уже свои классы. Поэтому изначально был просто css-файл, который в какой-то момент я решил привести к единым правилам и это вылилось в UniCSS.

Изначально UniCSS был довольно простой разработкой, хотя и использовал малоизвестный atomic-подход. Тогда в основном доминировал Bootstrap CSS, поэтому Utility-First большинство верстальщиков просто не понимали.

Постепенно, с развитием самого CSS, я развивал и UniCSS, но была одна проблема — крайне неудачное название для проекта (universal css). Оно пересекается с UnCSS (undelete css), что иногда приводило к путанице. И поэтому в 2014 году я переименовал UniCSS в Berry CSS и cтал его развивать как новый проект.

Изначально это был Less, потом Sass, сейчас Sass + css-переменные. Для Berry CSS я никогда не ставил задачу охватить весь CSS3/4, поэтому делал только классы, которые востребованы хотя бы на 80%. Всё остальное можно спокойно сделать отдельно.

Это позволило держать размер/возможности фреймворка в очень хорошем соотношении. Текущая версия Berry CSS 5.3 хороша для верстки, поскольку всё также опирается на простую семантику, обладает великолепной настраиваемостью через CSS, содержит профессиональные RAL-цвета, работает с ИИ и т.п.

HTML-курс

В 2017 году я открыл свой курс по HTML. Изначально обучение было платным, хотя многие уроки были открытыми для всех.

Где-то через полгода я понял, что такая форма обучения мне не очень нравится, поэтому я решил, что просто открою все уроки. Через какое-то время я ещё раз его полностью переписал как «Бесплатный HTML-курс с котиками», придумал новые более простые задания. Курс открыт и сейчас и, мне кажется, что он всё ещё актуален для тех, кто хочет начать изучать вёрстку самостоятельно.

Java

В 2018 году что-то меня дёрнуло и я решил поизучать Java. Это вылилось в несколько статей на сайте, потом я ещё немного помучил Java ради андроид-программ и забросил это дело. Для меня это оказалось скучным и неинтересным, хотя и открылись глаза на то, к чему стремятся разработчики PHP. (И мне это не нравится...).

Шаблон MF

Шаблон MF для MaxSite CMS для меня был первым опытом, когда я его стал продавать ещё до того, как он был создан. У меня было много наработок по шаблонам MaxSite CMS и мне хотелось сделать один, но очень мощный. Я не бы уверен, что это будет востребовано, поэтому «кинул клич» для предзаказа.

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

Можно сказать, что MF — движущая сила MaxSite CMS, поскольку к тому времени все задумки по «ядру» были реализованы, оставались только работы по шаблонам. И тогда в MF я стал реализовывать самые смелые задумки и, если нужно, то вносил изменения в MaxSite CMS.

Более того, MF — это шаблон, где можно было менять дизайн сайта, без переделки самого шаблона. Это было построено на Material Design, который я также внедрил в Berry CSS. Даже сейчас многие шаблоны и сайты не имеют такой возможности.

Через какое-то время, MF стал настолько классным, что я сделал его «ядро» в качестве Default-шаблона MaxSite CMS. Сейчас Default-шаблон основан на 12 версии MF, но его последняя версия 16 всё также актуальна и доступна для покупки.

PHP

Где-то с 2018 года я очень серьёзно задумался о создании своего php-фреймворка по уровню выше CodeIgniter. Кто помнит, CodeIgniter в то время прекратил развитие, пошла чехарда с его авторством. Для кого-то это послужило поводом к созданию своих проектов (Laravel, Yii, Kohana и т.д.), я же смотрел в сторону современного вебстроительства, без оглядки на старые «догмы». Поэтому тот же Slim мне больше нравился, хотя я понимал, что он принципиально не годится для создания сайтов.

Я больше года делал свой фреймворк, который носил кодовое название «F1» и который мог бы сочетать в себе простоту CodeIgniter, современные наработки, например валидация, роутинг, PDO-only, то есть было множество идей, которые мне казались интересными и важными.

Но в какой-то момент я понял, что F1 превращается в «теоретический» фреймворк, где в угоду «правильности», приходилось идти на компромисс с удобством и простотой.

Поэтому его наработки я использовал как опыт для создания Albireo Framework.

Albireo Framework

Albireo Framework — это преемник LPF, который меня уже не устраивал по ряду параметров. Поэтому я постепенно начал делать именно новый проект, поскольку между ними нет совместимости.

Для Albireo Framework я использовал другой подход — мне принципиально важно дать максимальную степень свободы пользователю. И хотя Albireo Framework также больше ориентировался на создание лендингов и простых сайтов, всё-таки я сразу понимал, что в итоге он будет трансформирован в полноценную CMS.

Развитие Albireo Framework протекало бурно, поскольку архитектура оказалась настолько удачной, что я смог реализовывать массу задумок, которые никогда не появятся в MaxSite CMS.

Albireo Framework стал опытной площадкой, где я смог отработать огромное количество идей. Здесь же были первое использование AlpineJS, что также стало важной частью моих проектов.

У Albireo Framework была своя админка, а также именно здесь я сделал возможно первую в истории PHP — систему документации Albireo Doc. Вы удивитесь, но «движки» для создания документации работают на чём угодно, только не на PHP.

Кроме того Albireo Framework мог генерировать статичные сайты. Тогда я думал, что это может быть востребовано.

То есть Albireo Framework одна из лучших моих разработок, который я смог довести до нужной черты и закрыть его для превращения в полноценную CMS.

Python

Начало полномасштабной войны в 2022 году, как и многих, меня «выбило из колеи»... Но, чтобы чем-то нагрузить свой мозг, я помимо своих проектов, начал изучать Python.

В целом я доволен, поскольку сейчас у меня примерно половина программ именно на Пайтоне. Он мне заменил массу утилит, которые я писал на Delphi или bat-файлами.

Хотя я и пишу на нём, но уже не вижу смысла что-то выкладывать на сайте из-за ИИ. С его помощью всё делается за пару минут. Кроме того по Python есть огромное количество обучающих книг, так что эта ниша насыщена уже доверху.

Albireo CMS

Кроме Пайтона и нескольких своих личных проектов, я начал работы по Albireo CMS. Начал с создания ТЗ, своих хотелок и безумных идей. Albireo Framework как основа уже сам по себе позволяет многое, но мне хотелось ещё больше свободы и возможностей.

За это время у меня было несколько версий системы, которые я оттачивал, потом проверял новые идеи, если они не «прокатывали», то «сносил» и начинал заново. Чтобы было понятно, под «раздачу» попадали даже такие мелочи, как названия или расположения каталогов и файлов. Да, перфекционизм, но не до маньячества.

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

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

Кроме того, моя личная позиция относительно Open Source изменилась — я больше не хочу работать бесплатно. Albireo CMS — это самая сложная разработка, которую я когда либо делал. Если другие проекты были открытыми и в них, участвовали (в любом виде) другие, то Albireo CMS я делаю полностью сам. Это как обтёсывать кусок камня, удар за ударом, очень неспешно, но постепенно вырисовывается истинная красота того, что там было скрыто. Я действую именно так и поэтому отказываюсь отдавать свою работу тем, кто не понимает её ценности.

С Albireo CMS я изменил и свой подход к разработке. Возможно мой опыт будет интересен, поэтому уточню этот момент.

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

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

Следующее изменение — это документирование php-функций. Мне нравится идея Пайтона с самодокументацией, поэтому я взял примерно такую же схему.

Перед функцией идёт блок PHPDoc, как обычно. Но это для редактора кода. А вот под функцией идёт блок /* Description ... */ в котором размещается чистый html-код справки по функции. Таким образом каждая php-функция ещё содержит подробную html-справку, готовую для вывода на сайте. Для сборки запускается простенький скрипт, который «вытягивает» Description и по шаблону делает Albireo-страницы.

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

Сейчас

Сейчас я максимально сосредоточен на Albireo CMS и Berry CSS. Шаблон MF и MaxSite CMS я также держу в актуальном состоянии. Остальные проекты для maxsite.org в общем-то отошли на второй план.

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

В общем, 20 лет это прилично, но, как говорится, дорогу осилит идущий. 😊

Дорогу осилит идущий
Похожие записи
Комментарии (2) RSS
1 Мимопроходил 2026-02-28 09:13:38

Я помню это, Гендальф. Это было 3000 лет назад.

Периодически читаю тебя примерно с 2006, с версии WP 2.1-2.2.

Спасибо тебе за сотни полезных статей, плагины, помощь с WP и в целом титанический вклад в развитие рунета!


2 Віктор 2026-02-28 10:33:27

Вітаю, майстре! Хороша дата й добрий путь! Бажаю натхнення і в подальшому, та не забувай, що тебе читають не тільки професіонали, а й, так скажімо, поціновувачі шахів. :) Бувай здоровий і неодмінно ще - з грошима. Це точно не буде на заваді..

Оставьте комментарий!