Try Cursor Origin on a side project without moving production

Cursor shipped Origin on August 17. I would try it on HelloFutsall first, keep GitHub as the remote, and copy the merge gates I already use on SyBazar.

Origin launched with repos, pull requests, and GitHub sync. SyBazar and OnMission stay on GitHub. HelloFutsall is my own booking product, so it is the safe place to follow these steps.

Step 1: Write the merge gates you refuse to lose

Before you click sync, list the checks that already protect a NestJS or Next.js service. If Origin cannot run the same gates, you do not move the remote.

export type MergeGate = {
  typecheck: boolean;
  unitTests: boolean;
  healthSmoke: boolean;
  imageTag: string;
};

export function canMerge(gate: MergeGate): boolean {
  return (
    gate.typecheck &&
    gate.unitTests &&
    gate.healthSmoke &&
    gate.imageTag !== "latest"
  );
}

Step 2: Keep GitHub as origin and add Origin as a second remote

Do not replace the remote on day one. Mirror HelloFutsall so GitHub remains the source of truth for PRs and deploys.

git remote -v
git remote add cursor git@cursor:ayushadhikari/hellofutsall.git
git push cursor main
git remote set-url --push origin git@github.com:ayushadhikari/hellofutsall.git

Step 3: Run the same health smoke you use in production

If an agent opens a PR on Origin, it still has to boot the app and hit /health the way SyBazar services do before AWS gets a new image.

import { request } from "node:http";

export function smokeHealth(port = 3000): Promise<void> {
  return new Promise((resolve, reject) => {
    const req = request(
      { host: "127.0.0.1", port, path: "/health" },
      (res) => {
        if (res.statusCode === 200) resolve();
        else reject(new Error(`health ${res.statusCode}`));
      },
    );
    req.on("error", reject);
    req.end();
  });
}

Step 4: Decide with a PR you would actually approve