Unwrapped

Legacy SaaS dossier · asana

Asana

Asana

CategoryProject / task managementAsana Business, 200 seatsSite ↗

A nested checklist with assignees and due dates, dressed up as portfolios, goals, workload, timelines, and Workflow Bundles™.

01 · Data

Data the SaaS sits on

Slack
SlackYours
Directory (SSO)
Directory (SSO)Yours
Linear (eng tickets)
Linear (eng tickets)API

Internal Build Score

0.84

Feasibility of a useful internal substitute for the actually-used 20% of this SaaS, built with Claude and your own data layer.

IBS = 0.25·U + 0.25·C + 0.20·D + 0.15·I + 0.15·Mthis record · 84%
  • U

    User adoption gap

    weight 0.250.85

    How much licensed surface area sits idle.

  • C

    Core simplicity

    weight 0.250.92

    How small the actually-used 20% is when re-implemented honestly.

  • D

    Data portability

    weight 0.200.75

    How clean the exit is, exports, formats, audit lock.

  • I

    Integration burden (inverse)

    weight 0.150.78

    How few external systems must keep working through the SaaS.

  • M

    Moat erosion

    weight 0.150.90

    How much the original differentiator has been commoditised by LLMs + cheap infra.

Editorial heuristic. Not investment advice, not a procurement recommendation.

03 · Feature usage

Commonly used vs. rarely touched

Commonly used

05

  • Tasks with assignees + due dates
  • Projects grouping tasks
  • Comment threads per task
  • Per-person 'what's on my plate' view
  • Status updates roll-up to the project

Rarely touched

07

  • Goals + OKR tracking module nobody fills out twice
  • Portfolios of portfolios
  • Workload + capacity planning with made-up estimates
  • Workflow Bundles, a no-code engine sold separately
  • Forms, Approvals, Proofing, each shipped as its own pillar
  • AI Studio, a per-seat upsell on top of the seat upsell
  • Universal Reporting that re-implements a worse Looker

Internal build

Build it yourself

01 · Stack & flow

Linear
Linear
Postgres
Postgres
Slack
Slack
Claude API
Claude API

Internal build map

Data in

Tasks table
Slack channel
Directory

Agent layer

Digest writer
Comment classifier

Logic

compute 7d delta
tag blockers
render digest
due-today ping

Outputs

Board view
Friday digest
DM reminders
Build time
3 weeks
Run cost
$1.5/seat·mo
vs. SaaS
$60K / yr

Build outline

  1. Tasks + projects schema, four tables
  2. Board / list view in Next.js
  3. Slack bot for due-today + overdue
  4. Claude writes the Friday status digest
  5. Linear for engineering, don't re-implement issues

02 · Claude prompt

First, map what you actually use (optional)
Step 1 · usage audit prompt

// Asana usage audit, scope the rebuild Input: the project list with last-activity dates, custom-field definitions with fill rates, and the rules / Workflow Bundles configured. ## Do 1. Mark each project as active, archive, or dead by last activity. 2. Keep only custom fields populated on > 10% of tasks. 3. List rules that send notifications or touch external tools; drop the field-only rest. ## Output JSON: { keep_projects[], keep_fields[], keep_rules[], drop[] }.

Step 2 · rebuild the core

// Weekly status digest, per project You receive (a) a project name, (b) the task table delta from the last 7 days (added / closed / slipped / blocked), and (c) the project's stated goal for the quarter. ## What you must do 1. Open with one sentence: are we on track, drifting, or off? 2. List 3–6 bullets: "Shipped", "Slipped", "Blocked", each with the task title + assignee, and one phrase of context. 3. Close with one sentence: the single thing the team should do next week. ## What you do not do - Do not estimate completion percentages. - Do not invent task titles or names. - Do not invent blockers, only what the comments show. ## Style - Plain text. Markdown headings allowed. ≤ 220 words.

03 · Result

Friday digest for Project Lighthouse
tasks:lighthouse#wk32

Drifting. Shipped onboarding v2; slipped billing migration (Sarah); blocked on legal review.