Skip to content

Repository files navigation

PostCraft

One Idea, Four Tones, Two Platforms, Ten Seconds

PostCraft turns a topic into a scroll-stopping LinkedIn or X post across four tone modes — Professional, Casual, Storytelling, and Controversial — with platform-specific formatting and a hook-first structure. No signup, no paywall, no per-post limit.

Live Demo GitHub Repo

Next.js TypeScript Tailwind Framer Motion Groq Vercel

Animated PostCraft headline

What It Does

PostCraft takes a topic and generates a post optimized separately for LinkedIn (long-form) and X (punchy), in one of four selectable tones — Professional, Casual, Storytelling, or Controversial — each opening with a proven hook structure designed to stop the scroll. A generated draft can be regenerated for a new variant or copied straight to the clipboard for pasting into the platform composer.

How It Works

  • app/page.tsx renders the landing shell with HeroSection, FeaturesSection, and the PostForm input component.
  • app/api/post/route.ts sends the topic and selected tone/platform to the Groq Chat Completions API (llama-3.3-70b-versatile) and falls back to a pre-written demo post per tone/platform combination when no API key is set.
  • Styling is Tailwind CSS with Framer Motion handling interface transitions; the app is a single Next.js App Router deployment with no database layer.

Engineering Notes

The real problem: "AI post generator" tools tend to produce one generic voice regardless of what you ask for — a LinkedIn post and an X post need different structure (long-form narrative vs. punchy hook), not just a shorter character count.

The approach: tone and platform are separate, explicit prompt inputs rather than one blended setting, so a "storytelling" LinkedIn post and a "storytelling" X post are generated as genuinely different structures, not the same text truncated.

One real number: demo fallbacks are pre-written per tone-per-platform combination (Record<Tone, Record<Platform, PostOutput>>) — every tone/platform pair has a real worked example, not one generic placeholder shown regardless of selection.

Not handled yet: app/api/intelligence is a separate, disconnected decorative endpoint, not a real formatting pass on the generated post.

Live

postcraft-one.vercel.app

Tech Stack

Layer Technology
Framework Next.js (App Router)
Language TypeScript
AI Groq (llama-3.3-70b-versatile)
Styling Tailwind CSS
Motion Framer Motion
Deployment Vercel
Footer

About

Scroll-stopping LinkedIn and X posts in 4 tones, free. Built for people who'd rather write code than captions.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages