Overview
YourDesk is a self-hosted studio operating system for freelancers, agencies and small creative teams. It puts clients, discovery, proposals, projects, planning, time, invoices, client portals, mail and an AI agent in one web app. The code follows the order a job moves in: win the work, deliver it, get paid, keep the client close.
You get the full TypeScript source. Run it for your own studio, or use the built-in Ops console to sell it as a hosted product with plans, a pricing page and Stripe or PayPal checkout. It runs locally with no configuration and deploys to Vercel, Docker or any Node 22 host.
Features
Daily planning
- Dashboard: A one-line overview written from your data, plus tiles for outstanding and overdue money, active projects and open proposals.
- Needs you inbox: Due work, overdue invoices and reminders ready to send, collected in one list.
- Today view: A focused page for today's work, overdue items and schedule.
- Get started checklist: Links new users to their first client, project, discovery and invoice.
- Global search and quick create: Press
Cmd/Ctrl + K to reach any record, and use a New button that works from every page.
- Guided onboarding: New users pick a helper character, their craft, client load, team mode and first goal. Their answers set the first page they land on.
Clients and proposals
- Discover: Paste an email, chat thread or call notes, or dictate them. The app turns them into a lead with research notes, questions to ask and a proposal-ready brief.
- Lead answers: The client's answers are saved with the lead and carried into the proposal draft.
- Seven-page proposals: Cover, Overview, Scope, Approach, Timeline, Investment and Next, in eight looks.
- Proposal sharing: Download a PDF or share a public link. The client accepts by typing their name, or declines.
- One-click projects: Turn an accepted proposal into a project.
- Client records: Contact details, projects, invoices, portal activity and full history for each client.
Projects and time
- Four-lane board: To do, In progress, Review and Done, with drag and drop.
- Task details: Assignees, due dates, estimates, subtasks, comments, file attachments and a waiting-on-client flag.
- Project header actions: Start a timer, raise an invoice, write a client update or ask the Agent.
- Planner: A week view of scheduled tasks and planner items. Import
.ics calendars by upload or URL, and export the planner as .ics.
- Time tracking: Timers and manual entries, grouped by day and project with totals.
- Time approval: Yesterday's entries can be proposed for review, then approved or edited.
- Timesheet export: Download entries as CSV.
Invoicing and payments
- Invoice composer: A form next to a live paper preview, in 20 invoice looks with your logo.
- Tax and deposits: Tax can be inclusive or exclusive. Add percentage deposit lines.
- Multi-currency: Invoice in any currency. Set exchange rates by hand or refresh them from live ECB rates to see home-currency amounts.
- Status tracking: Draft, sent, partial, paid and overdue. Overdue is detected automatically.
- Partial payments: Record payments against an invoice.
- Public invoice link: Clients can view and download a PDF without an account. The invoice shows your bank details and PayPal handle.
- Reminders: Draft overdue reminders and mark invoices or proposals as chased.
Client portals, updates and mail
- Portal per client: One page showing project progress, invoices, proposals waiting to be signed and accepted proposals. Clients do not need to log in.
- Portal collaboration: Clients can send messages, upload files, answer your requests, and approve deliverables or ask for changes.
- Portal access control: Rotate links, set an expiry date, switch a portal off, and approve or decline access requests.
- Client updates: Draft status, milestone, ready-for-review, waiting-on-you or kickoff notes from live project data. Refine the tone and post the note to the portal.
- Mail: Connect Gmail, Google Workspace, Outlook, Fastmail, iCloud or any IMAP/SMTP host. Sync the inbox, sent and archive folders, and send from the app.
- Proposal and invoice delivery: Send through the connected mailbox, or fall back to a Gmail compose window.
AI agent and automations
- Agent: Runs on xAI Grok models and has 41 workspace tools. It can search the workspace, summarise projects, report due work and money owed, and draft proposals, invoices, updates and emails.
- Scopes and threads: Chat about the whole workspace, one project or one client. Conversations are saved and text files can be attached.
- Approvals: Sending, posting, recording payments, deleting and inviting all need your confirmation. You can edit an action before you approve it.
- Audit trail and undo: Every run records the tools it called. You can undo supported actions and cancel a run while it is going.
- Memory: Save preferences for the Agent to use, and review or forget them later.
- Automations: Saved prompts with a schedule, a confirmation policy, an on/off switch and a Run now button. A helper to run due automations is included for you to connect to your own scheduler.
- Side panel: Open the Agent from any page.
- AI writing helpers: Lead research and letter rewriting use xAI when a key is set and fall back to templates when it is not.
Ops console and SaaS
- Overview: Counts of users, workspaces, plans and payments, plus setup warnings.
- Users and workspaces: Search users, disable accounts, grant or revoke platform admin, and see every workspace with its owner and plan.
- Product settings: Set the brand name, mark, tagline, support email and default currency. Open or close signups, post a maintenance message, and switch the Agent, Mail, Portals, Signup and Discover features on or off.
- Plans and pricing: Create free, monthly or yearly plans with features and a highlighted plan. They appear on the public pricing page.
- Checkout: Stripe Checkout with a signed webhook, and PayPal orders in sandbox or live mode. Keys are stored in the database, not in environment variables.
- System and activity: A health checklist for the database, auth, payments and Agent key, plus an audit feed of admin actions.
- Marketing site: A landing page with an FAQ, a pricing page, and signup and login pages.
Team, security and settings
- Team seats: The owner invites members by link and can remove them.
- Sign-in: Email and password, plus optional Google, handled by Better Auth.
- Session security: Secure, HTTP-only,
__Host- cookies and a cross-site request guard on user data.
- Rate limits: Limits on sign-in attempts and Agent runs.
- Encrypted secrets: Mailbox passwords and personal xAI keys are encrypted with AES-256-GCM.
- Mail safety: Mail HTML is sanitised and private-network mail hosts are blocked.
- Workspace settings: Studio name, legal name, logo, accent colour, currency, bank details and PayPal handle.
- Data export: Download all workspace data as JSON.
- Interface: Light and dark themes, a mobile layout with bottom tabs, and a PWA manifest.
Tech stack
- React 19, TanStack Start (SSR), TanStack Router, Query and Table
- Tailwind CSS 4, Radix UI primitives, Phosphor and Lucide icons, Recharts
- Better Auth, Zod validation, Kysely and node-postgres
- Postgres in production, or embedded PGLite for zero-configuration local use
- Stripe SDK, imapflow, mailparser and nodemailer
- Vite and Nitro builds for Vercel or a plain Node server
- 100% TypeScript in strict mode, with ESLint, Prettier and
node --test unit tests
What's included
- Full TypeScript source code for the app, Ops console, public share pages and API routes
- 19 plain SQL migrations with an idempotent migration runner
Dockerfile, docker-compose.yml (app plus Postgres 16) and vercel.json
.env.example with every variable explained
- HTML documentation covering install, deployment, configuration, a feature guide, branding and an FAQ
README.md, DEPLOY.md, CHANGELOG.md and LICENSE.md
- Unit tests for the agent, persistence and security hardening
- A demo workspace with sample data, switched on with
YOURDESK_DEMO=1
- Brand icons, a share card, a PWA manifest and original marketing illustrations
Requirements and third-party costs
YourDesk is a Node.js server-rendered app. It does not run on shared PHP or cPanel hosting. Production must be served over HTTPS.
- Node.js 22.x hosting (required): Vercel, Docker, a VPS, Railway, Render or Fly.io. The docs say 512 MB of memory is comfortable.
- Postgres 14+ database (required in production): Neon, Supabase, RDS or the bundled Docker container.
- xAI API key (optional): Needed for the Agent and AI drafting. Usage is billed by xAI.
- Stripe account (optional): For selling paid plans. Stripe charges its own transaction fees.
- PayPal business account (optional): For selling paid plans. PayPal charges its own transaction fees.
- Google Cloud OAuth client (optional): Turns on Google sign-in.
- Email mailbox with IMAP/SMTP (optional): For mail sync and sending. Uses an email account you already have.
The purchase covers the source code only. Hosting, database, AI usage and payment processing fees are billed by those providers. Selling hosted access to other studios requires a license that allows it, such as the Extended License.