~ / rigs / Freakling / SaaSAllTheThings

Freakling/SaaSAllTheThings

Build a B2B SaaS from scratch, or turn a working proof of concept or existing app into a mature, multi-tenant SaaS on Azure, with an AI assistant: you own the product, the framework owns and enforces the architecture (event-driven Azure Fun

↗ GitHub ★ 0 MIT updated today project Claude CodeCodex Claude plugin
share on X
ARCHETYPE
Fort Knox
Deny lists, pre-tool hooks, sandboxing. Nothing touches prod without a signature.
CONTEXT TAX · EVERY TURN
~3.9k tokens
Moderate · median rig: 2.3k · breakdown
GUARDRAILS
4/5
Blocks destructive commands · Pre-tool screening hook · No YOLO mode · Sandbox or ask-first rules · details

Copy this rig

# review before running: this installs third-party code
$ npx degit Freakling/SaaSAllTheThings/framework/.claude ./rig-saasallthethings  # inspect, then merge into .claude/

MCP servers are added to Claude Code at local scope; env vars are shown as YOUR_… placeholders — we never store values. Files are fetched with degit into a separate folder so you can review before merging.

$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/acceptance .claude/skills/acceptance
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/align .claude/skills/align
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/architect .claude/skills/architect
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/assess .claude/skills/assess
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/design .claude/skills/design
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/drift-reset .claude/skills/drift-reset
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/feedback .claude/skills/feedback
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/integrate .claude/skills/integrate
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/next-task .claude/skills/next-task
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/product .claude/skills/product
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/prune .claude/skills/prune
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/refresh-model-sizing .claude/skills/refresh-model-sizing
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/release .claude/skills/release
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/roadmap .claude/skills/roadmap
$ npx degit Freakling/SaaSAllTheThings/framework/.claude/skills/tenant .claude/skills/tenant
$ npx degit Freakling/SaaSAllTheThings/skills/saas-all-the-things .claude/skills/saas-all-the-things
$ npx degit Freakling/SaaSAllTheThings/skills/saas-assessment .claude/skills/saas-assessment
$ npx degit Freakling/SaaSAllTheThings/skills/saas-design-session .claude/skills/saas-design-session
$ curl -fsSL --create-dirs -o .claude/agents/builder.md https://raw.githubusercontent.com/Freakling/SaaSAllTheThings/main/framework/.claude/agents/builder.md
$ curl -fsSL --create-dirs -o .claude/agents/reviewer.md https://raw.githubusercontent.com/Freakling/SaaSAllTheThings/main/framework/.claude/agents/reviewer.md

Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.

{
  "permissions": {
    "deny": [
      "Bash(git push --force *)",
      "Bash(git push -f *)",
      "Bash(git reset --hard *)",
      "Bash(git commit --no-verify *)",
      "Bash(git commit -n *)",
      "Bash(azd down *)",
      "Bash(az group delete *)"
    ],
    "ask": [
      "Bash(git commit *)",
      "Bash(git push *)",
      "Bash(git rebase *)",
      "Bash(git restore *)",
      "Bash(git checkout -- *)",
      "Bash(git -c *)",
      "Bash(git config *)",
      "Bash(az deployment *)",
      "Bash(az functionapp *)",
      "Bash(az ad *)",
      "Bash(az role *)",
      "Bash(az keyvault *)",
      "Bash(az cosmosdb *)",
      "Bash(az servicebus *)",
      "Bash(az storage *)",
      "Bash(azd *)",
      "Bash(func azure *)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/guard-commands.sh\""
          }
        ]
      },
      {
        "matcher": "Edit|Write|MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/guard-authority.sh\""
          }
        ]
      }
    ]
  }
}

Skills (18)

Subagents (2)

builder
model: inherit
Builds one claimed TASKS.md item in a fresh context, within the SaaSAllTheThings reference architecture, and reports back in a few lines, so the main session''s context stays small. Used by the next-t
reviewer
model: inherit
Reviews a finished, uncommitted change against its TASKS.md item, the SaaSAllTheThings rules and the reference architecture (tenant isolation, identity, messaging, layers, cost), with fresh context, a

Hooks (3)

eventmatcherruns
PreToolUseBashbash "$CLAUDE_PROJECT_DIR/.claude/hooks/guard-commands.sh"
PreToolUseEdit|Write|MultiEditbash "$CLAUDE_PROJECT_DIR/.claude/hooks/guard-authority.sh"
Stop*bash "$CLAUDE_PROJECT_DIR/.claude/hooks/stop-check.sh"

Permissions

deny (7)
Bash(git push --force *)
Bash(git push -f *)
Bash(git reset --hard *)
Bash(git commit --no-verify *)
Bash(git commit -n *)
Bash(azd down *)
Bash(az group delete *)
ask (17)
Bash(git commit *)
Bash(git push *)
Bash(git rebase *)
Bash(git restore *)
Bash(git checkout -- *)
Bash(git -c *)
Bash(git config *)
Bash(az deployment *)
Bash(az functionapp *)
Bash(az ad *)
Bash(az role *)
Bash(az keyvault *)
Bash(az cosmosdb *)
Bash(az servicebus *)
Bash(az storage *)
Bash(azd *)
Bash(func azure *)
allow (13)
Bash(bash tools/check.sh)
Bash(bash tools/check.sh *)
Bash(git status)
Bash(git status *)
Bash(git diff *)
Bash(git log *)
Bash(git show *)
Bash(git grep *)
Bash(git rev-parse *)
Bash(git add *)
Bash(dotnet build *)
Bash(dotnet test *)
Bash(bicep build *)

Similar rigs

copied ✓