DEV Community

Cover image for Postwhisk: A lightweight LLM driven web app to generate social media posts
Anubhab Das
Anubhab Das

Posted on Edited on AI-assisted

Postwhisk: A lightweight LLM driven web app to generate social media posts

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

Toss in rough text, pick a tone (neutral, educational, promotional, fun and more), and Postwhisk rewrites it for each platform, one post at a time. Use your own local Ollama, or the Ollama API. Nothing is stored in the cloud!

Postwhisk screenshot

Demo

Find the demo here: https://postwhisk-hacktoberfest.vercel.app/

Code

Check out the code here: https://github.com/anubhabdaserrr/postwhisk-hacktoberfest

How I Built It

I built Postwhisk with plain HTML, CSS and vanilla JavaScript, with no frameworks or build step. The page takes up to 2,000 characters of rough text, a tone and a set of platforms. It then sends one request at a time to an Ollama model through the /api/chat endpoint, and each platform has its own prompt rules.

Users can choose their own local Ollama server or the Ollama API with their key. Browsers block direct calls to the Ollama API, so API mode goes through a small relay: a Node script locally, or a rewrite rule on Vercel. Results show up in editable cards with character counts, copy buttons and per-platform regenerate.

The interface was designed and iterated on with Claude.

Tech used:

  1. HTML, CSS and JavaScript
  2. Ollama: Gemma (gemma4:31b) for API mode and Qwen (qwen3.5:2b) for local mode
  3. Node.js (server.js) as a local relay
  4. Vercel for hosting, with a vercel.json rewrite for API mode
  5. Google Fonts (Bricolage Grotesque and Instrument Sans)
  6. Claude, for the design, code and iteration

Why Does Open Innovation Matter?

Wouldn't have been possible at all without OLLAMA Open Weights Models :) Open Weights Models help keep all your data (raw post drafts, in this case) off the server when you're iterating.

Top comments (0)