string(): разбираем функцию на пальцах
MX Script: Фреймворк в одном файле, который меняет правила игры в веб-разработке
JavaScript-мир перегружен. Проблема не в коде, а в подходах.
Каждый новый проект — это выбор: как роутить, где хранить middleware, куда прятать бизнес-логику. Контроллеры, сервисы, инъекция зависимостей. Ещё ни строчки не написал, а уже устал от архитектурных споров.
MX Script предлагает: а если обойтись без этого?
Простота на первом месте
Всё в MX Script — это HTTP-обработчики. Приложение живёт внутри блока serve {}. Никаких отдельных файлов с роутами. Никаких классов контроллеров. Никаких стэков middleware. Только функции.
serve {
get "/" {
html h1("Привет, MX!")
}
}
Запусти mx serve, открой localhost:3333 — и сервер работает. Для тех, кто скучает по простым временам веб-разработки, это как глоток свежего воздуха.
Но главное: простота не значит урезанная мощь.
Полный стек в одном файле
MX Script — это "всё включено". В app.mx помещается не только роутинг. Получаешь:
- Типизацию как в TypeScript (без компиляции)
- Встроенный ORM для SQLite (без лишних слоёв)
- Авторизацию (JWT, OAuth, email — готово из коробки)
- Хранение файлов и обработку платежей
- Cron-задачи для расписания
- Streaming для реального времени
- Полную совместимость с JavaScript-библиотеками
Представь платформу для публикации статей:
serve {
get "/" {
html ArticleList(articles: db.articles())
}
get "/:slug" {
html Article(article: db.articles().find(slug))
}
post "/articles" {
let article = json<Article>()
db.articles().insert(article)
created article
}
}
Нет отдельного бэкенда. Нет API. Нет мостов между фронтом и бэком. Всё в одном месте: роуты, база, ответы.
Почему это спасение для стартапа
При MVP сложность — главный враг. Час на настройку билда, структуру папок и споры об архитектуре — это час без реального прогресса.
MX Script убирает барьеры. Учишься не экосистеме фреймворков, а одной модели: функции = эндпоинты.
Если ты из PHP или Python, сразу в деле. JavaScript-разработчикам после фреймворковых войн — как возвращение к истокам.
Типы без лишней мороки
MX Script умно решает вопрос типов. Полная типизация и поддержка IDE, но без компиляции:
type User {
id: int
name: string
email: string
}
let user: User = json()
IDE подсказывает, автодополняет, ловит ошибки до запуска. Код бежит сразу — без билда.
Умный слой для базы данных
ORM на SQLite продуман до мелочей:
db.define("articles", {
slug: string().unique(),
title: string(),
published: boolean()
})
Типобезопасно, минимально, без сложных запросов. Для веб-приложений и API, которым не нужна гипермасштабируемость с нуля, SQLite — идеал.
Сообщество набирает обороты
2.4k звёзд на GitHub, лицензия MIT. Три канала релизов: Stable, Canary, Dev — от стабильности к экспериментам.
Браузерный playground позволяет тестить без установки. Удобно для быстрого старта.
Когда выбрать MX Script?
Идеально, если:
- Нужен быстрый запуск проекта
- Ценишь прагматизм, а не идеальную архитектуру
- Команда маленькая, простота в приоритете
- Деплой на одном бинарнике — плюс
Не подойдёт, если:
- Строишь распределённую монстра
- База требует больше SQLite
- Нужна микроcервисная паутина
Что это значит в целом
MX Script — бунт против раздутости фреймворков. Не всем нужен Next.js с Redux и кучей npm. Не каждый проект — для масштаба Google.
Для 90% веб-проектов это редкость: полный инструмент, который не мешает.
В эпоху сложностей простота — самый смелый шаг.
Хочешь попробовать MX Script? Зайди в браузерный playground на play.mxscript.com — ничего устанавливать не надо. А если хостишь проекты на облаке NameOcean, MX Script легко встаёт на нашу Vibe Hosting с AI-подсказками для разработки.