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 · Build it

Paste into Cursor or Claude Code in an empty repo. It scaffolds the working core, with the AI step embedded.

Build prompt · Asana

// Build: internal task tracker (Asana replacement) # Paste into Cursor or Claude Code in an empty repo. Build an internal task tool covering the part of Asana we use: tasks with assignees + due dates, projects, comments, a "my plate" view, and a weekly status digest. Ship a working v1. (Use Linear for engineering; don't rebuild issues.) Stack: Next.js + Postgres (Drizzle) + Slack. Data model: - tasks(id, project_id, title, assignee_id, due_date, status, updated_at) - projects(id, name, goal) - comments(id, task_id, author_id, body, created_at) Build, in order: 1. Board + list views; "my plate" filtered to the current user. 2. A Slack bot for due-today and overdue pings. 3. AI assist, a Friday status digest per project. Call Claude: """ Given a project, its 7-day task delta (added/closed/slipped/blocked), and its quarter goal, write <=220 words: one line on-track/drifting/off, then Shipped / Slipped / Blocked bullets (task + assignee + one phrase), then the single next step. Don't invent tasks or blockers; no percentages. """ Skip: the goals/OKR module, portfolios, workload planning, Workflow Bundles. Done when: a team runs a week on the board and gets an automatic Friday digest in Slack.

03 · Result

Friday digest for Project Lighthouse
tasks:lighthouse#wk32

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