First Builds

From twenty minutes to an afternoon

Three levels of getting started with code

Three ways to build something real with AI, and to feel at home with code along the way. At each one the AI writes the code; you copy, paste, ask for changes, and look at what comes back. Every level is a good level: pick the one that would stretch you a little.

How the three differ

Pick one and start. Nothing here to sign up for; you'll need an AI chat you can sign in to.

  • 1In the chat

    You make
    A small tool you can press: a timer, a picker, a quiz
    The code runs
    In your browser, inside the chat
    Who sees it
    You, until you share it; the AI company keeps the chat
    It can reach
    Not your files or accounts
    It teaches you
    Code is text you can read and change

    Twenty minutes · an AI chat

    Open level 1
  • 2On your site

    You make
    A page from a document you already have
    The code runs
    In each visitor's browser, in a box on your Site
    Who sees it
    You in Preview; whoever you publish to
    It can reach
    Not the rest of your Site, or your visitors' accounts
    It teaches you
    Code lives somewhere, and the place sets the rules

    An hour · a Google Site you can edit

    Open level 2
  • 3Behind the scenes

    You make
    A script that does a chore in your Drive
    The code runs
    On Google's computers, signed in as you
    Who sees it
    Just you: it makes a Sheet in your Drive
    It can reach
    What you allow the first time it runs
    It teaches you
    Code can act as you, so Google asks first

    An hour the first time · your Google Drive

    Open level 3

First run live as {record.ran}; everything here works on your own, any day.

In a live session? Pick your level

Your host links the Breakout Planner in the chat: a shared Google Doc with a list under each level. Add your name under 1, 2, or 3. Working with someone? Put their name next to yours. Your host makes breakout rooms from the lists, and your room number appears next to your name.

Running this with your own group? Hosts has the Breakout Planner to copy and the steps for making rooms from it.

Twenty minutes · an AI chat

A small tool that runs right inside your AI chat: a timer, a picker, a quiz, a fortune-teller. You describe it, the AI writes it, and it appears in a panel beside the conversation, working, with buttons you can press. Nothing to install and nothing to publish.

How it works

A starter is a small web page: one file of code. Ask for a new tool and the AI usually writes the same kind of file. Three kinds of code share it:

HTML
what's on the page: a heading, a button, a list
CSS
how it looks: colors, sizes, spacing
JavaScript
what happens when you press something: the countdown, the shuffle, the answer

Gemini's Canvas and Claude's artifacts run the file in a panel beside the conversation; ChatGPT's Preview runs it in place of the code. Either way the conversation keeps it: open the chat again and it's still there, as long as your chat history is on.

Why start here

It's the shortest loop there is: ask, look, change, look again, in seconds.

An example

The Teacher's Lounge Oracle from the Starters page, pasted into a chat, answering questions; then taught a new topic with one request.

Try it

  1. Open the starters and press Play on one. Guess what it does first.
  2. Press Copy for my AI. It copies the tool's whole code with a short note asking the AI to run it. Paste it into your AI chat (where, in each tool) and send.
  3. Ask for one change. Then another. Then break it on purpose: ask for something it can't quite do ("make it work with 500 names"), and when it goes wrong, describe what's on the screen in plain words.
Where do I paste it, and what you'll see

Monday

A timer that knows your bell schedule. A spinner for whose turn it is. A quiz on this week's words. Anything you'd put on the board and press.

An hour · a Google Site you can edit

A document you already have becomes an interactive page, and you put it on your Google Site with a feature most people never find: Embed code, which places the page you built inside a box on your site. It looks like part of the site. It is the thing you built.

How it works

It's the same kind of file as level 1; what changes is where it lives. Google keeps the box sealed off from the rest of your Site. That keeps your Site safe, and it's why the page can't remember anything between visits.

Why this level

Your document already has the words; the AI gives them a shape. And it's the first time other people use what you built: your team, families, students.

