Dosirak

Use Cases

Updated September 2026

What a local customer database looks like in practice

Cloud CRMs charge $30 to $100 per user every month to hold names, phone numbers, and notes. Here is what a simple, relational client database looks like when it runs on your own machine.

The cloud CRM trap

Salesforce and HubSpot are built for sales teams with pipeline stages, lead scoring, and tracking pixels. If you are a freelancer, a contractor, or a one-person shop, you are paying for an entire sales floor you will never staff. The mandatory cloud login means your client list sits on someone else's server, behind someone else's pricing page.

Spreadsheets are the usual fallback, but they break down fast. A typo in a client name creates a second phantom client. Notes get crammed into cells that wrap across three rows. There is no way to pull up a contact card or see every interaction with a client in one place. The data is flat, which is why it stops working after about 50 clients.

Airtable improves on spreadsheets, but the free tier caps you at 1,000 records and charges per seat after that. A clean, local relational database handles all of this without the overhead.

The shape of a client database

A useful customer database needs two tables that link together. The first table holds the client record itself: name, company, a status field (Lead, Active, Past, or VIP), email, phone, website, address, and a notes field for context that does not fit anywhere else.

The second table logs interactions. Each interaction record points back to a specific client and carries a date, a type (Call, Email, Meeting, or Note), a written summary, a next follow-up date, and a flag for whether the follow-up is done.

The reason for splitting these into two tables is practical. The client record stays clean and scannable. It does not bloat with paragraphs of call notes. The interaction log grows independently, and because each entry has a follow-up date, you can filter for overdue items without scrolling through everything. A flat spreadsheet conflates the contact and the history into one row, which is why it stops working after about 50 clients.

In Dosirak, these tables are defined in plain TOML files inside a project folder. You can read them in any text editor, and the data itself is stored in SQLite on your disk.

What an agent does with this schema

A clean, typed schema is readable by an AI agent the same way it is readable by a human. When the database defines a clients table and an interactions table with specific field types, the agent does not need a tutorial. It connects through the MCP protocol, reads the schema, and knows what queries and records are valid.

That means you can ask: "Show me all clients who haven't had a follow-up in 30 days." The agent runs the query against the local database and returns structured results. You can also paste raw meeting notes into the agent. It parses out the client name, the date, a summary, and a follow-up date, then proposes a new interaction record with those fields filled in.

How much of that the agent can do on its own is up to you. It arrives read-only, so at first it can read the schema and nothing more. Grant it the interactions table and it can log meetings for you. Leave the clients table read-only and it can still look up a phone number without ever rewriting one. Put an approval gate on a table and its writes wait as todo cards, showing the parsed fields for you to approve or correct before anything lands. More on this in the MCP database feature page.

Spreadsheets, cloud CRMs, and a local database

Spreadsheets (Excel/Sheets)Cloud CRM (HubSpot/Salesforce)Local database (Dosirak)
Monthly costFree to $10/mo$30 to $150/user/mo$0 (local software)
Data privacyCloud or localVendor cloudLocal on your disk
Offline accessPartialNoneFull, no internet required
Contact cards and relational viewsManual / clunkyYesBento compartment layout
AI agent accessCopy-pasteExpensive API add-onsEmbedded MCP server

Where this approach falls short

Questions

Can I import my existing contacts from Excel or Google Contacts?

Yes. Export your contacts to CSV and import them directly into the clients table. Column mapping is automatic for standard fields like name, email, and phone.

Is there a limit on how many customers I can store?

No per-seat or tier limits. The database runs on SQLite, which handles hundreds of thousands of records on a single machine without slowing down.

Does this work without an internet connection?

Yes. Everything runs locally on your computer. No cloud account, no login, no internet required.

Can multiple team members share the database?

Dosirak is built for single operators or local folder sync via Git or a shared network drive. It does not support real-time multi-tenant cloud collaboration.

Can my AI agent delete client records?

No. Agents operate under strict safety tools. They can query records and propose new entries, but deletions require direct operator interaction in the desktop app.