Back to Projects
LiveSaaS2025

MakePrompt

An intelligent prompt engineering studio that helps you craft, refine, and supercharge AI prompts. Comes with one-click improvements, smart templates, versioning, and a growing library of battle-tested prompts for every use case.

Next.jsTypeScriptOpenAINest.jsPostgreSQLStripe

Prompt engineering is real engineering — it deserves real tooling. MakePrompt is a studio for crafting, refining, and versioning AI prompts, with one-click improvements powered by a meta-prompt layer built on top of GPT-4.

Why Prompts Need Version Control

When you iterate on a prompt — tweaking wording, adjusting tone, adding constraints — you lose the previous version. If the new version performs worse, you are back to guessing what changed and why. This is the same problem software had before version control, and the solution is the same: track every change, make diffs visible, allow rollback.

MakePrompt stores every edit as a versioned snapshot. Diffs are computed at the word level so you can see exactly what changed between v1 and v4 of a prompt without reading both in full.

The One-Click Improvement Engine

The most interesting technical piece is the improvement system. A user pastes a prompt, clicks "Improve", and gets a better version back. Under the hood, a meta-prompt instructs GPT-4 to act as a prompt engineering expert:

You are an expert prompt engineer. Analyse the following prompt and 
rewrite it to be clearer, more specific, and more likely to produce 
high-quality output from a language model. Preserve the original intent.
Explain what you changed and why.

Original prompt:
{userPrompt}

The response is parsed to extract the improved prompt and the explanation separately. The explanation is shown alongside the diff so the user understands the reasoning, not just the result.

Architecture

The stack is Next.js on the frontend with a NestJS API backend. Prompts, versions, and collections are stored in PostgreSQL. Stripe manages subscriptions — free tier gets a limited number of improvements per month, paid tiers get unlimited.

PostgreSQL schema (simplified):

prompts
  id, user_id, title, created_at

prompt_versions
  id, prompt_id, content, version_number, 
  improvement_explanation, created_at

collections
  id, user_id, name

collection_prompts
  collection_id, prompt_id

The Template Library

A growing library of battle-tested prompts ships with the product — organised by use case (coding, writing, analysis, roleplay). These are not locked away; any template can be forked into a user's workspace and edited. The fork relationship is stored so the original template can receive updates that users can optionally pull in.

Diff Algorithm

Computing a readable word-level diff between two prompt versions without a heavy library was an interesting constraint. The implementation uses a Myers diff algorithm adapted for token arrays. Words are tokenised preserving whitespace, diffed, and rendered with green highlights for additions and red strikethroughs for removals.

function diffPrompts(a: string, b: string): DiffToken[] {
  const tokensA = tokenise(a);
  const tokensB = tokenise(b);
  return myersDiff(tokensA, tokensB);
}

type DiffToken = 
  | { type: 'equal'; value: string }
  | { type: 'added'; value: string }
  | { type: 'removed'; value: string };

What I Learned

Meta-prompting — using one LLM call to improve another prompt — produces surprisingly good results, but only when the meta-prompt itself is carefully engineered. Early versions of the improvement engine produced generic, watered-down rewrites. The breakthrough was instructing the model to explain its reasoning in the same response, which also improved the quality of the rewrite itself.

The versioning system felt over-engineered at first. In practice, users who iterate on prompts seriously use version history constantly — it turned out to be the feature with the highest session engagement.

Status

MakePrompt is live at makeprompt.io. Stripe billing is active. The template library currently has prompts across eight categories with more being added based on user requests.

Interested in working together?

I am available for new projects — whether you have a clear brief or just an idea worth exploring.