Job ticket 629162 · smb · trailhead · no subscription
Basecamp's product is a doctrine about writing things down. The doctrine is free.
This page is a trailhead. Paste a project's messy reality and a free-tier model posts the board: why this exists in one breath, the shape of the work, named owners — with UNOWNED printed where nobody owns it — working agreements, what you're NOT doing, and the biggest hole in a callout. Then every Friday, paste the week's fragments and get the check-in digest: moved, stuck, decided, drifting. Host it in email, a wiki, or Basecamp's own free single project.
Basecamp is a trademark of 37signals, LLC. This is an independent, unaffiliated comparison built on Basecamp's own pricing page, linked below and re-read every thirty days.
The board — rendered in this browser
Sample data is illustrative, not a claim about Basecamp. Every Basecamp figure on this page comes from the linked pricing page, read 2026-09-27.
The prompt pack
Two prompts, each mapped one-to-one onto a Basecamp feature you are currently rationed on. Run them from this page with a free key, or copy them into any free chat model — the text is identical either way, and it is printed in full at the bottom of this section so it survives this site.
Loading the pack from tools.json… If this fails, the full prompt text is still readable below.
One-time unlocks only, never a subscription. If a price ever appears here it was read from Stripe in that request, not typed by hand. An unlock is client-side gating, not secure payment verification: it is stored in this browser and cannot prove payment to anyone else.
What Basecamp's own pricing page says
Read from basecamp.com/pricing on 2026-09-27. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.
| The job | Basecamp Free | Unlimited Edition (US$300/mo) | This page + a free-tier model |
|---|---|---|---|
| Price | US$0 — 1 project, 1GB, 5 users | US$300 /month flat, unlimited projects and users, 1TB | US$0 forever. A free-tier key costs nothing; the prompts are yours. |
| The kickoff ritual | A message board, if you write the post | A message board, if you write the post | Prompt 1 writes it: why, shape, owners, exclusions, holes named — the doctrine's opening move, done |
| Weekly check-ins | Automatic check-in prompts, on the paid rungs of the ladder | Automatic check-ins ask; someone still writes | Prompt 2 presses the week's fragments into the digest — attributed, quoted, drift surfaced |
| Hosting the project | Their single free project — genuinely useful | Their servers, generously | Anywhere text lives. One honest kickoff post makes even the free single project go far |
What this replaces, and what it does not
A displacement claim you cannot substantiate is a lie with good typography. This is the whole scope, including the parts where Basecamp wins.
Replaced: the kickoff craft
The written source of truth with the discipline Basecamp preaches: exclusions mandatory, owners named or UNOWNED, the biggest risk in a callout nobody can claim surprise about.
Replaced: the status meeting
The Friday digest: moved/stuck/decided/drifting from the week's actual fragments, quoted and attributed — thirty minutes of meeting becomes one paste.
Replaced: drift detection
DRIFTING and UNOWNED as printed verdicts — the two words that catch the failures projects only confess in month three.
NOT a project host
No message boards, no to-do apps, no file storage, no Campfire chat, no hill charts. Basecamp's software is pleasant and its free project is real — this desk writes the documents it would host.
NOT task management
The kickoff's first three to-dos are a starting push, not a tracker. Your task tool — or Basecamp's — keeps the running list.
NOT the Confluence or Sunsama desks
Knowledge architecture lives at the Confluence desk; one person's day lives at the Sunsama daybook. The trailhead governs one project's shared understanding — a third, distinct document.
The prompts, in full, as text
Copy these into any model. They are the product; the page around them is convenience. Each block is the exact system prompt the interactive runner sends, plus the user-message template.
Prompt 01 — 1. Kickoff post · basecamp-kickoff-post v1.0.0 · best ally: Groq Cloud — free tier · llama-3.3-70b-versatile
Replaces: The project's written source of truth — Basecamp doctrine's opening move — with holes marked honestly instead of papered into confidence.
Why this model: A kickoff post is one bounded composition under honesty constraints — no invented dates, no unowned work, holes named. Fast instruct output makes redrafting cheap, and redrafting is how the team argues its way to an actual shared why. Fallback ally: Copy-Paste Relay.
System prompt (2571 chars):
You write project kickoff posts: the single written page a team points at for the life of a project. You organize what the team stated; you never manufacture certainty they don't have. A hole named in the kickoff is a feature — it's the project telling the truth on day one.
Return ONLY one JSON object. No markdown fences, no commentary, no preamble.
{
"title": string (max 10 words: the project's name, plain),
"blocks": [
{ "type": "h2", "text": "Why this exists" },
{ "type": "p", "text": string (max 55 words: the why in one breath, from the stated reality — the paragraph someone reads in month three when scope arguments start) },
{ "type": "h2", "text": "The shape of it" },
{ "type": "p", "text": string (max 60 words: what the work roughly is, phases if stated, and what DONE means in observable terms from the input — or '[done needs defining — decide this before starting, not during]') },
{ "type": "h2", "text": "Who's on it" },
{ "type": "ul", "items": [ string (2-6 entries, max 16 words each: name/role from input — what they own; unowned areas listed as 'UNOWNED: ...' verbatim) ] },
{ "type": "h2", "text": "Working agreements" },
{ "type": "ul", "items": [ string (3-5 entries, max 18 words each: cadence, where decisions live, how blockers get raised — from stated habits, or proposed and marked '(proposed)') ] },
{ "type": "h2", "text": "What we're not doing" },
{ "type": "ul", "items": [ string (2-4 entries, max 14 words each: the adjacent scope explicitly parked, from stated worries) ] },
{ "type": "h2", "text": "First three to-dos" },
{ "type": "todo", "items": [ string (exactly 3, max 16 words each, each with ' — <owner>' from the input; if no owner exists, ' — UNOWNED' and it counts as a hole) ] },
{ "type": "callout", "text": string (max 35 words: the project's biggest named hole or risk, from the input, stated plainly so nobody can later claim surprise) }
]
}
Hard rules:
1. Nothing invented: dates, owners and done-criteria come from the input or render as marked holes ('UNOWNED', '[done needs defining...]'). The post's credibility IS the product.
2. 'What we're not doing' is mandatory — a kickoff without exclusions is a scope dispute with a start date.
3. The why must survive being read aloud to a skeptic; no mission-statement fog ('empower', 'seamless', 'best-in-class' banned).
4. Working agreements are behaviors, not values ('blockers get posted the day they appear, not at the weekly' — never 'we communicate openly').
5. Write in the language of the input.
User message template:
Variables:
{{project_reality}}— The project, honestly (max 4000 chars) sample data shipped with the tool{{team_habits}}— How the team works (max 1000 chars) sample data shipped with the tool
Output schema (the answer must match this exactly):
Decoding: temperature 0.35 · max 1300 output tokens · responseMimeType application/json · budget ~1,400 in / ~750 out per kickoff · cost per run: 1 request per project, redrafts free — against Groq's published 1,000 requests/day base.
Prompt 02 — 2. Weekly check-in digest · basecamp-checkin-digest v1.0.0 · best ally: Google Gemini API — Free usage tier · gemini-2.5-flash-lite
Replaces: Basecamp's automatic check-ins ritual: the week's scattered updates pressed into one attributed digest — the status meeting that didn't happen, as a page.
Why this model: The digest reads a week of fragments and must attribute every claim to a pasted update — quoted, never embellished; long free-tier context plus JSON mode is the right machine for read-everything-then-account work. Fallback ally: Copy-Paste Relay.
System prompt (1982 chars):
You press one week of a project's scattered updates into a check-in digest. You are a rapporteur: everything attributed as pasted, nothing embellished, and drift — decisions that evaporated, blockers nobody chased — surfaced instead of smoothed.
Return ONLY one JSON object. No markdown fences, no commentary.
{
"title": string (max 8 words: the week, dated if the input dates it),
"blocks": [
{ "type": "h2", "text": "What moved" },
{ "type": "ul", "items": [ string (2-6 entries, max 22 words each: progress with the doer named as pasted and a quoted fragment where one exists) ] },
{ "type": "h2", "text": "What's stuck" },
{ "type": "ul", "items": [ string (1-4 entries, max 22 words each: the stuck thing, its named blocker from the paste, and how long if stated — or 'no blocker named: that IS the finding') ] },
{ "type": "h2", "text": "Decisions" },
{ "type": "ul", "items": [ string (1-4 entries, max 24 words each: 'DECIDED: ...' with who, as pasted; or 'DRIFTING: ...' for questions discussed but never closed this week) ] },
{ "type": "h2", "text": "Open questions, with owners" },
{ "type": "ul", "items": [ string (1-4 entries, max 20 words each: the question + ' — <owner>' from the paste, or ' — UNOWNED') ] },
{ "type": "callout", "text": string (max 32 words: next week's single most load-bearing item, chosen from the paste, with its owner) }
]
}
Hard rules:
1. Every entry traces to a pasted update; quoted fragments are verbatim. If the week's paste is thin, the digest is short — thinness is information.
2. DRIFTING is mandatory where the paste shows a question discussed without closure. Drift named early is a decision saved.
3. No praise, no velocity adjectives ('great progress'), no interpretation of mood. The digest reports work, not feelings.
4. UNOWNED is printed wherever the paste assigns nobody — the digest never invents an owner to make the page look managed.
5. Write in the language of the updates.
User message template:
Variables:
{{updates}}— The week's raw updates (max 10000 chars) sample data shipped with the tool{{last_open}}— Last week's open questions (max 1500 chars) sample data shipped with the tool
Output schema (the answer must match this exactly):
Decoding: temperature 0.25 · max 1100 output tokens · responseMimeType application/json · budget ~2,200 in / ~600 out per week · cost per run: 52 requests a year against Gemini's free daily allowance — the standing status meeting, dissolved into pastes.
Questions worth asking before you cancel
Does this need an API key?
No — copy either prompt into any free chat model and paste the JSON back; the board renders locally. A free Groq or Gemini key just removes the hop.
What does Basecamp cost, honestly?
What we could verify on 2026-09-27: Free is 1 project, 1GB, 5 users; the Unlimited Edition is US$300/month flat (the FAQ's own words: '$300/month total'), with trials up to 45 days. The Freelancer/Studio/Pro tiers between exist with printed project/storage ceilings — but their dollar prices did not render in our capture, so this page marks them unconfirmed instead of quoting hearsay.
Isn't this just... writing?
Yes — that's the entire point, and 37signals has been saying so for twenty years. The doctrine was always writing; the software is a pleasant place to put it. These prompts do the writing's heavy lift from your pasted reality, and the venue becomes a genuinely free choice.
What if my team won't read a kickoff post?
Then no tool at any price fixes the problem, and the trailhead at least proves it cheaply. In practice: posts that name their own holes get read, because UNOWNED next to your area is the most effective notification ever shipped.
Send this to someone still paying for it
Nothing is loaded from X or LinkedIn until you click, and no share is counted, logged or reported back to us — the buttons are plain links to each network's own share page.