What each tool does
Four accounts, one editor. You describe the app to Antigravity, GitHub keeps the code safe, Vercel puts it online, and Firebase provides shared data when the app needs it. Each offers a free starting plan, subject to account eligibility and usage limits.
Set up the system
- Go to antigravity.google/download. Under Antigravity for IDEs, choose Antigravity IDE (Standalone) for your computer.
- Open it, choose Continue with Google, and sign in with an account your school permits.
- When it asks how you want to work, pick the default agent settings. You can change models later.
- Go to github.com/signup and create an account with an email your school permits you to use.
- Pick a short username you would be happy to put on a slide. You will type it later.
- Verify the email. Choose the Free plan.
- Go to vercel.com/signup, choose Hobby (free), and click Continue with GitHub.
- Click Authorize Vercel on the GitHub screen that appears.
- Go to console.firebase.google.com and sign in with the Google account you are using for this workshop.
- Accept the terms. Do not create a project yet. The agent makes one for you the first time you describe an app that needs a database, and it logs in with this same account in Step 5.
- In Antigravity, make a new folder on your Desktop called apps and open it (File, Open Folder).
- Paste this into the Agent panel and press Enter. Review each requested command before approving it. Each login opens a browser tab; approve the account connection, then return to Antigravity.
Check whether these are installed on this computer: git, Node.js (LTS), the GitHub CLI (gh), the Vercel CLI (vercel), and the Firebase CLI (firebase-tools). Before installing anything, show me the exact commands and official source for each download, then wait for my approval. Install anything I approve: git, Node.js, and gh with Homebrew on Mac or winget on Windows; vercel and firebase-tools with npm install -g. Then log me in one at a time and wait for me after each browser step: first gh auth login (GitHub.com, HTTPS, log in with a web browser, and yes to letting gh handle git credentials), then vercel login, then firebase login using the Google account I chose for Firebase. If git has no name or email set, set them to my GitHub username and email. Finish by running gh auth status, vercel whoami, and firebase login:list, and tell me the account each one shows.
- Paste this into the Agent panel. It creates one global rule and two global skills in Antigravity's documented customization folders.
- Open the files and read them. They are plain English, and you can edit them whenever you want the routine changed.
View the setup prompt
Set me up so I can build and publish an app just by describing it. Use Antigravity's global customization locations so this routine works in every workspace. Create these three files, preserving anything already in them. 1. ~/.gemini/GEMINI.md. Add a short section titled App House Rules. Rules: default to a single index.html with no build step when that structure can support the experience cleanly, including interactive simulations built with JavaScript, Canvas, or SVG; use additional files or a framework when the app genuinely needs them; write plain, warm, second-person copy; use accessible labels, visible keyboard focus, readable type, and no emoji; use regular hyphens, never em dashes; never collect sensitive student information; use initials or an optional display name for public prototypes; keep code readable; test the complete app in a browser before saying it works. When I describe a new app, use the new-app skill. When I request a change to an existing app, use the ship skill. 2. ~/.gemini/config/skills/new-app/SKILL.md. Give it valid YAML front matter with name: new-app and a description that says it builds, tests, publishes, and backs up a new app from my description. In the instructions: choose a short kebab-case name; create and work inside that folder; choose the simplest architecture that fully supports the idea; use a single index.html for focused tools and simulations when practical, but add files or a framework when complexity requires it; test desktop, phone, keyboard, empty inputs, reload, and the complete main path. For simulations, test every control, boundary value, reset, animation state, label, and scientific relationship. If data must be shared across devices, create and register a Firebase web app with the Firebase CLI, retrieve its web configuration, initialize Firestore, and pass the exact project ID to every Firebase command. Write collection-specific Firestore rules that allow only the operations the app needs, validate allowed fields, types, and reasonable lengths, and deny every other path. Never use a blanket public read/write rule or collect sensitive student data. Deploy and verify the Firestore rules. Next deploy to production with vercel --prod --yes and verify the live URL. Then initialize git, commit, create a private GitHub repository with gh, and push. Finish by testing the live URL and reporting the Vercel link, GitHub repository, Firebase project if used, and test results. Continue without asking questions unless permissions fail or a choice would change the app's purpose. 3. ~/.gemini/config/skills/ship/SKILL.md. Give it valid YAML front matter with name: ship and a description that says it safely tests and publishes changes to an existing app. In the instructions: inspect the current git state and preserve unrelated work; test the complete changed path in a browser at desktop and phone sizes; deploy first with vercel --prod --yes; verify the production URL; then commit only the intended files and push the existing GitHub remote; confirm the worktree is clean; report the live link, commit, and tests. If the app uses Firebase, deploy rules only when they changed and verify the exact project before deployment.
~/.gemini paths, or create them from the Customizations panel. Do not grant broad access to unrelated folders.Just describe what you want
- Paste this. Swap in your class name.
- Follow the build through database rules, deployment, live testing, and code backup. Review each result before using the app with students.
Build me an exit ticket prototype for CLASS NAME HERE. A student may enter initials or leave the name blank, then writes one sentence about what they learned today. After submitting, the ticket appears in a shared list with the newest first, so every device sees the same class list. Do not collect email addresses or other personal information. Limit entries to 200 characters, prevent blank tickets, and include a clear teacher note that anyone with the link can see submitted responses.
Add the date and time next to each ticket, plus a line at the top that reports the total number of tickets. Keep the existing privacy note, validation, and database rules intact. Test the change on the live site.
Open your link again and refresh. The change is there, and you never touched GitHub or Vercel.
- Paste this. It is the last prompt on this page.
Build me a random group maker. I paste in a list of names, choose the number of groups, and it shuffles the names into balanced groups. This is for one device, so it does not need a database. Do not save the names after the page closes.
Build the learning experience you imagine
This process is not limited to simple utilities. You can build interactive learning apps and simulations like the experiences you have used in Desmos or PhET, including chemistry models and the kinds of classroom apps Ramsey demonstrated at the department meeting.
- Start with the learning: describe what students should notice, manipulate, test, compare, or figure out.
- Build beyond worksheets: create PhET-style science simulations, Desmos-style interactive models, virtual chemistry labs, data explorers, animations, review experiences, and tools specific to your own course.
- Revise by describing what should change: ask for a new control, a better model, clearer feedback, different data, or a stronger learning sequence, then have the agent test and republish it.
- One file is a starting point, not a limit: many rich simulations can live in one HTML file, and the agent can use a larger structure when the idea needs it.
- Want the routine changed? Open the three global customization files in
~/.geminiand edit them in plain English. - Stuck? Paste the error to the agent and ask it to diagnose, fix, and retest the issue.