Retour aux projets

Origo

AI-powered project brief generator

En développementPublic
Next.jsTypeScriptAnthropic ClaudeVercel AI SDKTailwind CSSSaaS

Origo

AI-powered project brief generator for agencies, freelancers, and teams.

The Problem

Most project failures start before a single line of code is written. Scope creep, endless revisions, misaligned expectations -- they all trace back to a missing or incomplete brief. Freelancers and agencies spend hours extracting requirements from clients through back-and-forth emails, only to end up with vague, unstructured documents that leave critical decisions undefined.

The brief is the foundation of every project. Without a structured one, teams estimate blindly, clients change direction mid-build, and deadlines slip. The industry needed a way to turn a 30-minute client conversation into a comprehensive, professional brief -- without the overhead.

Our Solution

Origo is Jo&PC's own SaaS platform. Unlike our client projects, Origo is a product we conceived, designed, architected, and deployed ourselves -- it represents our full-stack capability distilled into a single, investor-ready product.

The platform guides users through a structured input flow: project type, client context, goals, target audience, deliverables, timeline, budget, and constraints. Once collected, Claude (Anthropic's AI) transforms these raw answers into a comprehensive, professional project brief -- formatted, structured, and ready to share.

Users can export briefs as PDF, copy them directly, or share via a unique link (no account required on the client side). All briefs are stored locally, so users can revisit, reuse, and track past projects.

Architecture

Origo follows a modern serverless architecture optimized for speed and cost efficiency.

The Next.js frontend handles both the guided input flow and brief rendering, with server-side generation for shared brief pages. The AI pipeline uses Anthropic's Claude API via the Vercel AI SDK for streaming responses -- users see their brief being generated in real time rather than waiting for a full response.

Internationalization is built in from day one (FR/EN), with locale-aware routing and translated UI throughout.

Key Design Decisions

  • Streaming generation: Briefs are generated using Claude with streaming enabled via the Vercel AI SDK. Users see content appear progressively, which dramatically improves perceived performance and engagement.
  • Local-first storage: Brief data is persisted client-side, reducing server costs and giving users full control of their data. No account required for basic usage.
  • Shareable links: Each brief generates a unique URL that clients can view without creating an account, reducing friction in the handoff process.
  • Bilingual by default: Full FR/EN support with Next.js i18n routing, reflecting our France-based market while targeting international clients.

Tech Stack

Layer Technology Rationale
Framework Next.js, TypeScript SSR for shared briefs, type safety, App Router for modern patterns
AI Anthropic Claude, Vercel AI SDK Best-in-class reasoning for structured document generation, streaming support
Styling Tailwind CSS Rapid iteration on premium dark UI with design token consistency
Infrastructure Vercel Zero-config deployments, edge functions, analytics
Export PDF generation Client-ready deliverables with one click

Code Patterns

// AI brief generation with streaming
import { streamText } from "ai";
import { anthropic } from "@ai-sdk/anthropic";

async function generateBrief(inputs: BriefInputs) {
  const result = streamText({
    model: anthropic("claude-sonnet-4-20250514"),
    system: BRIEF_SYSTEM_PROMPT,
    messages: [
      {
        role: "user",
        content: formatInputsAsPrompt(inputs),
      },
    ],
    maxTokens: 4096,
  });

  return result.toDataStreamResponse();
}
// Shareable brief link generation
function generateShareableLink(briefId: string): string {
  const token = encodeBase64url(briefId);
  return `${SITE_URL}/brief/${token}`;
}

// Client views brief without authentication
async function getBriefByToken(token: string): Promise<Brief | null> {
  const briefId = decodeBase64url(token);
  return briefs.findById(briefId);
}

Outcomes

  • Brief generation in under 2 minutes: What previously took hours of back-and-forth emails is now a guided 5-minute input flow followed by instant AI generation.
  • PDF export and client sharing: Professional deliverables that clients can review without creating an account, reducing friction in the sales process.
  • Bilingual platform: Full FR/EN support serving our primary French market while targeting international agencies and freelancers.
  • Jo&PC's flagship product: Origo validates our ability to ship end-to-end -- from market research and product design through architecture, development, deployment, and ongoing operations.