I recently had two AI models build a complete Harvest clone in under 20 minutes. The winning version covered 97% of Harvest's features. I'm seriously considering canceling my $180/year subscription and using it instead.
That experiment got me thinking about something bigger than one app replacement. We're entering an era where a competent engineer with an AI coding assistant can generate a fully functional web application from a requirements document in the time it takes to eat lunch. That changes the economics of software in a fundamental way.
About the author: I'm Charles Sieg -- a cloud architect and platform engineer who builds infrastructure for Fortune 1000 clients through Vantalect. If your organization is rethinking its software strategy in the age of AI-generated code, let's talk.
I'm calling this new category the Single Serving Application -- or SSA.
What is a Single Serving Application?
An SSA is a purpose-built application designed for an audience of one: you. It replaces a SaaS product you're currently paying for with a private, AI-generated equivalent that runs on your own infrastructure, serves only your needs, and costs nearly nothing to operate.
The name is a nod to the single-serving friends from Fight Club -- except these applications aren't disposable. They're permanent, purpose-built, and entirely yours.
The key insight is this: the vast majority of what makes SaaS products complex has nothing to do with the features you actually use. It has to do with serving thousands of other customers who aren't you. When you strip away everything that exists to serve other people, what's left is a remarkably simple application.
The Complexity You're Paying For
Think about what a typical SaaS product needs to support that you, as a single user, do not:
Multi-tenancy. Every SaaS application must isolate data between customers. This means user_id and organization_id foreign keys on virtually every table, row-level security policies, tenant-aware caching, tenant-scoped API keys, and careful query scoping to prevent data leaks. In an SSA, there is no tenancy. Every row in every table is yours. The entire database is yours. This alone eliminates an enormous category of complexity and an entire class of security vulnerabilities.
Authentication and identity. SaaS products need user registration, email verification, password hashing, password reset flows, multi-factor authentication, session management, OAuth integrations, enterprise SSO via SAML and OIDC, role-based access control, team invitations, and permission hierarchies. An SSA needs none of this. You can authenticate with a client certificate -- install it on your laptop, your phone, and your tablet, and any device without the certificate simply cannot connect. Mutual TLS is trivially secure, requires zero user interaction after initial setup, and eliminates the entire identity management surface area.
Scalability infrastructure. SaaS products need load balancers, auto-scaling groups, read replicas, connection pooling, CDN distribution, multi-region failover, message queues for async processing, and caching layers to handle thousands of concurrent users. An SSA serves one concurrent user. You. A single AWS Lambda function behind API Gateway handles your traffic effortlessly. There will never be a traffic spike. There will never be a capacity concern. There is no need for Redis, no need for a message broker, no need for horizontal scaling. The infrastructure collapses to almost nothing.
High availability. SaaS products promise 99.9% or 99.99% uptime via redundant infrastructure across multiple availability zones. This requires health checks, automatic failover, blue-green deployments, and on-call engineering teams. If your SSA goes down for five minutes while you're asleep, nothing happens. Nobody notices. Nobody files a support ticket. You can deploy with zero-downtime aspirations and single-AZ simplicity, because the blast radius of an outage is one person who can simply wait.
The Feature Tax
Beyond infrastructure, SaaS products carry an enormous feature tax -- code that exists purely to serve the multi-user, multi-tenant, commercial business model:
| SaaS Requirement | SSA Equivalent |
|---|---|
| User registration and onboarding | Nothing |
| Password management and reset flows | Client certificate |
| Enterprise SSO (SAML, OIDC) | Nothing |
| Role-based access control | Nothing (you have all roles) |
| Team management and invitations | Nothing |
| Billing, subscriptions, and payment processing | Nothing |
| Usage metering and rate limiting | Nothing |
| Admin dashboard | Nothing |
| Customer support interface | Nothing |
| Audit logging (for compliance across users) | Nothing (or optional for your own records) |
| Data export and portability features | Direct database access |
| Terms of Service and Privacy Policy | Nothing |
| Cookie consent banners | Nothing |
| GDPR data processing agreements | Nothing (it's your data on your infra) |
| SOC2 audit trail | Nothing |
| API versioning and deprecation policies | Nothing (change whatever you want) |
| A/B testing and feature flags | Nothing |
| Notification preferences | Nothing |
| Internationalization (i18n) | Nothing (unless you want it) |
| Accessibility compliance (WCAG, ADA) | Your choice, not a legal mandate |
That table represents tens of thousands of lines of code in a typical SaaS product -- code you're indirectly paying for with your subscription -- that simply does not need to exist in an SSA.
The Architecture of an SSA
When you strip away all of that complexity, what's left? Something remarkably lean:
┌─────────────────────────────────────┐
│ CloudFront (CDN) │
│ + Client Certificate Auth │
├──────────────┬──────────────────────┤
│ S3 Bucket │ API Gateway │
│ (Frontend) │ + mTLS Validation │
│ ├──────────────────────┤
│ │ Lambda Function │
│ │ (Entire Backend) │
│ ├──────────────────────┤
│ │ DynamoDB or │
│ │ SQLite on EFS │
│ └──────────────────────┘
└─────────────────────────────────────┘
Frontend: A static React (or even plain HTML/CSS/JS) build deployed to S3 and served via CloudFront. CloudFront handles TLS termination and can enforce mutual TLS, requiring the client certificate before serving any content.
Backend: A single Lambda function. Not a fleet of microservices. Not a Kubernetes cluster. One function that handles all your API routes. For a typical SSA replacing a tool like Harvest, this function will handle maybe 20-50 API endpoints. Lambda's 15-minute execution limit and 10GB memory are absurdly generous for a single user's workload.
Database: DynamoDB for serverless simplicity, or SQLite mounted on EFS for relational needs. Either way, a single table or a single database file. No connection pooling. No read replicas. No failover. For a single user generating maybe 100 database operations per day, even the most minimal database configuration is wildly over-provisioned.
Authentication: Mutual TLS (mTLS) via client certificates. Generate a certificate authority, issue client certificates for each of your devices, configure CloudFront and API Gateway to require them. Any request without a valid certificate gets rejected at the edge before it ever reaches your application code. No passwords to remember, no tokens to refresh, no sessions to manage.
Infrastructure as code: The AI that writes your application can also write the Terraform configuration to provision all of it. Lambda functions, API Gateway, DynamoDB tables, S3 buckets, CloudFront distributions, ACM certificates, Route 53 records -- the entire infrastructure stack can be generated from the same conversation that produces the application code. You don't need a separate devops engineer or weeks of infrastructure work. One prompt, one terraform apply, and your SSA is live.
What This Costs
Let's do the math for a typical SSA running on AWS:
| Service | Usage | Monthly Cost |
|---|---|---|
| Lambda | ~1,000 invocations/day, 256MB, 500ms avg | $0.01 |
| API Gateway | ~1,000 requests/day | $0.03 |
| DynamoDB | On-demand, <1GB storage | $0.25 |
| S3 | Static frontend, <100MB | $0.01 |
| CloudFront | Minimal traffic | $0.10 |
| Route 53 | Hosted zone | $0.50 |
| Total | ~$0.90/month |
Under a dollar a month. Compare that to the SaaS subscription you're replacing -- $10/month for a simple tool, $15-30/month for something like a project manager or CRM, $180/year for Harvest. The SSA pays for itself in the first month and then essentially runs for free.
Even if you double or triple the infrastructure for comfort -- add a proper RDS instance, enable CloudWatch logging, set up daily backups to S3 Glacier -- you're still looking at $5-10/month. A rounding error compared to a SaaS subscription.
What You Give Up
I'm not going to pretend SSAs are universally superior. You're making real tradeoffs:
You're the ops team. When it breaks at 11pm, there's no support@harvest.com to email. You fix it, or it stays broken. For engineers, this is usually fine. For non-technical users, this is a dealbreaker.
No automatic feature development. SaaS products ship updates constantly. Bug fixes, new features, performance improvements -- all delivered without you lifting a finger. An SSA only gets better when you (or your AI) actively improve it.
No mobile apps.Most SaaS products have native iOS and Android apps. Your SSA is just a web app. Actually, scratch that. The latest version of Xcode fully supports vibe-coding native iOS, macOS, and even visionOS applications. My workflow is to put the iOS app folder alongside the web app folder, point the AI at the web app's functionality, and tell it to duplicate or sync the features into the native app. It does the rest. You get a real native app -- not a PWA wrapper -- with the same data model and the same features, built from the same requirements document. This is no longer a tradeoff.
Data migration is on you. Getting your data out of the SaaS product and into your SSA requires effort. Some products have good export APIs. Others make it deliberately painful. Budget time for this.
No collaboration. The moment you need to share access with a second person -- a business partner, an accountant, a spouse -- you're back to needing authentication, permissions, and multi-user considerations. An SSA is definitionally single-serving. The moment it's not, it's just a self-hosted app, and the complexity creeps back.
When an SSA Makes Sense
Not every SaaS product is a good candidate for replacement. The sweet spot is:
- Single-user tools where you're the only person who touches the data
- CRUD-heavy applications (time tracking, expense management, invoicing, bookmarks, note-taking, habit tracking, personal CRM)
- Tools with straightforward data models that an AI can fully implement from a requirements document
- Subscriptions that feel expensive relative to the features you actually use
- Tools where data sovereignty matters -- your financial records, client information, health data, or anything you'd rather not trust to a third party
The candidates that come to mind immediately, organized by category:
- Time tracking and invoicing:Harvest, Toggl, Clockify, FreshBooks, Wave
- Project and task management:Todoist, Things, TickTick, Basecamp (solo use), Trello (personal boards)
- Note-taking and knowledge bases:Notion (solo use), Evernote, Obsidian Publish, Bear, Roam Research
- Bookmarks and read-later:Pocket, Instapaper, Raindrop.io, Pinboard
- Personal finance:YNAB, Mint, Lunch Money, Copilot Money
- CRM for freelancers and solopreneurs:HubSpot (free tier), Dex, Clay, Monica
- Habit and fitness tracking:Habitica, Streaks, Strong, Fitbod
- Recipe and meal planning:Paprika, Mealime, Plan to Eat
- Password management:1Password, Bitwarden (self-hosted is already common here)
- Home inventory and asset tracking:Sortly, Encircle, Home Assistant integrations
- Writing and publishing:Ghost (solo blog), Substack (if you don't need the network), Medium (for drafting)
- File sharing and transfer:WeTransfer, Dropbox (personal), file.io
- URL shortening and link management:Bitly, Short.io, Dub
- Email newsletters:Buttondown, ConvertKit (solo creator use)
- Analytics:Plausible, Fathom, Umami (lightweight site analytics)
When an SSA Doesn't Make Sense
- Collaboration-first tools (Slack, Figma, Google Docs) -- the whole point is other people
- Tools with proprietary algorithms (Grammarly, Shazam, AccelaStudy AI) -- you can't replicate the magic
- Tools with large datasets (mapping, stock data) -- you can't cost-effectively maintain the data
- Tools where the network is the product (LinkedIn, marketplace apps) -- a single-user version is meaningless
- Tools requiring complex hardware integration (IoT platforms, specialized sensor apps) where the hardware SDK is the hard part
- Anything where downtime has real consequences -- if your tool being unavailable for an hour costs you money or clients, pay for the SaaS and their SLA
The Requirements Document is the Product
Here's what's genuinely new about the SSA concept: the deliverable isn't the code. It's the requirements document.
When I built the Harvest clone, I wrote a requirements document and handed it to an AI. The AI produced a working application. If I lost the code tomorrow, I could regenerate it in 20 minutes from the same requirements document. The code is ephemeral. The requirements are the durable artifact.
This inverts the traditional relationship between specification and implementation. In conventional software development, the code is the product and the spec is a planning artifact that gets stale. In SSA development, the requirements document is the product. The code is a disposable rendering of that document, regenerated as needed, potentially by a different AI model each time.
This means:
- Version control the requirements, not (just) the code. The requirements document is your source of truth.
- Iterate on the requirements, not the code. Want to add a feature? Update the requirements document and regenerate.
- The requirements document is portable. It's not locked to any framework, language, or model. Today you generate a React/Flask app. Tomorrow you might generate a Swift app for iOS. The requirements don't change.
Getting Started
If you want to try building your first SSA:
- Pick a SaaS tool you're paying for that you use alone and that does something relatively straightforward.
- Write a requirements document. Be specific about the data model, the pages/views, the workflows, and the edge cases. The more precise the requirements, the better the AI output.
- Hand it to your preferred AI coding assistant with instructions to build a Dockerized full-stack application. Start with Docker Compose for local development.
- Import your data. Export from the SaaS product and write an import script (or have the AI write one).
- Run it locally for a week alongside the SaaS product. Validate that it does what you need.
- Deploy to AWS. Convert the Docker setup to Lambda + S3 + DynamoDB (or keep it as a lightweight container on ECS/Fargate if you prefer). Add mTLS for authentication.
- Cancel the subscription.
The entire process, from requirements document to running SSA, should take an afternoon. The data migration is usually the hardest part.
The Bigger Picture
The SSA isn't just a cost-saving exercise. It's a philosophical shift in who software serves.
For the last 15 years, the SaaS model has been the dominant paradigm: pay a monthly fee, use the software, trust the vendor with your data, accept the features they choose to build, live with the pricing they choose to set. This model works well for many scenarios, particularly collaborative tools and complex platforms.
But for single-user productivity tools -- the apps that help you track your time, manage your finances, organize your notes, and run your freelance business -- the SaaS model has always been a compromise. You're paying for multi-tenancy you don't need, subsidizing infrastructure designed for thousands of users, trusting a third party with data you could easily manage yourself, and accepting a feature set designed by committee rather than tailored to your specific workflow.
And that last point deserves emphasis. An SSA doesn't just replicate the SaaS product's features -- it lets you add features that only matter to you. Features the SaaS vendor would never prioritize because you're the only person who wants them. In my Harvest clone, I added a "Fill Month" button that populates 8 hours of time for every workday in the current month for a given project. One button press replaces 20+ manual time entries. It saves me significant time every month, but it's the kind of hyper-specific workflow optimization that a SaaS product serving thousands of customers would never build. When the application serves an audience of one, your feature requests have a 100% approval rate.
AI-generated code changes the equation. The barrier to building a custom application has dropped from "months of engineering effort" to "an afternoon with a requirements document." The barrier to operating it has dropped from "a devops team" to "a Lambda function and a credit card."
The tools are here. The cost is negligible. The only remaining question is whether you'd rather rent software or own it.
I know which one I'm choosing.
Work With Me
If your organization is navigating the shift toward AI-assisted development, evaluating build-vs-buy decisions, or needs a cloud architect who thinks about these problems every day, I'd welcome the conversation.
View my background | Connect on LinkedIn | Email me | More about me
This post was drafted by me and expanded with Claude. The concept, opinions, architecture, and cost analysis are mine. Claude helped me articulate them more clearly -- which is, itself, a demonstration of the thesis.