An example

A department charter goes into Gemini with Canvas on, comes out as an interactive page of cards and badges, and lands on a Google Site in about a minute. Two finished examples are on the Starters page: the Charter Cards and the Syllabus Page.

Before you start

  • A document to turn into a page: a charter, a syllabus, a handbook page, the norms on the wall. Made-up or your own; nothing about students. A poster? Type its words into a Doc first. A PDF? Open it and copy the text.
  • A Google Site you can edit. No Site yet? Go to sites.google.com, choose Blank site, and give it a name. You don't have to publish it to try this: Preview shows it working.
Where do I paste it, and what you'll see

Try it

  1. Copy the prompt. In your AI chat, switch on Canvas (Gemini) or get ready to press Preview (ChatGPT), as in Where do I paste it, then paste the prompt. Don't send yet.

    Promptwords: paste them into your AI chat

    Read the prompt

    Here is a document my team already uses. Turn it into an interactive infographic as a single HTML page: each section becomes a card that opens when clicked or tapped, the key commitments become a row of badges, in plain language and large type, and it works on a phone. Keep the document's meaning exactly; don't add anything it doesn't say. No outside libraries, images, or fonts. The document is below.

  2. Open your document, select all of its text (Ctrl + A, or ⌘ + A on a Mac), copy it, and paste it under the prompt in the same message. Send.
  3. When the page looks right, copy its code. The code is the text that makes the page work; it starts with <!doctype html>. Each tool has its own copy spot (listed above). Copy all of it, first line to last.
  4. Open your Google Site to edit it. Choose Insert, then Embed, then the Embed code tab. Paste, choose Next, then Insert.
  5. Drag the box's corner until the whole page shows. Preview shows it to you; Publish shows it to whoever your Site is shared with, and Sites asks you who that is.

You'll know it worked

Your document, as cards you can open, inside a box on your Site's page in Preview.

If it breaks

  • Sites says the code is too long: ask your AI for a lighter version, fewer sections and less decoration.
  • The box stays blank after you publish: your district may limit embeds. Ask your technology office.

Monday

A syllabus that opens section by section. A family-handbook page people actually read. A "who to call" card for your department. Anything that's a document now and should be a page.

3

Behind the scenes

The level 3 starters

An hour the first time, fifteen minutes after that · your Google Drive

A short script does a job for you inside Google Workspace. A script is a few lines of code Google runs for you, in a tool called Apps Script that's built into every Google account; you approve what it may touch before it runs. No screen to look at, just work that gets done. The AI writes it, you paste it, you press Run.

How it works

Apps Script is JavaScript, the same language that makes level 1's buttons work, but it runs on Google's computers instead of in your browser, signed in as you. Instead of showing you a page, it can open a folder, list every file in it, and make a Sheet. You paste the script into a project and press Run. Below the code, the Execution log is where the script tells you what it did, or what went wrong.

Why this level

It's the first code that does a job instead of showing you something: work you'd do by hand, done in seconds, every time you press Run.

An example

A Drive folder with folders inside it, and a script that reads all of them and writes a Sheet: every document, its type, and a link to open it. A whole curriculum, one search away.

A script acts with your account

  • Whatever you can open, it can open. So read it before you run it, or have it read to you: Copy for my AI to explain, below, hands it to your AI with a note asking for a line-by-line explanation. Ours is short enough to read on this page. A line nobody can explain doesn't run.
  • The permission screen is the gate. It names exactly what the script may touch. Read it like a permission slip. Ours asks for Drive and Sheets, because that's its whole job; a script that asks for Gmail to list a folder is asking for too much. What you're allowing.
  • Practice files while you're learning. Point it at a folder of made-up documents. Nothing about real students goes into a script you can't yet explain. Student data.
  • A script that arrives with no explanation stays unrun, and never share one that touches student data. If script.google.com won't open, your district turned it off, and that's a conversation with your technology director, not a workaround.

