Skip to content

Repository files navigation

PostCraft

AI-powered social media post generator — describe a topic or business, pick a platform and tone, and get ready-to-publish posts in seconds.

English · Русский


English

What it does

PostCraft turns a short description of your topic or business into a complete, ready-to-publish social media post — headline, body copy, call to action, and hashtags — tailored to the platform and tone you pick. Generate several variants at once, regenerate a single one you don't like, and keep a local history of everything you've made.

Features

  • 4 AI providers — Claude, ChatGPT, Gemini, and Groq, with automatic retry on transient errors and a model-fallback chain for Gemini so quota limits don't stop you.
  • 8 platforms — Instagram, Telegram, LinkedIn, YouTube, Threads, X, Facebook, TikTok, each with its own tone, length, and hashtag conventions baked into the prompt, and real brand icons.
  • 5 tones — Persuasive, Friendly, Expert, Calm, or your own custom style.
  • 3 interface languages — Russian, English, and Uzbek, with natural (not machine-translated) copy throughout.
  • Independent post language — choose the language of the generated post separately from the interface language; it automatically follows the UI language until you override it, and it defers to the topic's own language if you clearly wrote your topic in something else.
  • Live streaming generation with a soft, Apple-style pulse animation while you wait.
  • Multiple variants per request, with one-click regeneration of any single variant.
  • One-click copy, per-variant download, and "download all as .zip".
  • Local history of every generation, searchable by platform/tone/provider, with delete and clear-all.
  • Resizable topic field with a debounced draft that survives page reloads.
  • Real Liquid Glass UI — genuine backdrop refraction (SVG displacement filters), light/dark themes, and a subtle animated background.

Tech stack

  • Next.js 16 (App Router) + TypeScript
  • Tailwind CSS v4
  • React 19
  • AI SDKs: @anthropic-ai/sdk, openai (also used for Groq via its OpenAI-compatible API), and a direct REST client for Gemini
  • jszip for bundling multi-variant downloads

Getting started

git clone https://github.com/Askar-Turanazarov/PostCraft.git
cd PostCraft
npm install
cp .env.local.example .env.local

Open .env.local and add at least one API key:

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
GROQ_API_KEY=gsk_...

You only need one — the app automatically shows whichever provider(s) you've configured, and collapses to a single quiet note instead of a picker if only one key is set.

npm run dev

Open http://localhost:3000.

Project structure

app/                  Next.js routes (page, layout, /api/generate, /api/providers)
components/           UI components (form, post cards, history drawer, icons, theme/language toggles)
lib/
  providers/           One module per AI provider behind a shared interface, plus retry/fallback logic
  i18n/                 Interface translations (ru/en/uz) and the language context
  prompt.ts             Prompt construction (platform + tone + language rules)
  parseVariants.ts       Streaming-safe parser for the model's structured output

License

Personal / educational project — no license file included yet.


Русский

Что это

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

Возможности

  • 4 ИИ-провайдера — Claude, ChatGPT, Gemini и Groq, с автоматическими повторными попытками при временных сбоях и цепочкой запасных моделей для Gemini, чтобы лимиты квоты не мешали работе.
  • 8 площадок — Instagram, Telegram, LinkedIn, YouTube, Threads, X, Facebook, TikTok — у каждой свой тон, длина и правила хэштегов, заложенные прямо в промпт, плюс настоящие иконки брендов.
  • 5 тонов — Продающий, Дружелюбный, Экспертный, Спокойный или свой собственный стиль.
  • 3 языка интерфейса — русский, английский и узбекский, с естественным (не машинным) переводом по всему приложению.
  • Отдельный язык поста — язык сгенерированного текста выбирается независимо от языка интерфейса: по умолчанию он следует за языком интерфейса, пока вы не выберете его вручную, а также уступает языку самой темы, если она явно написана на другом языке.
  • Потоковая генерация в реальном времени с мягкой, в духе Apple, пульсирующей анимацией ожидания.
  • Несколько вариантов за один запрос с перегенерацией любого отдельного варианта в один клик.
  • Копирование в один клик, скачивание отдельного варианта и «скачать всё в .zip».
  • Локальная история всех генераций с удалением отдельных записей и полной очисткой.
  • Растягиваемое поле темы с автосохранением черновика, который переживает перезагрузку страницы.
  • Настоящий Liquid Glass — подлинное преломление фона (SVG-фильтры смещения), светлая и тёмная темы, ненавязчивый анимированный фон.

Технологии

  • Next.js 16 (App Router) + TypeScript
  • Tailwind CSS v4
  • React 19
  • SDK для ИИ: @anthropic-ai/sdk, openai (также используется для Groq через его OpenAI-совместимый API) и прямой REST-клиент для Gemini
  • jszip для сборки zip-архивов с несколькими вариантами

Быстрый старт

git clone https://github.com/Askar-Turanazarov/PostCraft.git
cd PostCraft
npm install
cp .env.local.example .env.local

Откройте .env.local и добавьте хотя бы один ключ API:

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
GROQ_API_KEY=gsk_...

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

npm run dev

Откройте http://localhost:3000.

Структура проекта

app/                  Роуты Next.js (главная страница, layout, /api/generate, /api/providers)
components/           UI-компоненты (форма, карточки постов, панель истории, иконки, переключатели темы/языка)
lib/
  providers/           По модулю на каждого ИИ-провайдера за общим интерфейсом, плюс логика повторов/фолбэка
  i18n/                 Переводы интерфейса (ru/en/uz) и языковой контекст
  prompt.ts             Построение промпта (правила площадки, тона и языка)
  parseVariants.ts       Безопасный для потоковой передачи парсер структурированного ответа модели

Лицензия

Личный / учебный проект — файл лицензии пока не добавлен.

About

Web app to craft a ready-to-post text for any platform. Made for fun, educational purposes and testing. Could run on AI models such as Gemini, ChatGPT, Claude etc. using your API key

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages