Repository navigation
v0.7.0
What's new
- README: "Part of Director-Driven Development". A new section after the opening description places SaaSAllTheThings among the three Director-Driven Development frameworks (Godot-Director, App-Director, SaaSAllTheThings), and links the step-by-step guide to building a B2B SaaS on Azure with it.
- The upgrade-file check ignores nested clones.
git ls-fileslists a nested repository in an ignored folder (such as a clone inwork/) as a directory, which blocked every commit while no upgrade file existed. The pre-commit hook, the/aligncheck and onboarding now keep only paths that end in.satt-new, so a real upgrade file still blocks the commit. The self-test checks both cases. - The self-test skips .NET without an SDK. A machine with the .NET runtime host but no SDK ran the .NET checks, and three of them failed. The self-test now skips the .NET part unless
dotnet --list-sdkslists an installed SDK, with the same message as a machine without dotnet. Where an SDK is installed, the .NET part runs as before. - One commit model, shared with App-Director and Godot-Director. One task, one commit, with the pre-commit check as the gate.
- A single
/next-taskpauses for your approval of its commit. - A run commits without pausing. When you ask for one ("grab tasks until you're blocked", "work through the queue", "the next N tasks"), each task commits as soon as its check passes. The run stops when an item is blocked on you, a build fails, or you decline a commit, and the final report lists every commit. A run approves commits in advance, not pushes, deploys or changes to cloud resources.
git commitis allowed in.claude/settings.jsonwithout a prompt.git push, rebasing, restoring,git configand theazandazdcommands listed underaskstill ask, and skipping the check with--no-verifyis still denied.
- A single
How to install
Designed to work with any AI coding assistant that reads AGENTS.md. Built and tested on Claude Code; other assistants are untested.
Claude Code plugin: in Claude Code, run:
/plugin marketplace add Freakling/SaaSAllTheThings
/plugin install saasallthethings@saasallthethings
Then open a new Claude Code session in your app's folder (or run /reload-plugins), and run /saasallthethings:saas-all-the-things.
Manual install: put this repository in your app's root folder as a folder named SaaSAllTheThings: run git clone https://github.com/Freakling/SaaSAllTheThings.git SaaSAllTheThings there, or download the zip and rename the extracted folder. Then ask your assistant:
Read SaaSAllTheThings/ONBOARDING.md and follow it to install SaaSAllTheThings into this project.
Skills CLI (installs the skill for the assistant you choose; in Claude Code it becomes a slash command):
npx skills add Freakling/SaaSAllTheThings
Then ask your assistant to "SaaS all the things" in your app's folder. The skill clones this repository's matching release into a temporary folder outside your app, and follows ONBOARDING.md from there.
How to upgrade
- Plugin: run
/plugin marketplace update saasallthethings, then/plugin update saasallthethings@saasallthethings. Start a new session in the app and run/saasallthethings:saas-all-the-thingsagain. - Manual: put the new SaaSAllTheThings folder in the app, and ask for ONBOARDING.md again.
- Skills CLI: run
npx skills add Freakling/SaaSAllTheThingsagain, then ask for the upgrade.
Only the framework's own files are replaced, and your edits to them are kept. When a new version also changes a file you edited, the new version is written next to it as <file>.satt-new for you to merge.
This release's upgrade steps: none to your own files. .claude/settings.json is framework-owned, so it is replaced on upgrade. If you edited it, the new version arrives as .claude/settings.json.satt-new; merge it, and make sure Bash(git commit *) is in permissions.allow and no longer in permissions.ask (an ask entry wins over allow, so the old entry would keep the prompt). Restart Claude Code afterwards so the changed skill description and permissions load.