Our script: the Drive Inventory

A standalone script: a project of its own in Apps Script. Its one setting is the folder it reads.

Before you build further

Four things worth knowing once the inventory has run, and before a script goes near real work. Each opens on its own.

Where a script livesOn its own, or inside a file, and why it matters

Every script lives in one of two places. Google calls them standalone and container-bound; the Starters page has one of each.

Standalone: on its ownBound: inside a file
Start oneAt script.google.com, New project. Or in Drive: New, More, Google Apps Script.From inside a Sheet, Doc, or Slides file: Extensions, Apps Script. In a Form: More (⋮), Apps Script.
Find it againAmong your files in Drive.Inside its file. It never shows in Drive as a file of its own and can't be taken out of its file.
What it can reach easilyAny file you can open, by its ID.The file it lives in, with no ID. It can also add a menu, a dialog, or a sidebar to that file, and run when the file opens.
Who can see itYou, and whoever you share the project with.Everyone who can edit the file can edit and run the script. Everyone who can only view the file can still read the script.
When it's copiedYou can share it with collaborators, like a Doc.Whoever copies the file owns the copy and gets their own copy of the script: the way a district passes a tool along.

Read before you share a bound file. Anyone who can view the Sheet can read its script, so a key, a password, or a student's name typed into the code is shared along with it.

What you're allowingThe permission screen, line by line, and how to take it back

It runs as you

A script does its work signed in as you. Whatever you can open, it can open, within the permissions you give it on the first run.

Google reads the code to decide what to ask

Apps Script scans the script for the services it calls: DriveApp means your Drive, SpreadsheetApp your Sheets. Even a line turned into a comment can still prompt a request, and when a changed script calls a new service, the next run asks again. That's why the screen can look broader than the job: Google's wording for Drive is see, edit, create, and delete, even for a script that only reads. Ask your AI which lines, if any, change a file.

The screen

  • Review permissions, then your account.
  • Maybe “This app isn't verified”. Google shows it for scripts it hasn't reviewed that ask for sensitive permissions; on a personal Gmail account it shows even for a script you wrote yourself. Advanced, then Go to your project's name (unsafe), goes on.
  • A box for each permission. Since January 2025 you can tick some and leave others. A script that asks for only one permission shows no box. Leave one unticked, and the script stops with an authorization error when it reaches a line that needs it.

Ask for less

Ask your AI to use only the services the job needs. In a bound script, a comment line reading /** @OnlyCurrentDoc */ narrows the Sheets, Docs, Slides, or Forms permission to the one file the script lives in, instead of all of yours; Google's pages describe it for those four services only. Ask your AI whether your script can use it.

Take it back

At myaccount.google.com/linkedapps: Access to your Google Account, your project, See details, Remove access. The next run asks again.

What your district decides

Apps Script is on for everyone unless an administrator turns it off, and off stops web apps and scheduled runs too. An administrator can block permissions Google counts as high-risk for apps it hasn't trusted, and on some editions can limit which outside addresses a script may reach. “Blocked by your administrator” means one of these: a conversation with your technology office, not a workaround.

Student dataWhose rules come first, and what changes when a script reaches outside Google

Practice with made-up data, every time. When a script is ready for real records, these are the rules it meets, in our reading of the sources below. They're not a ruling for your district: your district decides, and answers for it.

Reach only what your work needs

FERPA lets a district share student records with its own staff, teachers included, who have a legitimate educational interest, by criteria the district publishes in its annual notice. It asks the district to use reasonable methods so each person reaches only the records they need. Minnesota treats educational data as private, and keeps data that isn't public to the people whose work assignment reasonably requires it. A script runs as you, so it reaches everything you can; what it makes, a new Sheet of students, should go only to people who could already see those records.

Inside Google, and outside it

