Pillar: RunoSO is the freelance management system — see the full freelancing management system pillar for comparison vs Notion/Sheets.
You start Monday with Notion for tasks, Sheets for finance, 1Password for logins, Trello for projects and Gmail for client threads. By Wednesday you’ve searched 5 places for one invoice. That is not organization — it is archaeology.
RunoSO links every module by clientId/projectId FKs — one client record owns projects, tasks, invoices, vault and assets in tenant_${id} src/lib/db/tenant.ts:67. That is why single source of truth freelancers in RunoSO is not a template — it is a query SELECT * FROM personalTasks WHERE projectId = ? AND isToday = true joined to clients and vault.
The Cost of 6 Tabs
- Context switching tax: 23 minutes to refocus after each tab hunt — 4 hunts/day = 9 hrs/week lost
src/components/layout/NotificationsBell.tsx. - Orphaned data: Client in Notion, invoice in Sheets, credential in vault — no
clientIdFKsrc/lib/db/schema.ts:7so you rebuild context each time. - No single review: Weekly review needs 3 exports; linked dashboard shows
today + overdue + receivablesin one query.
The Linked Productivity Model: Single Source Of Truth Freelancers Knows Its Context
RunoSO links every module by clientId/projectId FKs — one client record owns projects, tasks, invoices, vault and assets in tenant_${id} src/lib/db/tenant.ts:67.
// Linked graph: client → projects → tasks → invoices → transactions
clients { id, name, status } src/lib/db/schema.ts:7
projects { clientId → clients.id } src/lib/db/schema.ts:23
personalTasks { isToday, status:todo/done } src/lib/db/schema.ts:232
vaultItems { clientId, gcm:iv:tag:enc } src/lib/vault/crypto.ts:28
invoices { clientId, projectId, status } src/lib/db/schema.ts:60What linked gives you: one clientId to filter every asset src/app/api/assets/[category]/route.ts:91 with buildPaginatedQuery src/lib/utils/pagination.ts:11, vault hint vaultItemName without plaintext src/lib/vault/crypto.ts:28, and notifications RENEWAL_MILESTONES [7,3,1,0] src/app/api/cron/daily/route.ts:17 that nag before failure.
Sheets vs RunoSO Productivity: Single Source Of Truth Freelancers Test
| Scenario | Sheets / Generic | RunoSO Linked |
|---|---|---|
| Find Acme invoice | Sheets search + Gmail | Client page → invoices tab, one click PDF src/components/finance/InvoiceEditorClient.tsx |
| Find SSH for 203.0.113.45 | Vault search guess | Hosting row vaultItemId → name src/app/api/assets/[category]/route.ts:207 |
| Weekly review | Export 3 sheets | Dashboard: tasks isToday + metrics + renewal notifications |
Sheets list single source of truth freelancers. RunoSO links single source of truth freelancers to projectId and vaultItemId.
Deploy in 30 Minutes
- Inventory: list every tool you pay for — avg 6.2.
- Import: clients + transactions CSV
src/components/settings/SettingsPageClient.tsx:1682(500 rows max). - Link: attach project → client, task → project, vault → client.
- Today cut: mark 3 tasks
isToday:truesrc/lib/db/schema.ts:240, hide backlog. - Review: daily cron
src/app/api/cron/daily/route.ts:275confirmsnotificationsat 3:30 UTC.
Mistakes & Pro Move
- One mega Notion page breaks pagination
buildPaginatedQuerysrc/lib/utils/pagination.ts:11— split by client. - Credential in task notes leaks — use
vaultItemIdFK, not plaintext. - No today limit burns out — cap
isTodayat 3, streaks tracksrc/lib/db/schema.ts:275daily.
Single Source Of Truth Freelancers fails quietly until a client asks "where is it?" Keep single source of truth freelancers linked to projects, vault and invoices so work ships and money follows.
→ Fix Single Source Of Truth Freelancers in RunoSO — Free
By Gautam Parmar — your single source of truth freelancers never slips with RunoSO linked.
Keep Reading
- Pillar: freelance management system
- Freelance operations hub single dashboard: Freelance operations hub single dashboard
- Client project linked system freelancers: Client project linked system freelancers
- How freelancers should track income and expenses: How freelancers should track income and expenses
FAQ
How does a single source replace 6 apps without bloat? Via FK links: clients.id → projects.clientId → invoices.clientId → transactions.clientId src/lib/db/schema.ts:7 plus GET /api/assets/[category] src/app/api/assets/[category]/route.ts:97 — one DB, 6 views, not 6 subscriptions.
Will I lose data migrating from Sheets/Notion? No. CSV import src/components/settings/SettingsPageClient.tsx:1682 maps name,email,status and transactions type,amount,category. Vault imports stay gcm:iv:tag:enc encrypted.
How fast is the weekly review with one dashboard? 30 min: isToday filter + notifications type:domain_expiring src/lib/db/schema-public.ts:195 + Finance P&L vs 2 hrs with sheets.



