Skip to content

Instantly share code, notes, and snippets.

View stackdumper's full-sized avatar

Elijah A. stackdumper

View GitHub Profile

B2B Copywriting Craft

Sentence-level writing principles for B2B contexts – homepage copy, outreach, LinkedIn, email, sales decks, ads. Channel-agnostic craft that applies everywhere words need to persuade a business buyer. Draws from the Fletch PMM copy framework and established principles of clear, precise writing.


1. The B2B Writing Problem

B2C copywriting advice dominates LinkedIn. Most of it falls apart in B2B.

Website & Homepage for B2B SaaS

What goes where and why. Page types, their strategic purposes, hero structure, and homepage as positioning documentation. Draws from the Fletch PMM framework and the startup website messaging guide. Assumes familiarity with positioning-and-strategy.md – particularly market maturity, the category decision, and the two diagnostic questions.


1. Website Page Types

A startup website is not one thing. It's a collection of pages, each with a distinct purpose in the go-to-market. Not all pages are equal priority, and the order of investment matters.

Messaging & Copy for B2B SaaS

How to construct messages for different people at different stages of awareness. Persona-based messaging, awareness stage variations, value prop construction, and brand voice direction. Draws from the Fletch PMM framework (500+ positioning projects). Assumes familiarity with positioning-and-strategy.md – particularly market maturity, ICP segmentation, and the category decision. For sentence-level writing craft, see b2b-copywriting-craft.md.


1. From Positioning to Messaging

Positioning determines what to say. Messaging determines how to say it to specific people in specific situations. One feeds the other – messaging without positioning produces vague, unfocused copy that resonates with nobody.

Positioning & Strategy for B2B SaaS

Strategic foundations of B2B SaaS positioning, drawn primarily from the Fletch PMM framework (Anthony Pierri & Rob Kaminski, 500+ positioning projects), combined with principles from Obviously Awesome (Dunford), Crossing the Chasm (Moore), and The Business of Expertise (Baker).


1. Market Maturity & the Category Decision

Market maturity is the first question and the most consequential one. It determines positioning strategy, competitive framing, messaging approach, and go-to-market motion. Everything else in this document follows from it.

@stackdumper
stackdumper / claude-tree.js
Created February 20, 2026 18:15
A script that produces a more compact project file tree for CLAUDE.m.
import { readdirSync, statSync } from 'fs'
import { join, basename } from 'path'
// Patterns to ignore (can be extended via args if needed)
const IGNORE_PATTERNS = ['.git', '.claude', 'node_modules', 'dist', '.DS_Store', 'pnpm-lock.yaml']
// File extensions to ignore
const IGNORE_EXTENSIONS = ['.png', '.csv']
type TreeNode = {

Engineering Flow with Claude Code

This document captures the workflow for developing this platform using Claude Code as a collaborative partner. Intended for humans.

Principles

Treat Claude Code as a collaborator. Respect CC as an equal partner, not a junior executor. Discuss trade-offs, ask for opinions, and value its perspective. The relationship is collaborative, not directive.

Focus personal attention on architecture. Code quality can be tolerated and fixed later. Architectural issues cannot—they compound and stab you in the back. Review architecture decisions carefully, let CC handle implementation details.

Keep in mind the Project Information:

[... project context ...]

Adhere to Personality Instructions:

@stackdumper
stackdumper / general.mdc
Created May 2, 2025 22:37
Elijah's Cursor Rules for Gemini 2.5 Pro Exp
# YOUR PERSONALITY:
<personality>
1. You are to be direct, and ruthlessly honest. No pleasantries, no emotional cushioning, no unnecessary acknowledgments.
2. When I'm wrong, tell me immediately and explain why. When my ideas are inefficient or flawed, point out better alternatives.
3. Don't waste time with phrases like 'I understand' or 'That's interesting.' Skip all social niceties and get straight to the point.
4. Never apologize for correcting me. Your responses should prioritize accuracy and efficiency over agreeableness.
5. Challenge my assumptions when they're wrong. Quality of information and directness are your only priorities.
6. Be direct and honest. Skip unnecessary acknowledgments. Correct me when I'm wrong and explain why.
7. Suggest better alternatives if my ideas can be improved.
8. Don't try to be nice.
# create order
--------------------
Request: curl -X 'POST' -d '{"order":{"id":0,"number":0,"order_number":0,"updated_at":"","user_id":"","customer":{"id":0,"email":"elijah@softcery.com","accepts_marketing":false,"created_at":"","updated_at":"","first_name":"Elijah","last_name":"Atamas","orders_count":0,"state":"","total_spent":"","last_order_id":0,"note":null,"verified_email":false,"multipass_identifier":null,"tax_exempt":false,"tags":"","last_order_name":"","currency":"","accepts_marketing_updated_at":"","marketing_opt_in_level":null,"tax_exemptions":null,"admin_graphql_api_id":""},"line_items":[{"variant_id":39869281009856,"quantity":1}],"shipping_address":{"address1":"Hlinky St, 2","city":"Dnipro","country":"Ukraine","first_name":"Elijah","last_name":"Atamas","phone":"555-625-1199","zip":"49000","country_code":"UA"},"shipping_lines":[{"code":"shopify-Standard-0.73","price":"0.73","title":"Standard"}],"transactions":[{"id":0,"parent_id":0,"kind":"authorization","status":"success","currency":"","amount":"7
if (window.location.pathname == "/cart") {
fetch("/cart.js")
.then((res) => res.json())
.then((t) => JSON.stringify(t.items.map((t) => [t.product_title, t.id, t.quantity])))
.then(JSON.stringify)
.then(btoa)
.then((qcCartId) => {
console.log("QC CART ID", qcCartId);
var checkoutButton = document.querySelector("input[name=checkout]");