AI-powered social media post generator — describe a topic or business, pick a platform and tone, and get ready-to-publish posts in seconds.
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.
- 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.
- 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 jszipfor bundling multi-variant downloads
git clone https://github.com/Askar-Turanazarov/PostCraft.git
cd PostCraft
npm install
cp .env.local.example .env.localOpen .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 devOpen http://localhost:3000.
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
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 Безопасный для потоковой передачи парсер структурированного ответа модели
Личный / учебный проект — файл лицензии пока не добавлен.