An experiment in building an end-to-end SaaS using AI-first tooling and workflows.
- Claude Sonnet 4 (via Claude.ai) — Prompt generation and agent-based workflow management
- Claude Sonnet 4 (via Cursor AI) — Code generation, editing, and implementation
This project is an attempt to build a complete SaaS product using mostly AI tooling. It documents and demonstrates a practical, repeatable way to combine multiple specialized AI agents with a coding assistant to ship production-quality software quickly.
Creator: Jason Haffey — Software Engineer with 15+ years of experience in .NET/C#.
The development process is driven by a set of Claude projects acting as specialized agents. Each agent has a well-defined responsibility and its own instruction set:
- Product Manager Agent — requirements and scope
- Architecture Agent — system design and boundaries
- Software Engineer Agent — produces implementation prompts (not code)
- Code Review Agent — review and quality gates
- QA Engineer Agent — test planning and validation
How these agents are generated and interact is documented in this repository:
- AI Agent Instruction Generator: jnhaffey/AI-Agent-Project-Instruction-Generator
Important: The Software Engineer Agent does not write the code directly. It generates high-quality prompts that are provided to Cursor AI, which is responsible for actually writing and editing the code in this repository.
Top-level tech stack:
- Backend/API: .NET 8 (Azure Functions isolated model)
- Shared libraries: .NET 8 class libraries
- Frontend: React + TypeScript (Vite)
- Containers: Dockerfiles for API and Web;
docker-compose.yml - Tests: .NET unit and integration test projects
Repository structure:
src/
FairRentAdvisor.Api/ # Azure Functions isolated worker (Program.cs, host.json)
FairRentAdvisor.Core/ # Domain and shared core logic (placeholder)
FairRentAdvisor.Infrastructure/ # Infrastructure concerns (placeholder)
FairRentAdvisor.Web/ # React + TypeScript (Vite)
tests/
FairRentAdvisor.Tests.Unit/
FairRentAdvisor.Tests.Integration/
containers/
Dockerfile.api
Dockerfile.web
docker-compose.yml
Notable details identified from the current codebase:
FairRentAdvisor.Apiincludeshost.jsonand isolated worker artifacts (e.g.,worker.config.jsonunderobj), indicating an Azure Functions isolated setup. You will typically run this with Azure Functions Core Tools.FairRentAdvisor.Webis a Vite React TypeScript app with ESLint configured and standard Vite project structure.FairRentAdvisor.CoreandFairRentAdvisor.Infrastructurecurrently contain placeholder classes, ready for domain and persistence/service abstractions.- Solution file:
FairRentAdvisor.slnties the projects together.
Prerequisites:
- .NET SDK 8.x
- Node.js 18+ (Node 20 recommended)
- npm or pnpm (examples use npm)
- Azure Functions Core Tools v4 (for running the Functions API locally)
Clone and restore:
git clone <this-repo>
cd <this-repo>
dotnet restore FairRentAdvisor.slnRun the API (Azure Functions, isolated):
cd src/FairRentAdvisor.Api
dotnet build
func startRun the Web app (Vite React + TS):
cd src/FairRentAdvisor.Web
npm install
npm run devRun tests:
dotnet test FairRentAdvisor.slnBuild and run with Docker Compose:
docker compose up --buildNotes:
- See
containers/Dockerfile.apiandcontainers/Dockerfile.webfor container build details. - The compose file
docker-compose.ymlorchestrates both services. Ports are defined there; adjust if they conflict locally.
AI-first flow:
- Define requirements and scope with the Product Manager Agent.
- Validate architecture with the Architecture Agent.
- Generate precise implementation prompts with the Software Engineer Agent.
- Use Cursor AI to implement code changes from those prompts.
- Run the Code Review Agent for feedback and gating.
- Plan and execute tests with the QA Engineer Agent.
Conventional flow:
- Branch from
dev, implement, run tests, and open PRs for review.
- Define domain model and core use-cases in
FairRentAdvisor.Core. - Implement key function endpoints in
FairRentAdvisor.Api. - Establish persistence strategies in
FairRentAdvisor.Infrastructure. - Build initial UI flows in
FairRentAdvisor.Web. - Integrate CI (build, test, lint) and container publishing.
This is an AI-driven project; contributions are welcome via issues and PRs. Please:
- Keep changes small and focused.
- Include tests when adding functionality.
- Align with the agent-driven workflow when feasible.
TBD.