The Last SaaS.

Do all SaaS go to heaven?

A headless SaaS for
agents and assistants.

An experiment in finding the primitives all SaaS apps need, letting the AI assistant and agent build upon them via MCP, CLI, and/or API.

Open source · Hosted version is free · Made with ♥ in SF

What if all SaaS apps could be reduced to their base primitives?

Records, files, access, and background work are the building blocks. Combine them into the application you need, and let Claude, ChatGPT, or another assistant work with them through MCP, CLI, or API.

Records

Create collections with typed fields, references, and recurring dates. Records are validated when saved. Your assistant can filter and sort them, find occurrences in a date range, and calculate counts, totals, or averages.

Files

Upload files from the CLI or a browser link, attach them to a collection, and retrieve them through your assistant. Share temporary download links. Each file keeps its name, type, size, upload date, and the account that uploaded it.

Accounts

Invite teammates into an organization and manage their roles and access. Connect an assistant through your account. For unattended work, you can also give an agent its own service account, permissions, and API token.

Permissions

Grant access to people, service accounts, or roles. Limit which collection records and fields they can read or change. Control access to files and queues separately. Invitations can include grants that take effect when accepted.

Notifications

Notify yourself, selected teammates, a role, or the whole organization. Send now, at a specific time, or on a recurring schedule. Choose email and workspace delivery; each recipient can set preferences and mark messages as read.

Audit logs

Review record edits, file uploads, membership changes, and automation activity. See which person or agent made a change and when. Filter by action or resource type, and inspect queued jobs separately for their current state and attempt count.

Durable job queues

Publish validated jobs for workers to claim and acknowledge. Queue settings control retry and lease behavior; heartbeats keep long tasks alive. Inspect current job state and retry failed work. Give different job types separate queues when access differs.

Collection triggers

Turn record creation, updates, or deletion into queued work. Choose the fields to watch, filter matching records, and map the data a worker needs. The record change and its job publication commit together.

Schedules

Queue a report, sync, or follow-up for a specific time or a recurring rule in your timezone. Pause, edit, and resume schedules. After downtime, recurring schedules run once for missed work before moving to the next occurrence.

Atomic transactions

Save related record changes in one request. The changes and any triggered jobs succeed or roll back together. An idempotency key lets you repeat the same request without creating duplicate records or jobs during its retention period.

Agent accounts

Create service accounts for agents in your organization. Each agents has its own API token so it can connect independently and run unattended work.

Example conversation

You: What’s on our AI research group’s reading list?

Assistant
Searched recordsThe Last SaaS
Collection
Reading List
Results
2 papers

You: Add SaaS-Bench to the reading list for our next discussion.

Assistant
Added recordThe Last SaaS
Collection
Reading List
Paper
SaaS-Bench: Can Computer-Use Agents Leverage Real-World SaaS to Solve Professional Workflows?
Authors
Kean Shi et al.

Added SaaS-Bench by Kean Shi et al. to the reading list for our next discussion.

You: Show me the materials for our discussion of SaaS-Bench.

Assistant
Read meeting attachmentsThe Last SaaS
Collection
Meetings
Record
SaaS-Bench discussion
Field
Materials
Results
2 files

The SaaS-Bench discussion meeting has 2 attachments:

  • meeting-agenda.md
  • 2605.15777v2.pdf

You: discussion-notes.mdAttached · 12 KBAttach these notes to the SaaS-Bench meeting.

Assistant
Uploaded and attached notesThe Last SaaS
Collection
Meetings
Record
SaaS-Bench discussion
Field
Materials
Type
Markdown
Size
12 KB

Attached discussion-notes.md to the SaaS-Bench discussion meeting alongside the agenda and paper.

You: Show me the members added this week.

Assistant
Listed membersThe Last SaaS
Joined
This week
Results
3 members

3 members joined this week:

NameRoleJoined
Maya ChenMemberMonday
Sam PatelMemberWednesday
Alex RiveraMemberThursday

You: Invite [email protected] to our AI research group.

Assistant
Sent invitationThe Last SaaS
Role
Member
Status
Pending

I’ve invited [email protected] as a Member. The invitation is pending until they accept it.

You: Who has access to the reading list?

