Inspiration

AI can write a convincing social post in seconds. The harder problem is that the text can sound completely normal while adding something that was never in the source.

It may change the attribution, remove an important condition, or turn an uncertain statement into a fact. These mistakes are easy to miss because the final draft still reads well.

That is already risky for an individual creator. For media accounts, brands, and organizations publishing updates throughout the day, one unsupported sentence can damage trust very quickly.

Most AI writing tools focus on producing more content. I wanted to build something that also checks whether that content should be published in the first place.

That became Vouch.

What it does

Vouch is the trust layer between AI and the publish button.

It collects source material from the X home timeline, selected accounts, direct post links, trends, or a topic entered by the user. It then turns that material into a reviewable draft while keeping the original source and context attached.

Before publishing, Vouch checks whether the important claims are supported by the available evidence. It can flag unsupported details, missing context, attribution problems, and other cases where a fluent draft may still be misleading.

The user always makes the final decision. Every draft requires manual approval, and that approval is tied to the exact version of the text. If the draft changes, the previous approval is automatically removed and the new version has to be reviewed again.

Nothing is published automatically.

Vouch can be managed through the web app, desktop app, and Telegram bot. They share the same drafts, sources, review states, and publishing workflow.

Users can also create a personal voice profile by describing how they write or by connecting an X profile for analysis of recent posts and replies.

How we built it

I built the main application with Python and FastAPI.

Vouch uses GPT-5.6 through the OpenAI API for structured drafting, source analysis, validation, and controlled revision. The generated text is only one part of the workflow. Sources, validation results, draft versions, approvals, and publication state are stored separately.

SQLAlchemy and Alembic handle the data layer, with SQLite and PostgreSQL support. Vouch also integrates with the X API and Telegram Bot API.

The main flow is:

  1. Collect the source material.
  2. Store the source and its context.
  3. Generate a structured draft.
  4. Check the draft against the available evidence.
  5. Let the user review or edit it.
  6. Approve that exact version.
  7. Publish only after approval.

Early prototyping and product decisions happened in ChatGPT. Once Vouch grew into a multi-surface application, I used Codex to work directly across the repository: tracing end-to-end flows, implementing changes that touched multiple parts of the system, updating tests and migrations, debugging regressions, and hardening the final release.

Challenges we ran into

The hardest part was not generating the post. It was deciding when the post was supported well enough to continue.

A weak validator lets unsupported claims through. A validator that is too strict blocks useful drafts. Finding a practical balance required a lot of test cases and repeated changes to the generation and review logic.

Another challenge was keeping the same state across the web app, desktop app, Telegram bot, background workers, and X publishing flow. A draft should never appear approved in one interface and unreviewed in another.

Approval also had to mean more than a checkbox. If the text changes after approval, the previous decision should no longer apply. Vouch solves this by binding approval to the exact content version.

External APIs introduced rate limits, duplicate events, retries, partial failures, and uncertain write requests. Publishing needs stricter handling than reading because retrying a read is usually harmless, while retrying an uncertain publish request can create a duplicate public post.

Accomplishments that we're proud of

Vouch now runs the complete workflow from source discovery to review, approval, and controlled publication.

The parts I am most proud of are:

  • source provenance that stays attached to each draft;
  • the Claim & Evidence Inspector for reviewing important statements;
  • refusal when there is not enough evidence or context;
  • approval tied to the exact text version;
  • automatic approval invalidation after edits;
  • synchronized web, desktop, and Telegram interfaces;
  • an offline demo mode that makes no remote write requests;
  • more than 1,600 automated tests covering the main application, ingestion, drafts, approvals, storage, APIs, and publishing safety.

The system can also decide not to move forward. Sometimes the correct result is not another generated post, but a request for more context.

What we learned

I learned that generating text is the easy part. Building a reliable workflow around that text takes much more work.

Keeping the source somewhere in the database is not enough. The person reviewing the draft needs to see what supports it, what remains uncertain, and why the system raised a warning.

I also learned that human approval has to be part of the architecture from the start. Once AI is preparing public content, version history and publishing permissions matter as much as the generated text.

Codex became especially useful when a change crossed several connected parts of the application. It helped trace the full flow, update the implementation and tests together, and catch regressions that would have been easy to miss when looking at one file at a time.

What's next for Vouch

Vouch currently publishes to X and uses Telegram as an additional review and control surface.

The next step is adding publishing destinations such as LinkedIn, Instagram, Discord, and Telegram channels. I also want to improve collaborative review for media teams and organizations.

Another direction is making the Claim & Evidence Inspector available as a separate validation layer that other products can use before publishing AI-generated content.

I also plan to run broader evaluations comparing direct model generation with the full Vouch workflow, including unsupported claim rate, attribution errors, missed context, and false rejections.

Vouch is built to make AI-assisted publishing faster without making responsibility disappear.

Built With

Share this project:

Updates