For a district on Google Workspace for Education, Google's contract says Google acts as a school official for FERPA records in the district's data, and doesn't use that data for ads. Apps Script, Drive, and Sheets are among the Core Services the contract covers, so a script that uses only DriveApp and SpreadsheetApp works on data held under it. A script that calls UrlFetchApp sends data to other servers on the internet, and Google's promise doesn't speak for them. The Department of Education's guidance is that an online service, an AI service included, gets student information under FERPA's rules for outsourcing: the company does work the district would otherwise use its own staff for, under the district's direct control over how the records are used. That's a district decision, made before the script runs.

Free tools count too

The U.S. Department of Education recommends that free online services go through the same approval as paid ones, warns that clicking “I agree” can bind the school to a company's terms, and asks teachers to check whether a tool is approved before using it with students. It restated the rules for outside services in August 2026.

Who to ask

Your technology office, and your district's data practices compliance official: the person Minnesota law names for questions about data. The responsible authority for a district's data is the superintendent unless the school board names someone else.

More on Minnesota's rules for technology providers and the notice families get each fall: From the room.

Later: a web appWhen other people use what you built, two settings decide what they reach

A web app is a script with a page: other people open its address in a browser and use it, without ever seeing Apps Script. It needs a function named doGet, which your AI writes when you ask for a web app. You publish it with Deploy, New deployment, and Web app as the type (the gear beside “Select type”), then Deploy, and Google gives it an address ending in /exec.

The two settings

Execute as
As you, the person who deployed it: it works with your access, whoever opens it. Or User accessing the web app: it runs as each visitor, who approves its permissions and reaches only what they can already open.
Who has access
Only you; anyone in your district's Google Workspace (Google's label: “Anyone within your Workspace organization”); anyone signed in to any Google account; or anyone at all, signed in or not.

Together

  • Each visitor as themselves, your district only: everyone reaches only what they could already open. The calmest place to start.
  • As you, your district only: staff use your access through the app, so the app's own code is the gate that decides what each person sees. Hidden or protected tabs don't lock anything (why).
  • As you, open to anyone: anyone with the address uses your access through the app. Never with student data.

Good to know

  • To change a live web app without changing its address: Deploy, Manage deployments, the pencil, New version under Version, Deploy. Until then visitors get the old version.
  • A bound script that becomes a web app loses its file: the line that meant “the Sheet I'm in” stops working there, so the app opens its Sheet by ID instead.
  • Running as you, the app can usually tell who's visiting from inside your district's Workspace; for anyone outside it, their email comes back blank.
  • Each run gets six minutes, and one person can run at most 30 at once. Where scripts slow down: From the room.

Monday

An inventory of a curriculum folder, so the right lesson is one search away. A Sheet that fills in a Doc for every row. A reminder that writes itself on Friday afternoon. Anything you do by hand in Workspace, again and again. The Starters page has a second script, the Doc Multiplier, which makes one Doc for every row of a Sheet: try it after this one.

At any level: three habits

Guess first

Before you press Play or Run, say what you think will happen, then check. Guessing first is the P in PRIMM (predict, run, investigate, modify, make), a way of teaching programming with research behind it.

Look inside

Open the code and find one thing you recognize: a word you saw on the screen, a number you could change. The rest can stay a mystery for now.

Change one thing

One request at a time. After each, say what changed, or ask the AI which lines it changed. When it breaks, describe what's on the screen in plain words; programmers do that too.

Later

With a workbench

An app where the AI works inside a folder of files on your computer instead of in a chat window: it reads them, changes them, runs them, and checks its own work while you watch (Claude Code, Codex, Cursor, Gemini CLI). This site was built that way, by an English teacher. It needs a terminal, a GitHub account, your district's say-so on a work laptop, and a tolerance for things breaking on purpose.

For when level three feels easy. The Sources page lists where to start.

Copy this by hand

Your browser blocked the copy button. The text below is selected: press Ctrl+C (⌘C on a Mac) to copy it.