From 6dfe8b8afad1bd38ed52ee376d57f751e87c5d75 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Sun, 31 May 2026 08:50:35 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20zeropost-web=20=E2=80=94=20=D0=BF=D1=83?= =?UTF-8?q?=D0=B1=D0=BB=D0=B8=D1=87=D0=BD=D1=8B=D0=B9=20AI-=D0=B1=D0=BB?= =?UTF-8?q?=D0=BE=D0=B3=20=D0=BD=D0=B0=20zeropost.ru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Next.js 16, Tailwind с @tailwindcss/typography - Главная: hero, featured-статья, сетка карточек, облако тегов - /blog/[slug]: статья со SSG + revalidate 60s, prose typography - /tag/[name]: фильтр по тегам - /about: про проект - /api/cron/generate: endpoint для авто-генерации (защищён x-cron-token) - SEO: dynamic metadata, OG, sitemap-ready - Лента грузится с zeropost-engine /api/articles --- .gitignore | 5 + .npmrc | 1 + app/about/page.js | 48 + app/api/cron/generate/route.js | 22 + app/blog/[slug]/page.js | 84 ++ app/globals.css | 19 + app/layout.js | 31 + app/page.js | 95 ++ app/tag/[name]/page.js | 40 + components/ArticleCard.js | 60 + components/Footer.js | 17 + components/Header.js | 24 + jsconfig.json | 6 + lib/engine.js | 45 + lib/markdown.js | 16 + next.config.js | 4 + package-lock.json | 2323 ++++++++++++++++++++++++++++++++ package.json | 23 + postcss.config.js | 6 + tailwind.config.js | 44 + 20 files changed, 2913 insertions(+) create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 app/about/page.js create mode 100644 app/api/cron/generate/route.js create mode 100644 app/blog/[slug]/page.js create mode 100644 app/globals.css create mode 100644 app/layout.js create mode 100644 app/page.js create mode 100644 app/tag/[name]/page.js create mode 100644 components/ArticleCard.js create mode 100644 components/Footer.js create mode 100644 components/Header.js create mode 100644 jsconfig.json create mode 100644 lib/engine.js create mode 100644 lib/markdown.js create mode 100644 next.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 tailwind.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..80c6b2b --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +.next/ +.env*.local +.env +*.log diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..a629ac7 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +prefix= diff --git a/app/about/page.js b/app/about/page.js new file mode 100644 index 0000000..1ae64cf --- /dev/null +++ b/app/about/page.js @@ -0,0 +1,48 @@ +import Header from '@/components/Header'; +import Footer from '@/components/Footer'; +import { Sparkles, Cpu, BookOpen, Zap } from 'lucide-react'; + +export const metadata = { title: 'О проекте' }; + +export default function AboutPage() { + return ( + <> +
+
+
+ О ZeroPost +
+

+ Эксперимент: блог, который ведёт ИИ +

+
+

+ ZeroPost — это два связанных проекта: публичный блог, который ты сейчас читаешь, и сервис для ведения Telegram-каналов с помощью ИИ. +

+

+ Идея простая: показать, что ИИ может писать тексты, которые не отдают «нейросетью». Без штампов вроде «в современном мире», без бесконечных списков и без воды. +

+

Что под капотом

+
    +
  • Claude от Anthropic — основная модель, пишет тексты
  • +
  • Двухэтапная генерация: пишем → редактируем себя
  • +
  • Промпт-инжиниринг с правилами «человечности» и стоп-словами
  • +
  • Few-shot prompting на примерах хорошего стиля
  • +
+

Сервис для каналов

+

+ На app.zeropost.ru есть кабинет, где можно: +

+
    +
  • Описать свой канал — нишу, аудиторию, тон, стиль
  • +
  • Дать примеры «эталонных» постов — и ИИ скопирует их манеру
  • +
  • Генерировать посты в один клик
  • +
  • Запретить определённые слова и темы
  • +
+

Скоро добавим автопубликацию по расписанию и работу с медиа.

+
+
+