MarketplaceSales and business operations

CRM App

A CRM for small teams that don't want five tools. Keep companies and deals in one place, move deals across a pipeline board, plan the work as tasks, log hours against the right deal, record income and expenses, and open one dashboard to see how it's all going. Roles decide who can see and change what.

Get this app
  • Included with the Starter and Pro plans
  • An exact copy of the whole application
  • Frontend, backend and data included
  • Yours to keep and change in your own repository
  • Multilanguage, for whatever country you need
Dashboard with open pipeline, won value, net this month, overdue tasks and four charts
Dashboard
pages
13
built-in roles
3
backend workflows
39
data tables
8
file bucket for logos and profile pictures
1
Made for
  • Small sales teams and agencies
  • Consultancies and service businesses that bill by project and track hours
  • Founders who want pipeline, work and money on one screen
  • Teams moving off spreadsheets
  • Agencies building a simple internal CRM for a client
Every screen

See it the way your team does

Know where every deal stands

  • Dashboard with open pipeline, won value, net this month, overdue tasks and four charts
  • A board with six stages, from Lead to Won and Lost: drag a deal to move it
  • Each column shows its count and total value, with search and filters by company, owner and stage
  • Every deal has a company, value, stage, expected close date, owner and notes
  • Companies with industry, phone, website, address, notes and a logo
Dashboard with open pipeline, won value, net this month, overdue tasks and four charts

1 / 7Dashboard with open pipeline, won value, net this month, overdue tasks and four charts

How a deal moves

From first contact to won, with the work and money beside it

Tasks link to a company, and hours and money link to a company and a deal, so everything adds up on the dashboard.

  1. Lead
  2. Qualified
  3. Proposal
  4. Negotiation
  5. Won or lost
Deal form with company, value, stage, close date, owner and notes
What you get

The whole application, one to one

Pages

  • Dashboard
  • Companies
  • Deals
  • Tasks
  • Timesheets
  • Money
  • Reports

Team and sign-in

  • Users
  • Roles
  • Settings
  • Sign in
  • Create first account
  • Accept invitation

Backend

  • 39 workflows
  • 8 data tables
  • 1 file bucket for logos and profile pictures
  • 3 built-in roles

Technology

  • React 18, Tailwind CSS 4, Radix UI components, Lucide icons
  • Passwords stored as hashes; sign-in uses signed tokens that last 7 days
  • Five failed sign-ins lock the account for 15 minutes
  • Access checked on the server against the users and roles on every request
  • Image uploads only: PNG, JPG, WebP and GIF
In the app

Change it without touching code

  • Companies, deals, tasks, timesheets and money entries
  • Users, roles and profiles
In the code

A quick edit to make it yours

  • The app name and the logo mark
  • The sign-in page text
  • The pipeline stages and task statuses
  • The suggested money categories
  • The currency
Setting it up

Six steps to your own CRM

You will need

  • A Ubex account, where the app's workflows and tables run
  • Optional: a Resend account, to send invitations by email and turn on sign-in by email link
  1. Add your own JWT_SECRET.
  2. Set the app's address in the allowed origins of the workflows and in the Invite User workflow.
  3. Clear the test accounts and test records from the tables.
  4. Publish the app on a subdomain or custom domain.
  5. Open the app and create the first account. It becomes the Admin, and sign-up then closes.
  6. Invite the team and adjust the roles.
Good to know

What it doesn't do

Better to know now than later. You can add any of this yourself: the code is yours to change.

  • Companies, not contactsEach company has one phone number and website. There are no individual people at a company and no contact list.
  • No email out of the boxAn invitation is a link you copy and send yourself. With Resend connected, only invitations and sign-in links are sent: no email sync, campaigns, sequences or tracking.
  • No notifications or remindersNo bell, no due-date alerts and no push.
  • No calendar or call loggingNo meeting booking, and no record of calls.
  • No activity historyThere is no timeline of what happened on a deal or a company.
  • Tasks stay with their ownerThe task form can't assign a task to someone else or link it to a deal.
  • No quotes, invoices or paymentsMoney is a record of income and expenses, not accounting: no bank connection, tax handling or currency conversion.
  • No automations, lead scoring or AIThere are no workflows for users to build inside the app.
  • No import or exportNo CSV and no PDF.
  • No custom fieldsOne pipeline. Its stages and the task statuses are fixed unless the code is changed.
  • No forecasts or targetsReports have no sales targets, no forecasting and no date range picker.
  • No attachmentsUploads are company logos and profile pictures only. No files on deals or tasks.
  • Hours are typed inTimesheets have no timer, approval or billing.
  • No password resetSomeone who forgets their password has to ask an admin for help.
  • No Google sign-in out of the boxA workflow exists, but it needs a Google client ID and a sign-in button added to the app. Sign-in by email link stays off until an email provider is added.
  • Phone browser, not a phone appThe web app works in a phone's browser, where wide tables scroll sideways.
  • Invitations don't expireAn invitation link stays valid until it is used.
  • One workspace, one currencyAmounts are in US dollars, and there is no multi-company support.

Everything in these screens is made up: the people, companies, deals, tasks, hours and money figures. The demo company has no name, and its email addresses end in northwind.example. The app uses no stock photography: logos and profile pictures are uploaded by your team, and initials are shown until then.

Run your pipeline, work and money in one place

Get an exact copy, put your name on it and make it yours.