Assistant
Checked access rulesThe Last SaaS
Collection
Reading List
Access rules
2 members

The reading list has these member access rules:

MemberAccess
Maya ChenRead and write
Sam PatelRead only

You: Give [email protected] read and write access to the reading list.

Assistant
Added access ruleThe Last SaaS
Collection
Reading List
Access
Read and write

[email protected] can now read, add, and edit papers in the reading list.

You: Help me set up a service account for my research agent. It should only be able to read the reading list.

Assistant
Created service account and granted accessThe Last SaaS
Account
Research agent
Collection
Reading List
Access
Read only
Token
Awaiting administrator claim

Created Research agent with read access to the reading list. It has its own identity in this organization.

Your next step is to open the one-time claim link in your browser and collect the API token. Configure that token in your agent’s environment.

You can rotate or revoke its token and change its permissions later. Actions it performs are attributed to its service account.

You: When a record is created in our tickets collection, queue its ID for my triage worker.

Assistant
Configured queue and triggerThe Last SaaS
Source
tickets · record created
Queue
triage_jobs
Payload
ticket_id mapped from the record ID

New tickets will publish their IDs to triage_jobs. The ticket and its queued job are saved together.

Your worker can claim jobs from triage_jobs, process them, and acknowledge completion. Its service account needs queue access, plus any collection access needed to read or update the ticket.

Queue settings control retries and lease duration. You can inspect current job state to see what is waiting, running, or finished.

You: What reminders do I have for our next meetup?

Assistant
Listed notificationsThe Last SaaS
Status
Scheduled
Results
1 reminder

You have 1 reminder scheduled:

ReminderWhen
Read SaaS-BenchWednesday, 8:00 PM

You: Remind me Thursday at 6 PM to bring my notes to the SaaS-Bench discussion.

Assistant
Scheduled notificationThe Last SaaS
When
Thursday, 6:00 PM
Message
Bring notes to the SaaS-Bench discussion

I’ll remind you on Thursday at 6:00 PM:

Bring notes to the SaaS-Bench discussion.

You: Show me today’s changes to our AI research group.

Assistant
Searched audit logsThe Last SaaS
When
Today
Results
3 events

I found 3 events today:

TimeActionDetails
10:42Record addedReading List / SaaS-Bench
10:18File uploaded/ai-reading-group/discussion-notes.md
09:56Member invited[email protected]

You: Show me visualization of our past meetings

Assistant
Read meeting recordsThe Last SaaS
Collection
Meetings
Period
30 July–10 September 2026
Results
7 past meetings

I put our 7 past meetings and reading list into a dashboard. You can filter by paper and open each meeting’s notes.

research-group.htmlHTML

AI research group

Reading & meetings

July–September 2026
30 Jul – 10 Sep
Meeting activity

People at each meeting

Next discussion
SaaS-Bench

Reading room · Maya Chen

Bring notes on how the benchmark evaluates multi-step workflows.

Getting started

Get started with a guided tutorial

Create an account via the web application and then connect your assistant.

  1. Create Account

    Sign up, verify your email if prompted, and create an organization.

  2. Connect your assistant or agent

    Choose your tool and how you’d like it to connect.

    Connect Claude over MCP

    1. In Claude, open Customize → Connectors, then choose + → Add custom connector.
    2. Name it The Last SaaS and enter this server URL:
      https://app.thelastsaas.com/v1/mcp
    3. Add the connector and click Connect. Sign in to The Last SaaS, choose your organization, and approve access.
    4. Enable The Last SaaS in your conversation’s tools menu.

    On a team plan, an owner may need to add the connector first. Claude’s connection guide

  3. Start the tutorial

    Once connected, send this to your assistant:

    Your first message
    Walk me through the Last SaaS getting started tutorial.

    Open the prompt in the tool you connected in step 2. Make sure The Last SaaS is enabled in the new conversation.

    Desktop links need the app installed. If a link doesn’t carry the prompt through sign-in, copy and paste it into your connected conversation.

100% Open Source

Use the free hosted service or self-host with PostgreSQL or SQLite. Export records, schemas, access rules, and automation configuration with one command. Database backups preserve pending jobs. Contributions welcome. Permissive MIT license.

View on GitHub