Get set up for class

About 20–30 minutes. When you're done, you'll have your first website live on the internet. Let's go!

Before you start

Here's what you'll need:

  • A Mac or Windows computer
  • Your @rice.edu email address
  • A wifi connection

No coding experience required. You don't need to install anything ahead of time — the steps below cover everything.

If you get stuck at any point, check the troubleshooting tips below.

0 of 4 steps complete

Go to cursor.com/students and click Apply.

What is Cursor? It's an app where you describe what you want in plain English, and AI builds it for you. Think of it like ChatGPT, but instead of just showing you code in a chat, it creates real files you can run and share.

Create an account if you don't have one already. Use your @rice.edu email address.

Continue by clicking Continue with email code or creating a password.

On the next screen, pick By Myself and Student. These don't affect anything — it's just a survey.

Skip the 7-day free Pro trial — you'll verify your student status in a second.

Click Continue on the next two screens — you can always change these settings later.

Account is created. Click Download to start it, then click "I'll do this later."

You'll be dropped in the settings page. Click Verify Student Status (or click here if you got lost).

Fill out the form and click Verify My Student Status.

Check your email and click Finish Verifying in the email.

Upload your documents and you should be verified within minutes.

You now have Cursor Pro for 1 year. No credit card required — your @rice.edu email is all you need.

Mac: Open the .dmg you downloaded earlier and drag the Cursor app to your Applications folder.

Windows: Run the .exe installer you downloaded. Click through the setup wizard — accept the defaults.

Open the app — Step 1 done!

Open the Cursor app you just installed. You'll see a welcome screen — click Log In.

Your browser will open and ask if you want to log in to Cursor. Click Yes, Log In. If you're not already signed in, just use the account you created in Step 1.

You're in with Cursor Pro. Click New project.

It'll default to your Desktop — that's fine. Click Create Project Here.

On Windows? The file dialog will look different, but the button is the same. Just pick your Desktop and click Create Project Here.

You should see a welcome message from the agent chat on the left. Something like "Hi there! Welcome to Cursor." That's the AI — you'll be talking to it in the next step.

Don't see the agent chat? Press Cmd+I (Mac) or Ctrl+I (Windows) to open it.

You should see a text box in the bottom-left corner of Cursor — that's the agent chat. Hit the Copy button below, paste it into that text box, then press Enter.

The prompts for Mac and Windows are the same — the only difference is OS-specific setup instructions that help Cursor install things correctly.

I'm a student setting up for class. I've never coded before. Walk me through each step one at a time. Wait for me to confirm before moving to the next step. Explain things simply — if there's a term I might not know (like "repo" or "commit"), explain what it means.

First, ask me for my full name. You'll use it on my website.

Then, check if Node.js and Git are installed on my computer. If they're not, install them for me and confirm they're working before continuing.

Then, build me a website:
- A Next.js app with a single page
- My name in large text
- Below it: "I'm ready to build something great."
- Below that: "BUSI-371 · Rice University · 2026"
- Clean, minimal design. Dark text on light background.
- No images or icons. Just beautiful typography and spacing.

After building it, run it locally so I can see it in my browser. Tell me to open localhost:3000 in Chrome (or any browser) and check it out before we continue. Explain what localhost means.

Once I've confirmed it looks good, help me put it on the internet:
1. Help me create a GitHub account at github.com (skip if I already have one). Explain what GitHub is in one sentence.
2. Install the GitHub CLI and Vercel CLI if they're not installed
3. Create a GitHub repository, commit my code, and push it
4. Help me create a free Vercel account at vercel.com/signup — choose "Hobby" then "Continue with GitHub." Explain what Vercel is in one sentence.
5. Deploy this site to Vercel

Give me the final live URL when it's done and tell me to visit it to confirm it's working.

---

Everything below this line is instructions for the AI, not for you. You can ignore it.

---

IMPORTANT — Technical instructions for Cursor (the student should never have to open or type in a terminal):

Do EVERYTHING from this chat. The student should never type a command in the terminal. The only thing the student should ever have to do is click a link in their browser and approve/authorize — nothing else.

If a background process finishes before the student completes a browser action, don't mention it. Just verify the result after the student confirms. Never make the student feel like something went wrong if it didn't.

1. Git and Command Line Tools: Running `git --version` on a fresh Mac triggers a system popup to install Xcode Command Line Tools. This is expected and takes 5-10 minutes. Do NOT tell the student to open Terminal or run anything manually. Just run `git --version`, and if CLT isn't installed, tell the student: "Your Mac needs to install some developer tools. You should see a popup — click Install and wait a few minutes. Let me know when it's done." After the student confirms, verify with `git --version` again.

