Home
Ashavid
Back to Portfolio
Built by AshaVidMarTech / AIBuilt 2026

Contivo

An AI marketing platform built around the observation that teams do not need more generated content — they need the strategy layer that decides what is worth producing.

Brand MemoryIntelligenceIdeationPipelinePublish
Context first, generation last — the pipeline runs in that order by design.
  1. Interface

    What the user touches

    • Next.js 15
  2. Application

    Where the rules run

    • NestJS
    • Prisma
    • BullMQ + Redis
    • Clerk
  3. Intelligence

    Models and ingestion

    • Gemini + OpenAI
  4. Data

    What persists

    • PostgreSQL
  5. Platform

    What it runs on

    • Turborepo

A compact view of the venture

Venture
Contivo
Category
AI marketing intelligence
Stage
Live platform
Core challenge
Content tools that skip the strategy layer
Our role
Product design and full-stack build
Focus areas
Brand memory, competitor intel, ideation, publishing

Why we started building this

The AI writing tool market filled up quickly, and almost all of it converged on the same shape: a prompt box that returns a draft. The draft is usually fine. The problem is that nobody was struggling to produce drafts.

What teams were actually missing sat upstream — a durable picture of their own brand, a real view of what competitors were doing, and a defensible reason to write one thing rather than another.

Contivo was built from that gap. It treats content production as the last step of a pipeline rather than the whole product, and it keeps the context that makes each step better than a cold prompt.

Generating content is the cheap part. Knowing which content is worth generating is the part that needs a system.

What we built

A monorepo platform pairing a Next.js 15 workspace with a NestJS API, built around persistent brand knowledge that feeds every downstream feature from competitive analysis to scheduled publishing.

  • Brand Memory

    Extracted and then editable brand knowledge that persists across sessions, so the system reasons from accumulated context rather than a fresh prompt each time.

  • Market matrices

    Competitive landscape mapping rendered as scatter-plot positioning charts.

  • Competitor and keyword intelligence

    Structured intelligence on competitor keywords, products, and services alongside the client’s own.

  • Ideation engine

    Framework-based idea generation that draws on brand memory and competitive context.

  • Content pipeline and publishing

    Production workflow with manual source support, a publishing schedule, and a calendar flow.

  • Strategic reports

    Generated PDF market-intelligence reports combining positioning matrices, keyword intelligence, and recommendations.

Why this needed to exist

  • AI content tools optimise for output volume, which is the metric least correlated with marketing results.

  • Without persistent brand context, every generation starts cold and produces generically competent copy.

  • Competitive intelligence and content production usually live in separate tools that never talk to each other.

  • Long-running AI work — scraping, analysis, report generation — cannot run inside a request/response cycle.

  • A workspace with this many surfaces needs shared types, or the frontend and backend drift apart within weeks.

How we framed the opportunity

The architecture follows from one bet: that the value is in the context layer, and that everything else is a consumer of it.

Context is the product, generation is a feature

Brand Memory sits at the centre. Ideation, reports, and pipeline all read from it, which is what separates the output from a generic prompt result.

Split the runtime by workload, not by fashion

Next.js handles the interactive workspace; NestJS owns long-running and queued work. BullMQ and Redis carry anything that outlives a request.

Model redundancy is an availability requirement

Gemini with an OpenAI fallback, because a platform whose core loop is a model call cannot have a single point of failure.

Shared types are load-bearing in a monorepo

A packages/types workspace with Zod schemas keeps the API and the web app honest across every feature surface.

Where the existing options fell short

What the tool market offered

  • Strong single-purpose generators for posts, ads, and long-form copy.
  • Fast time-to-first-draft with very low setup cost.
  • Good enough quality for teams that already know what they want to say.

What was missing

  • Memory of the brand that survives past a single session.
  • Competitive context connected to the content decision.
  • A reason to choose one topic over another, rather than a faster way to write both.
  • The workflow between an idea and a published piece.

The decisions that shaped the product

Make brand knowledge durable and editable

Extraction gets the system started; human editing keeps it correct. Both matter, and the second is what most tools omit.

Connect intelligence to production

Competitor and keyword analysis are not a separate report — they are inputs to the ideation and pipeline surfaces.

Queue everything slow

Scraping, analysis, and report generation run as background jobs so the workspace stays responsive under real workloads.

How it came together

  1. Phase 1

    Monorepo, schema, and shared types

    Establish the Turborepo structure, Prisma schema, and Zod type package before building feature surfaces against them.

  2. Phase 2

    Brand memory and intelligence layer

    Build extraction, editing, competitor keyword intelligence, and market matrices — the context every later feature reads from.

  3. Phase 3

    Ideation, pipeline, and publishing

    Layer the production workflow on top: framework-based ideation, content pipeline, publishing calendar, and PDF strategic reports.

Where the product stands today

  • A working monorepo with a Next.js 15 workspace and a NestJS + Prisma API
  • Brand Memory extraction with a full editing surface
  • Competitor keyword and product intelligence connected to ideation
  • Market positioning matrices rendered as scatter-plot charts
  • Generated PDF strategic reports combining matrices, keywords, and recommendations
  • A content pipeline with publishing schedule and calendar flow
  • Admin controls for platform limits and AI model settings

What building this taught us

  • The scarce input in marketing tooling is judgment, not text.
  • Persistent context is what separates a product from a prompt.
  • Anything that calls a model needs a fallback path.
  • Split services by workload shape, not by architectural preference.
  • Shared types are the cheapest insurance a monorepo can buy.

We build the products we would want to operate ourselves.

Contivo is one of the ventures we design, build, and run in-house at AshaVid.