Set up your Batch Tracker

Five steps, all in your browser. No terminal, no installs required.

πŸ€– Stuck at any point?

Copy the prompt below and paste it into ChatGPT or Claude, along with your Supabase details as you go - it can walk you through this live, click by click, including the parts of the Supabase/GitHub dashboards this page can't do for you.

1 Create your Supabase project

Supabase hosts your database for free. This creates YOUR OWN project - nobody else can see or touch it.

  1. Go to supabase.com/dashboard/new and sign up (no credit card needed).
  2. Click New project. Pick any name (e.g. your farm's name) and a strong database password.
  3. Save that password somewhere - Supabase won't show it again, though you can reset it later if needed.
  4. Wait ~1-2 minutes for the project to finish setting up.

2 Push the database schema

Creates every table, index, and security rule this app needs, in one paste.


    

Then in your Supabase project: left sidebar β†’ SQL Editor β†’ New query β†’ paste β†’ Run. You should see a "Success" message. Safe to run more than once if unsure.

3 Connect your projectβœ“ Connected

In your Supabase dashboard, find the API settings page:

  1. Click the βš™ Settings icon near the bottom of the left sidebar.
  2. Click API Keys in the menu that opens (on some projects this is just called API - same page either way).
  3. Near the top you'll see your Project URL - copy it into the box below.
  4. Below that is a list of keys. You want the safe-to-share one - labeled either "Publishable key" (starts sb_publishable_...) or, on older projects, "anon" / "public" (a long string starting eyJ...). Copy that one into the second box.

Do not copy the other key on that page - labeled "Secret key" (sb_secret_...) or, on older projects, "service_role". That one bypasses all your security rules and must never go in a file a browser can see. If you're ever unsure which is which, paste it below anyway - Step 3's test will refuse it and tell you.

4 Get your files

Test your connection in Step 3 first - both options below unlock once that passes.

Locked until Step 3's test succeeds.

The zip is everything in this repo, plus your config.js already filled in - unzip and deploy as-is, no separate fork step needed. "Just config.js" is for if you've already forked/templated the repo and only need that one file added.

5 Deploy

Put your copy on the internet, on your own free GitHub account. If you're reading this on a page someone else shared with you (not one you've deployed yourself yet), that's normal - this step is where you get your own copy.

Which did you download in Step 4?

A) The full package (.zip) - fastest, one upload:

  1. Unzip the file you downloaded.
  2. On GitHub: create a brand new, empty repository - any name, public is simplest. You don't need "Use this template" for this path - the zip already has everything, including your own config.js.
  3. On that new repo's page: Add file β†’ Upload files β†’ drag in everything from the unzipped folder, including files starting with a dot (like .nojekyll and .gitignore - your file browser may hide these by default, check its "show hidden files" setting) β†’ Commit.
  4. In that repo: Settings β†’ Pages β†’ Source = "Deploy from a branch", Branch = main / (root) β†’ Save. Takes 1-2 minutes.

B) Just config.js - two steps, if you'd rather use "Use this template":

  1. On the Batch Tracker repo page: click "Use this template" if you see it (cleanest - a fresh independent copy), otherwise "Fork".
  2. In your new repo: Settings β†’ Pages β†’ Source = "Deploy from a branch", Branch = main / (root) β†’ Save. Takes 1-2 minutes. (If you're reading this page at your own github.io address already, Pages is already on - skip this.)
  3. Add the config.js you downloaded to your repo, next to index.html - easiest via Add file β†’ Upload files on your repo's GitHub page, then commit. Wait ~1 minute for the site to rebuild.

Then, either way:

  1. Create your first login: in Supabase, Authentication β†’ Users β†’ Add user.
  2. Visit https://YOUR-USERNAME.github.io/YOUR-REPO-NAME/ (whatever you named your repo above) and sign in. You're done.

config.js holds your anon key - that's meant to be public/client-visible, it's the Row Level Security rules from Step 2 that actually protect your data, not secrecy of this key.

interactions tracked on this template so far