2. Node.js installation: Do NOT use Homebrew (it often has permission and macOS version issues). Instead, install Node.js via NVM (Node Version Manager):
   - Run: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
   - Then load NVM and install the LTS version: export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && nvm install --lts
   - IMPORTANT: Before every node/npm/npx/vercel command in this session, always load NVM first with: export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

3. GitHub CLI installation: Check if gh is installed with `gh --version`. If not, download and install the .pkg from GitHub. The .pkg installer requires admin privileges — use `osascript` to pop a native macOS password dialog (the familiar system prompt students see for app installs) instead of asking them to type a password in the terminal:
   - First, resolve the latest version dynamically (do NOT hardcode a version number — it will 404 when a new version is released):
     GH_VERSION=$(curl -s https://api.github.com/repos/cli/cli/releases/latest | grep '"tag_name"' | head -1 | sed 's/.*"v\(.*\)".*/\1/')
   - Download: curl -LO "https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_macOS_universal.pkg"
   - Verify the file is a real installer (should be several MB, not a few bytes). If the download is suspiciously small, the version resolution failed — check https://github.com/cli/cli/releases/latest manually for the correct filename.
   - Install via osascript (pops native password dialog): osascript -e "do shell script \"installer -pkg gh_${GH_VERSION}_macOS_universal.pkg -target /\" with administrator privileges"
   - Tell the student: "Your Mac needs your password to install a tool. You should see a password popup — type your Mac login password and click OK."
   - Verify with: gh --version

4. Vercel CLI installation: Install globally via npm (no sudo needed with NVM):
   - Run: export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && npm install -g vercel
   - Verify with: export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && vercel --version

5. GitHub CLI login: The shell runs in non-interactive mode, so `gh auth login` can't open a browser directly. Use this workaround:
   - Run `gh auth login --hostname github.com --git-protocol https --web --skip-ssh-key` as a background command (block_until_ms: 0 or use &), then sleep a few seconds and read the output.
   - It will print a one-time device code and a URL (https://github.com/login/device).
   - Give the student ONLY the link and the code. Tell them to open the link in their browser, enter the code, and click Authorize. That's it.

6. Vercel CLI login: The `vercel login` command auto-detects non-interactive mode and refuses to start the auth flow. Use `expect` (pre-installed on macOS at /usr/bin/expect) to simulate an interactive terminal:
   - Run: expect -c 'spawn vercel login; expect { "Continue with" { send "\r" } timeout { } }; set timeout 120; expect { "Congratulations" { } "authenticated" { } eof { } }' 2>&1 &
   - Then sleep a few seconds and read the output. It will print a device URL with a code (like https://vercel.com/oauth/device?user_code=XXXX-XXXX).
   - Give the student ONLY the link. Tell them to open it in their browser and approve. If they don't have a Vercel account yet, tell them to sign up at vercel.com/signup first, choose "Hobby", then "Continue with GitHub", then come back and open the device link.
   - IMPORTANT: The expect process will likely exit before the student finishes approving in their browser. This is normal. Do NOT tell the student anything went wrong or that something "timed out." Simply wait for the student to confirm they approved, then run `vercel whoami` to verify. The browser-side approval persists regardless of whether the expect process is still running.

7. Vercel deployment: After login is confirmed with `vercel whoami`, deploy with: vercel --yes
   - If `vercel whoami` fails after the student approved, the expect process may have timed out. Re-run the expect command — since the student already approved in their browser, it will complete instantly.

8. All shell commands: Always use required_permissions: ["all"] to avoid sandbox restrictions for installs and network access.

9. Admin privileges: If any command needs sudo (other than the GitHub CLI .pkg install covered above), use osascript to pop a native macOS password dialog instead of asking the student to type in the terminal:
   - osascript -e 'do shell script "<COMMAND>" with administrator privileges'
   - Tell the student: "Your Mac needs your password. You should see a password popup — type your Mac login password and click OK."
   - NEVER ask the student to type `sudo` or enter a password in the terminal.

10. GitHub repo creation: First commit the code, then create the repo and push in one step:
    - Run: git add -A && git commit -m "Initial commit"
    - Then: gh repo create <name> --public --source=. --remote=origin --push

11. Next.js app creation: Use `npx create-next-app@latest <name> --typescript --tailwind --eslint --app --src-dir --no-import-alias --turbopack --yes` to avoid all interactive prompts.

After you hit Enter, Cursor will start working. It should greet you with something like "Welcome! Let's get you set up."

From here, just answer Cursor's questions. Feel free to ask it anything along the way — it's patient.

This is the longest step — about 15 minutes. Most of it is waiting for things to install. You're doing great.

After you give it your name, it'll start installing some tools.

Mac: You should see a popup asking to install Xcode Command Line Tools. Click Install.

Don't see this window? It may be hidden behind Cursor. Use Cmd+Tab (Mac) or Alt+Tab (Windows) to find it.

Let that run for a bit — it takes around 10 minutes. Go grab a snack.

Windows: You won't see the Xcode popup — that's a Mac thing. Instead, Cursor will install Git and Node.js for you automatically. You might see a Windows dialog asking "Do you want to allow this app to make changes to your device?" — click Yes.

When it's done, go back to Cursor and tell it you're done.

Cursor will start running some commands, and you'll have to approve them each time. To save yourself the clicking, hit the three dots in the top right of the command block and select Run Everything. That lets Cursor just do its thing without asking for permission every time.

Is this safe? Yes. You can always undo anything by telling Cursor "undo that" or "revert." Nothing here is permanent.

It'll do its thing and in a minute or two it should have your site ready. You'll see a preview in your browser.

Now Cursor will walk you through creating accounts, starting with GitHub. It'll give you a link — sign up there.

When you're done signing up, tell Cursor. It'll give you another link to open and a code to enter to authorize GitHub. Go ahead and do it.

After you've entered the code, click Authorize GitHub.

You should be all set with GitHub. Head back to Cursor and let it know.

Next is Vercel — this is what puts your site on the internet. Cursor will give you a link to sign up. Use the GitHub account you just created. Click Continue with GitHub.

Click Authorize Vercel.

Tell Cursor you've created your Vercel account. It'll pop open a browser window to authorize Cursor to deploy to Vercel. Click Allow.

If Cursor asks you to create a token on Vercel instead of showing this screen, that's normal on some setups. Just follow its instructions.

Tell Cursor you've authorized Vercel. It will start deploying your website — making it live on the actual internet.

Open the link Cursor gave you in your browser and see it live. That's your website. On the internet. You did that.

After you're done

Submit your work

Paste your Vercel URL and tell us what you want to build in class.

The link Cursor gave you at the end — something like my-site.vercel.app

0/200

Troubleshooting

Running into problems?

Here are the most common issues.

"command not found: npm" or "command not found: node"

Node.js isn't installed yet. Tell Cursor: "Node.js isn't installed on my computer. Please install it for me." If that doesn't work, go to nodejs.org, download the LTS version, run the installer, then restart Cursor.

"permission denied" errors

Tell Cursor: "I'm getting a permission denied error. Can you fix it?" It will usually fix the permissions for you. Mac: If you see a password prompt in the terminal, type your login password and press Enter — the characters won't show as you type, which is normal. Windows: If you see a dialog asking to allow changes, click Yes.

Cursor says it ran out of requests or context

Start a new chat by pressing Cmd+I (Mac) or Ctrl+I (Windows) and tell Cursor where you left off: "I already built my site. I need to deploy it to Vercel. Help me from here."

My site looks broken at localhost:3000

Tell Cursor: "My site looks broken in the browser. Can you take a look and fix it?" It can usually diagnose and fix build errors on its own.

I can't verify my student status on Cursor

Make sure you're using your @rice.edu email, not a personal email. If SheerID verification isn't working, try again in a few minutes — the service can be slow. You can also sign up for a free Cursor account (without Pro) and still complete the setup.

Cursor isn't doing anything / seems stuck

Wait a minute — sometimes it's thinking. If nothing happens after a minute, type "Are you still there?" in the chat. If it still doesn't respond, start a new chat (Cmd+I on Mac, Ctrl+I on Windows) and tell it where you left off.

I accidentally closed Cursor

Just reopen it — it should reopen your project automatically. Start a new chat (Cmd+I on Mac, Ctrl+I on Windows) and tell it where you left off: "I already built my site. I need to deploy it to Vercel. Help me from here."

I see errors about "winget" not being recognized (Windows)

This is normal on some Windows setups. Cursor will automatically try a different way to install the tools. Just let it keep going.

Something else went wrong

Copy the error message and paste it to Cursor — it can usually explain and fix the problem. If you're truly stuck, ask Pat Bot and describe what happened.