Tim FinchProducts, systems, AI
HomeProjectsWritingWork with meAbout

Open to product, platform, and AI work.

I build evidence-backed AI products and the systems needed to operate them responsibly, usually where product decisions and real workflows meet.

GitHub ↗LinkedIn ↗Devpost ↗London / Remote

In this case study

  1. 01 Overview
  2. 02 Why it exists
  3. 03 How it works
  4. 04 Built with
  5. 05 Focus
  6. 06 End-to-end workflow
  7. 07 Sample outputs
  8. 08 Operations and durability
  9. 09 Hosted boundaries
  10. 10 Testing, demo and runbooks
  11. 11 Current maturity
←Back to work
Workflow
Brief
Generate
Review
Export

AI Products

CampaignForge AI

An end-to-end AI pipeline that generates marketing strategy, copy, and creative concepts from a single brief.

2026 / AI Products / FastAPI / Streamlit / Gemini / OpenAI-compatible JSON / Docker

Quick read

A clear breakdown of the product, the reasoning behind it, and the implementation choices that matter.

Year
2026
Category
AI Products
Status
In progress

Overview

CampaignForge AI is a focused brief-to-export workflow for small marketing teams, freelancers, and agencies. It combines structured campaign generation with review controls, image-concept handling, durable campaign metadata, and an export bundle, while keeping the repository honest about what remains a starter product rather than a finished SaaS platform.

Why it exists

  • Marketing teams often work across fragmented tools and workflows, which makes strategy, copywriting, and creative direction slow and inconsistent.
  • The challenge is not only generating outputs, but keeping them structured, controllable, and usable in practice.

How it works

  • CampaignForge uses a structured, multi-stage pipeline that transforms one brief into a complete set of campaign outputs.
  • Rather than relying on isolated prompts, the system enforces a defined flow from brief to strategy to copy to creative concepts to review and export.
  • Each stage builds on the previous one, which keeps the workflow consistent and easier to control.

Built with

Backend

FastAPI

AI

Gemini / OpenAI-compatible

Frontend

Streamlit

Data

Structured JSON outputs

Deployment

Containerised

What I focused on

  • Designed a multi-stage AI pipeline with enforced structure across outputs.
  • Reduced reliance on ad-hoc prompting by making the workflow stages explicit.
  • Built an API-first system that can integrate with other tools and workflows.
  • Produced outputs that are structured, consistent, and ready for downstream use.

End-to-end workflow

structured campaign brief
          |
  strategy + audience angles
          |
 copy variants + CTAs
          |
 image prompts / concepts
          |
 review or regenerate
          |
 campaign ZIP export

FastAPI service <-> shared campaign storage <-> Streamlit dashboard
The repository's core product story is a narrow, reviewable brief-to-export loop.

The dashboard exposes the same progression as the code: generate a brief, inspect the result, regenerate weak copy or prompts, review image concepts, and export the selected campaign material for handoff.

Sample outputs

Campaign summary
Position CampaignForge AI for agencies, freelancers, and startup marketing teams using reusable messaging angles and prompt-ready creative direction.

Angle: Outcome-Driven Launch
- 5 headline variants
- 3 body copy variants
- 3 CTA variants
- 3 image prompts
A condensed excerpt from docs/SAMPLE_OUTPUTS.md, included to show the shape of the generated pack rather than claim campaign performance.

Operations and durability

  • Campaign metadata is stored in SQLite under the managed storage root; generated images and export ZIPs are routed through a separate asset-store boundary.
  • Campaign records carry retention expiry data. The scheduled cleanup command removes expired records, image assets, and export bundles; the documented default retention window is 30 days.
  • FastAPI exposes a health endpoint with basic hardening headers, while tracing is opt-in and optional integrations are expected to degrade specific features rather than the whole application.
  • Live LLM and image providers are optional. The local default is mock mode, and provider failures can fall back to mock output for the supported demo path.

Hosted boundaries

The hosted-control layer treats a workspace as the tenant boundary. API keys or dashboard password mode protect access, campaign reads and asset paths are scoped to the workspace, and usage caps plus audit events sit below the UI. The repository is explicit that this is a starter hosted-control layer, not a complete identity or multi-client SaaS system.

  • The API tests cover workspace-scoped campaign reads, image access, exports, regeneration, image approval, and a 429 usage-limit response.
  • The current limitations include environment-backed dashboard auth, no exposed API-key rotation workflow, and role metadata that is not yet enforced as a full permission model.
  • The hosted MVP still calls for a managed relational database, non-filesystem asset storage, backup/restore, secret management, and operational alerting before stronger production claims.

Testing, demo and runbooks

The repository has automated tests around the GenAI workflow, asset-store boundaries, retention cleanup, FastAPI auth and health behaviour, workspace isolation, image review, export, and usage limits. The documented demo path is reproducible: make demo, inspect demo_outputs/latest, then run the API and dashboard for the interactive walkthrough.

Read the demo script ↗Inspect sample outputs ↗Read durable storage notes ↗Browse workflow and API tests ↗

Current maturity

CampaignForge is an in-progress starter product and portfolio-ready technical demonstration. It has a coherent local workflow and supporting hosted-control design, but the repository itself says the first hosted cut still needs managed database rollout, non-filesystem asset storage, backup and restore, secret management, and production monitoring before it should be described as production-ready.

What I learned

  • Structure matters more than prompt quality when building multi-step AI systems.
  • Constraining outputs improves usability and reduces downstream friction.
  • Designing for real workflows requires thinking beyond individual model calls.

Where to look

GitHub ↗

Repository snapshot

Repo
CampaignForge AI
Language
TypeScript
Updated
Apr 1, 2026