All Project Templates

Orbit

by Yard
Orbit preview
Gallery image 0
Gallery image 1
Gallery image 2
Gallery image 3
Gallery image 4
Gallery image 5

A CRM for small sales teams that you can run as your own. Keep track of people and the companies they work for, move deals across a drag-and-drop pipeline, and log every call, email, meeting and note on one timeline. Tasks with due dates keep follow-ups from slipping, and a dashboard shows where the quarter stands. Teams share a workspace through a single invite link, and the owner's plan covers everyone in it. It ships with sign-in, a database, a free tier, a subscription with a free trial, and a polished landing page, all running on Yard. The interface is React and shadcn/ui.

Features

  • A pipeline you can drag: deals move from Lead through Qualified, Proposal and Negotiation to Won or Lost on a kanban board, with each column's total value at the top. A list view sorts and filters the same deals
  • One timeline per record: notes, calls, emails and meetings, plus every deal's creation and stage change. A note logged on a deal also shows on its contact's and company's timelines
  • Contacts and companies, linked both ways: each person's company, deals, tasks and history are on one page, and each company shows its people, open deal value and activity
  • Tasks that sort themselves: assign a follow-up to yourself or a teammate, tie it to a contact, company or deal, and see it filed under Overdue, Today or Upcoming
  • A dashboard that's always current: open pipeline, a weighted forecast from each stage's probability, win rate, revenue won per month for the last six months, your tasks, and recent activity
  • Search everything with ⌘K: jump to any person, company, deal or page, or create a new record, from anywhere in the app
  • Workspaces with roles: everyone gets a workspace of their own on first sign-in and can join others. Owners, admins and members each see what they should. Removing someone also resets the invite link, so they can't use it to rejoin
  • Sample data in one click: an empty workspace can load 8 companies, 16 people, 16 deals spread over six months, tasks and timeline entries, so the dashboard has something to show
  • Edits that don't collide: saving a record sends only the fields you changed, so two people editing different fields of the same deal both keep their work
  • Light and dark themes that follow your system, with a toggle to override it, shared between the app and the landing page

Built on Yard

  • Yard Auth: people sign in with Yard. There's no login code in the repository and Orbit never handles a password
  • Hosted service: the whole backend is a single fetch handler, written in TypeScript and bundled to one file. There's no server to run or scale
  • Database: workspaces, members, contacts, companies, deals, tasks and activities live in the project's own SQLite database, and migrations apply themselves on deploy
  • Custom landing page: the pricing cards are filled from the project's live tiers, so they always agree with checkout. Signed-in visitors see "Open Orbit" in place of the sign-up buttons
  • Pricing: Free for one person, with 250 contacts and 50 open deals. Pro is $12 a month, or 20% less yearly, with a 14-day free trial that needs no card. It unlocks unlimited records and up to 25 teammates. A workspace runs on its owner's plan, so one subscription covers the whole team. When a trial or subscription ends, nothing is deleted: the workspace keeps its records and can't add more beyond the Free limits

Technical details

  • React 19, TypeScript, Tailwind v4 and shadcn/ui, built with Vite. TanStack Query and TanStack Table, dnd-kit for the board, Recharts for the charts. The built app is committed, so the repository deploys as it is
  • One set of zod schemas validates both the forms and the API, so the two never disagree about what a valid contact is
  • The server is the paywall: plan limits are checked on every write that adds a contact, an open deal or a teammate. Any workspace you're not in answers 404, so ids can't be probed, and ids in a request body are checked so a record can never point into another workspace
  • Reordering the board rewrites one row: a moved card takes the midpoint of its new neighbours' positions, so a column is never renumbered
  • Two people accepting the last open seat at the same moment can't both get in: the member cap is enforced inside the insert itself
  • Every query in the app is scoped to its workspace, so switching workspaces never shows another workspace's data
  • Logs never include names, emails, notes, deal titles or any other CRM content, and ids are cut to 8 characters
  • A curl and jq test suite drives the API as four different people against yard dev

Requirements

A Yard plan that includes hosted services and custom landing pages. Your plan must also allow a subscription tier with a free trial. Yard Auth is included.

Pro is a real Yard subscription for whoever runs the copy. To try it without money moving, use a sandbox: its checkout is simulated.