1 What Airtime Map is
Airtime Map is a free classroom tool for seeing who has spoken. You arrange a seating plan on a phone, an iPad or a laptop. You tap a name when a pupil answers, asks a question or builds on an idea, and each desk shades by how much that pupil has said. One list names everyone you have not called yet, and one button points to someone you have not heard from. Another picks at random, like a raffle.
Every class stays in the browser on that device. There are no accounts, nothing is uploaded, and the app works without a signal once it has loaded.
What it does today
- Arrange. Paste a class list, then choose rows, pairs, groups of four, a ring or a U shape. Drag seats, or hold one over another until swap arrows appear and let go to swap. Grid placement snaps seats to a grid; Free leaves them where you drop them. Tidy up lines seats into rows and columns, and Auto-align puts each pupil on the nearest seat of the layout. Lock a seat so Shuffle leaves it alone. Seats can be rectangles, squares or circles.
- Your view. The screen is your own view of the room. The big Teacher marker at the bottom is you, and up is straight ahead. Give it your own colour and icon. Say whether you are at the back, the front or a side of the room and the seats turn to match what you can see.
- Mark seats. Eight colours, each with its own shape so colour is never the only signal. A hot seat. Emoji in groups (people, animals, fruit, food, objects and more), with optional gender used only to choose person emoji. Up to eight dots of your own, with a key you write. Select several seats with a drag or a tap and change them together, or deal out random colours, including by gender.
- Listen. Tap a pupil to log an answer, a question or an idea. Desks shade by how much each pupil has contributed, and the balance shows how much of the talking the busiest quarter did. A Not yet called list names every pupil who has not had a turn this lesson; tap a name to log them. Each desk can show a count of logged contributions and, apart from it, a 🎲 count of the times Pick or the raffle drew that pupil. Both can be hidden. Pick points to whoever has been heard least, and Pick and the raffle both count as calling someone. The raffle picks at random, either putting names back (skipping the last few picks) or taking them out until everyone has had a turn, and it can pick a colour group too.
- Keep. Several classes, backup and restore, a CSV of the log, a phone list view, and installing to the home screen. Presenter mode shows initials only for a projector. Five colour themes, school colours, font and text size choices, and a link that shares a look with colleagues.
- Share. A Share window gives the address of the app, a QR code to scan and the usual ways to send it: the device's share menu, email, or copy the link. It shares the app, never a class.
- Recitation. Paste prepared questions and the app draws a random pupil and a question, with no pupil or question repeated until all have had a turn. The class sees only the question and the pupil. The teacher gives each answer a mark of 1 to 5 (Not yet, Beginning, Developing, Secure, Excellent), or marks later, and sees results and a spreadsheet. It is off until the teacher signs an agreement taking responsibility for the marks, which lasts six months.
- Groups. If the school has already made groups, paste two columns from a spreadsheet (name, then group), or write name, group on each line. Each group gets a colour and a name, up to eight. One button seats each group at its own table. In Listen mode, name a piece of group work and tick the pupils in each group who took part, either from the group cards or by tapping desks on the map. The desks show a tick, and each group shows how many took part. A spreadsheet (CSV) of group work has a row for each pupil in each activity.
- Print. Print or save the seating plan as a PDF on A4, A3, Letter or Tabloid (11 × 17) paper, landscape or portrait, with a preview. The page shows the plan as you see it, the Teacher marker, each colour group and who is in it, and the key to your dots. Names can be shortened to initials. It is made on the device and nothing is sent.
2 Where the idea came from
Rolly was preparing a workshop for FOLSEA 2026: Workshop 6, Sunday 11 October 2026, Jakarta, with a 15-minute live build in front of teachers. The first message of the project, at 20:10 on Sunday 4 October, listed six ideas and asked which would be the most intriguing and useful to build from scratch, given that a few parts could be built beforehand.
| # | Idea, in the first message's words | What happened |
|---|---|---|
| 1 | Text differentiator: different versions of a text by reading ability | Kept as the second idea for the workshop deck. It has not been built. |
| 2 | Webquest designer | Not taken forward. |
| 3 | Links and document manager | Not taken forward. |
| 4 | Seating arrangement designer | Combined with 5. |
| 5 | Classroom recitation log | Combined with 4. Together they became Airtime Map. |
| 6 | Student directory manager | Not taken forward. |
Source: the first user message of the project's first session, 4 October 2026 13:10 UTC (20:10 Bangkok), and the replies that followed.
The first reply named two favourites. Rolly then asked for one: "if you were to choose ONE, which ONE?" The answer was the combination of 4 and 5, for four reasons that Rolly accepted:
- It fits 15 minutes. Seating, logging, the heat map and "who haven't I heard from?" are four layers, and each shows on screen within a minute or two of describing it, so the build can stop at any point with a working app.
- Nothing outside the room can break it. It needs no AI service, no key and no wifi.
- It supports the workshop's argument that the first 80 per cent of an app arrives fast.
- Pupil photos were left out. Names and colour are enough, and photos would make it a child-data problem. If a teacher wants photos later, they belong in the browser on that teacher's device.
The idea came from a teacher. Rolly asked his friend Jerome Jaime, a teacher at Xavier School in the Philippines, for an idea for an app that would help teachers. Jerome made the original suggestion. As the app was built he tested it and sent feedback, and on the afternoon of 5 October he sent the largest set of suggestions so far (see the timeline).
Rolly's next two instructions shaped everything after: build a polished version, then prepare a second, smaller pre-build to complete live, "in case things don't turn out as they should, at least we have a full build to show"; and put it on the personal workers.dev address.
3 The timeline, from first message to now
| When | What happened |
|---|---|
| Ground zero to the first working version: Sunday 4 October | |
| 20:10 | First message: six ideas, one 15-minute slot. |
| 20:24 | Rolly asks for a single pick. Airtime Map is chosen. |
| 20:25 | "Build it": a polished version first, then a pre-build for the live session. |
| 20:28 | The address is set to airtime-map.ateneo.workers.dev on the personal Cloudflare account. |
| 21:22 | First commit: seating, listening, heat map, pick and balance, classes, offline use, About panel and anonymous counts. 92 files. 1 hour 12 minutes after the first message. |
| 21:24 | The live database is recorded, and the closed-stats message is made useful. |
| 21:38 | Rolly asks for the workshop deck's slide to show two ideas instead of three. |
| 21:55 | Rolly: "why does laptop view still look like phone view?" Fixed and committed at 21:59 with a denser layout for laptops and desktops. |
| 22:02 | Rolly asks for five colour themes, with an orange that is not fluorescent or too bright, and more font choices. Committed at 22:13. |
| 22:14 | School colour presets and shareable look links. Committed at 22:18, the fifth and last commit of the day: 2 hours 8 minutes after the first message. |
| 22:22 | Rolly asks "is this live?" and then for the owner's stats token to be set up. |
| After the first version: Monday 5 October | |
| 07:48 | A list of requests: swapping seats with visible feedback, an alignment and Free placement mode, a U shape, seat colours, a hot seat, a menu for touch screens, turning the plan to where the teacher stands, emoji, and dots with a key. |
| 08:13 and 08:26 | Rolly asks for the next steps, then for the side panel to become tabs and for the two school presets to be renamed. |
| Later that morning | Selecting several seats, random colours, a random name picker, and seat shapes. |
| 09:00 | Rolly redirects the room view: the focal point is the teacher, so the old "Board" label becomes a Teacher marker and the screen becomes the teacher's own view. |
| 09:09 | Rolly selects every seat, drags one and sees only that one move. Group moving is built next. |
| 09:58 | Rolly asks for this page. |
| 14:57 | Jerome Jaime, testing the app, asks on Viber whether it will tell him which pupils he has not yet called on to recite. It does not do that as a list yet, so Rolly takes the question seriously and asks what teachers would value. |
| 14:57 to 15:12 | Jerome and Rolly talk it through. Jerome's ideas: a count of how often each pupil has been called, the pupils not yet called in a session, prepared recitation questions with a quick rating tool for graded participation (useful for parent-teacher conferences and for feedback to pupils), and notes of who took part in group work. Behaviour tallies, such as being told to lower their voice or leaving the room without permission, come up and are set aside as too large: Jerome's own advice is to keep it simple first. Class sizes of 30 to 40 and eight groups are noted, and Rolly raises a mid-term reminder, so that parents do not hear about a problem only at the end of term. |
| 15:05 | Rolly proposes three additions: a counter of how often each pupil was called, who has not been called yet, and prepared questions for graded recitation with a simple marking tool that gives a CSV. None was built when he wrote it. |
| Later on 5 October | The first two are built: the Not yet called list, with a tap on a name to log it, and a count on each desk that can be hidden. Draws by Pick and the raffle are counted on the desk apart from logged contributions. Pick and the raffle now share one memory of who has been called. Graded recitation, group-work notes and behaviour tallies are not built. |
| Tuesday 6 October | |
| Morning | A user asks to print a finished seating plan. Print or save as PDF is built: the app asks for the paper (A4, A3, Letter or Tabloid 11 × 17, because some users are in the United States) and the orientation, shows a preview, and prints a page made for that paper. Printing happens on the device. A Share window follows the same day, with a QR code, a copy button and the device's share menu, for sending the app to colleagues. |
| Afternoon | The group planner is built for Jerome Jaime's classes of 30 to 40 pupils in about eight groups: paste the school's groups, seat each group at a table, and mark who took part within each group for a named piece of group work. Graded recitation and behaviour tallies stay paused. |
| Later | A spreadsheet of group work is added, with one row for each pupil in each activity. |
| Evening | Recitation marking is built from Jerome Jaime's idea of prepared questions with a quick rating. Rolly sets the rules: five worded levels worth 1 to 5 (Not yet, Beginning, Developing, Secure, Excellent); a screen for the class that shows only the question and the pupil; and marking that is switched off until the teacher signs an agreement taking responsibility for it, which is renewed every six months. The Privacy page, the in-app note and this page are rewritten to say so. |
| Friday 9 October | |
| Morning | Before the app is given to workshop attendees, the author adds the copyright notice, terms of use, a plain terms page, credits and the open-source licences, and a box to accept the terms on first use. Each statement in the terms is checked against what the app does. The terms, the About tab and the licence file are all made from one source, and the build stops if a credited item has no licence. A check at 320 pixels wide finds that five buttons under the plan pushed the page sideways on the narrowest phones, and they now wrap. |
| What is still to come | |
| Sunday 11 October | Workshop 6, Jakarta. The live build is rehearsed against a stopwatch beforehand. |
| After the workshop | To be added here: how the live build went, and what the audience asked for. |
Sources: the first session's record (first message 13:10 UTC, later messages as dated above) and the second session's record (messages between 00:38 and 02:58 UTC on 5 October); commit times from git log (+0700); the 14:57 to 15:12 entries from the Viber conversation between Rolly and Jerome Jaime on 5 October, with the times that Viber showed. Between 07:48 and 09:58 on 5 October, src/index.html grew from 2,450 to 4,524 lines and the automated tests from 143 to 240.
4 How it was built
Airtime Map was built by Rolly with Claude Code, Anthropic's coding assistant. Rolly chose the idea, set the rules, tested the result on real screens and redirected it. Claude Code wrote and tested the code. Jerome Jaime, a teacher at Xavier School in the Philippines, made the original suggestion and tested the app with Rolly as it developed.
The app is one file, src/index.html, written in five layers. A build script strips layers to make every level, so each level is a complete, working page and a starting point for the next. That is what makes the live session possible: the pre-build is level 1, the checkpoints are levels 2 to 4, and the deployed app is level 5.
| Level | Adds |
|---|---|
| 1 | The seating plan: drag, swap, layouts, shuffle, undo. This is the pre-build for the live session. |
| 2 | Listen mode: tap to log an answer, a question or an idea, with undo. |
| 3 | The heat map: desks shaded by how much each pupil has said. |
| 4 | "Who haven't I heard from?" and the balance of the talking. |
| 5 | Everything else: phone list view, several classes, install and offline use, anonymous counts, looks, and the features listed in section 1. |
| Measure | 4 Oct, first commit | 9 Oct, latest |
|---|---|---|
Lines in src/index.html | 2,450 | 6,279 |
| Automated tests | 143 | 358 |
| Runtime dependencies | 0 | 0 |
| App page, gzipped | not measured | 91 KB |
Sources: git show HEAD:src/index.html and the working copy (4,524 lines and 240 tests at 09:58; the later figures include this page, its tests, the larger Teacher marker, the Not yet called list, printing, sharing, groups, recitation and the terms of use); npm test; package.json (no dependencies, eight build and test tools in devDependencies); public/index.html compressed with gzip (93,526 bytes from 339,270). The tests include the real Cloudflare Worker runtime and a check that every QR code can be read.
5 What Rolly decided
- Asked for one answer when two were offered, and chose the idea that could not be broken by wifi or a service outside the room.
- Asked for a polished version and a pre-build, so a full build exists if the live one goes wrong.
- Kept the project on the personal Cloudflare account, apart from the school's. The deploy script proves which account it is about to use before it sends anything.
- Asked for five colour themes, an orange that is not fluorescent, school colours, and fonts to choose from. The tests check every theme for contrast and for "not fluorescent", in light and dark.
- Looked at the real result on real screens. The laptop layout and the group move below were Rolly's reports.
- Changed the room view's idea: the screen should be the teacher's own view, so the board marker became a Teacher marker.
- Chose the renamed school presets, Academic Blue and Gold School, instead of naming a school.
- Asked a working teacher, Jerome Jaime, what would help, and went back to him with questions when his feedback arrived. Asked what a term, a class and a group look like (three terms a year, 30 to 40 pupils, eight groups) before building anything for them.
6 What went wrong, and who found it
| What happened | Found by |
|---|---|
| The laptop view looked like the phone view. | Rolly, on the live page. Fixed four minutes later. |
| Dragging one of several selected seats moved only that seat. Moving a group had been listed as not built yet. The first version of the fix also dropped the selection when the pointer was released. | Rolly found the first. The tests found the second. |
| Layer markers in the wrong place (inside the same layer, or missing) let code for the finished app leak into the smaller levels, more than once. The build script now stops with an error when markers are nested. | The test suite. |
| The emoji picker forgot which seat it was for before it applied the choice. | The test suite. |
| Undo did not bring back a change of seat shape for the whole class. | The test suite. |
| The swap arrows were hidden under the dragged desk. Circular seats still showed the straight colour band. Dots overlapped names on small seats. | Looking at the page in a browser during the build. |
| On the narrowest phones (320 pixels wide) the five buttons under the plan did not fit, so the whole page scrolled sideways and a dialog was cut off at the edge. | Checking the new terms box at 320 pixels, on 9 October. |
| On a short, wide screen the tool tabs shrank to nothing and the tools column had no visible way to close, so the person who had opened About felt trapped in it. The tabs now keep their height, and a Tools heading with a close button stays in view. | Rolly, from a screenshot, on 6 October. |
| The "Board" label assumed a board. A room can have boards anywhere, and the app is about where the teacher stands. | Rolly, as a design correction. |
| A teacher asked whether the app could say which pupils have not been called on yet. The desks, the "heard" count, Pick and the list view sorted by least heard each answer part of it, but nothing lists the names in one place, and the teacher and the builder both missed that the pieces were there. | Jerome Jaime, a teacher testing the app. The Not yet called list was built the same afternoon. |
Sources: the two session records, the commit history and the test files. This list covers the work between 4 and 5 October 2026, and is not a complete defect log.
Most of the defects sit where two features meet: selection and dragging, undo and a new setting, the layers and the build script. Each of those pieces worked on its own. That is why the test suite grew from 143 to 240 tests in one morning.
7 What it runs on, and what it costs
- Static files. The app is plain HTML, CSS and JavaScript on Cloudflare's network. Static files never wake a server.
- One small Worker. It does two things: it counts anonymous usage events and it shows those counts to the owner. It stores no names, classes or logs.
- Free plan. The site currently runs on Cloudflare's free plan, which has a daily ceiling on Worker requests. The counter accepts at most 20,000 events a day and keeps counts for 400 days. If the ceiling is reached the counting stops and the app carries on.
- No outside requests. Fonts are bundled (Fraunces and Lato, under the SIL Open Font License). The Content-Security-Policy lets the page talk only to its own address, so a third-party request is refused by the browser.
Sources: wrangler.jsonc, worker/index.mjs, docs/DEPLOYMENT.md, docs/PRIVACY.md and the generated public/_headers.
8 Privacy, in short
The short answer: your pupils' names and class data stay on your device. They are never uploaded. Read the full Privacy page for numbered answers, exactly what is saved and sent, and how to check it yourself.
On the device. Class names, pupil names, seats, emoji, dots and every logged contribution are saved in the browser's own storage on that device. They are never sent to a server. Clearing the browser's data erases them, and a JSON backup is the way to move them. On a shared computer, use Erase before leaving.
What the site counts. To learn whether the tool is used, the site adds 1 to a tally for these events only: a visit, a first open on a device, a device adding pupils for the first time, a contribution logged, Pick or Raffle used, the demo class loaded, a backup or CSV downloaded, installing to the home screen, and finishing the offline download. Each tally also carries a device type, how the person arrived (a link or one of the QR codes), whether it was opened from the home screen, a two-letter country from Cloudflare, and the date. That is all it stores.
What it never stores. Names, class data, logs, free text, IP addresses, browser or device identifiers, and cookies. People who have Do Not Track or Global Privacy Control switched on, or who turn counting off in the app, are not counted.
Source: docs/PRIVACY.md, which also lists what protects the counter from abuse. The tests exercise each protection.
9 What it does not do yet
- Saved seating plans that you can switch between, such as one for group work and one for an exam.
- An absent toggle that takes a pupil out of the raffle and the balance.
- Airtime over a whole term, with each pupil's history.
- Keep-apart and keep-together rules for seating, and a timer for the hot seat.
- Moving data between devices without a server, other than a backup file.
- A Thai interface. The app shows Thai names, and uses the device's own font for them.
- The text differentiator. It was an idea for the workshop deck and has not been built.
Suggested by Jerome Jaime on 5 October, not built yet (the list of pupils not yet called, a count on each desk, notes on who took part in group work, and prepared recitation questions with marks and a spreadsheet are built):
- Running tallies of behaviour, such as noise or leaving the room, reported by term. These raise questions about what a school allows a teacher to record, and are not planned yet.
Source: docs/BUILD-NOTES.md, which lists these with the reason each matters.
10 Credits and terms
Built by Rolly with Claude Code for a FOLSEA 2026 workshop. The terms of use, the copyright notice, the full list of credits and the open-source licences are in the Terms & credits tab.
Jerome Jaime, teacher, Xavier School, Philippines. He made the original suggestion for the app, tested it with Rolly as it was built, and on 5 October sent the main suggestions for what should come next: who has not been called yet, how often each pupil has been called, graded recitation with prepared questions, and notes for group work. The first two are in the app. Thank you, Jerome.
Headings use Fraunces and text uses Lato, both under the SIL Open Font License. Emoji come from your own device. The tool is provided as it is, without warranty, and does not replace your school's official records.
1 The problem it answers
While you teach, you are also deciding whom to ask next, and it is hard to remember who has already spoken.
A tally for each pupil is quick to take and quick to read, if it sits where the pupils sit. Airtime Map puts the tally on the seating plan. A glance shows which part of the room has had the talking and which part has had none. The demo class that comes with the app uses invented names and a lesson in which a few pupils did most of the talking, so you can see what an uneven lesson looks like.
2 What the research suggests
Three pieces of classroom research shaped what the app does. The summaries below come from secondary sources found on 5 October 2026. The original publications have not been read in full for this page, so check them before quoting them.
Some seats get more of the talking
Adams and Biddle (1970) recorded lessons on video and found that, in classrooms with desks in rows and columns, most pupil responses came from the front and centre seats, in a reversed T-shaped area they called the "action zone". That is the reason to show the talking on a plan of the room, seat by seat.
Teachers usually wait about a second
Rowe (1986) summarised nearly twenty years of recorded lessons. Teachers typically waited a second or less after asking a question. When the wait grew to about three seconds, her recordings showed longer answers, more reasoned answers, and more replies from pupils who had spoken least. The app does not enforce a wait. The teacher decides how long to pause before pressing Raffle.
Choosing at random keeps everyone ready to answer
Dylan Wiliam's work on classroom formative assessment describes drawing a pupil's name at random, for example from a pot of lolly sticks, so that every pupil expects to be asked and the teacher hears from more than the volunteers. The raffle does the same, with the sticks on a screen. It can put names back and skip the last few picks, or take names out until everyone has had a turn, and the teacher chooses.
- Adams, R. S. and Biddle, B. J. (1970). Realities of Teaching: Explorations with Video Tape. Holt, Rinehart and Winston.
- Rowe, M. B. (1986). Wait time: slowing down may be a way of speeding up! Journal of Teacher Education, 37(1), 43 to 50.
- Wiliam, D. (2011). Embedded Formative Assessment. Solution Tree.
3 Why the data stays on the device
Pupil names and notes are personal data about children. The simplest safe design is for the tool to hold none of it. Each class lives in the browser of the teacher who typed it, so one teacher's data is invisible to every other person, and there is no list of pupils on a server to protect, lose or be asked for. The cost is real. Clearing the browser's data erases the class, and a class does not follow the teacher to another device unless they use a backup file. The app says so, and offers a backup and an Erase button.
4 The rules everything is built around
- Personal account only. The project lives on Rolly's personal Cloudflare account, apart from the school's. The deploy script checks which account its credential reaches and stops if it is the wrong one.
- Pupil data never leaves the device. No accounts, no sync, no uploads. The only things the server does are count anonymous events and show them to the owner.
- Counters stay anonymous. A fixed list of events, with no free text, no addresses and no identifiers. A new event has to be added to the server's list, the tests, the privacy table and the stats page together.
- No third-party requests. Fonts are bundled, and the Content-Security-Policy is generated by the build and is not loosened without asking.
- No secrets in the repository. The stats token lives outside it and as a Worker secret, and a test checks that the configuration holds none.
- Ask first before adding a dependency, a new network request, a change to the policy, or anything that touches other Cloudflare resources.
Source: CLAUDE.md in the repository, which the assistant reads at the start of every session.
5 Why free, with no accounts, and working offline
Classroom wifi and a conference room's wifi can both fail at bad moments. The app is saved on the device when it first loads, so it opens with no signal, from the home screen, even after a restart. It has no sign-in because there is nothing for a sign-in to protect: the data is already on the device. It is free so that any teacher can try it in a lesson without asking anyone.
6 Why it was built live, in layers
The workshop's argument is that the first 80 per cent of an app arrives fast. Airtime Map shows this in layers: a seating plan, then logging, then the heat map, then the pick button. Each layer takes a sentence to describe and a minute or two to appear. The list of corrections in The What and the Build, section 6, shows where people and tests caught problems along the way.
7 What a teacher in the field asked for
Jerome Jaime teaches classes of 30 to 40 pupils at Xavier School in the Philippines, with eight groups in a class and three terms a year. When he tried the app, his first question was a teacher's question: will it tell me who I have not called on yet? His reasons were practical. Parent-teacher conferences need something to say about each pupil's participation, pupils need feedback, and group work is easier to follow when the teacher can note who took part. He also wanted to keep it simple: running tallies for his own class, and nothing complicated for a 30-minute presentation.
The pattern in his requests is that the seating plan is the right place to keep such a record, because the teacher already sees the room that way. The requests also show where the app's limits are. A count of who has spoken tells a teacher where to look next. A graded record, or a tally of misbehaviour, is a different kind of record about a child. It belongs under the school's own rules, and The Why, section 8, says what Airtime Map does not claim to be.
Source: the Viber conversation between Rolly and Jerome Jaime on 5 October 2026, from 14:57. Jerome's description of his classes is his own.
8 What it deliberately does not claim
- It does not claim to improve learning. No study of Airtime Map itself has been done.
- It records what a teacher taps. If a pupil's contribution is missed or logged twice, the map shows that. It counts contributions, and a count says nothing about how good a contribution was.
- The contribution log and group work are notes for guiding teaching. Recitation marks can work like an assessment record, so they are switched off until the teacher signs an agreement taking responsibility for them, renewed every six months. A school's own policy decides what may be recorded about pupils, and the app cannot check it.
- It does not use pupil photos, accounts or any AI service.
- The usage counts say whether the tool is used, on what kind of device and from roughly where. They cannot tell one person from another.
- The research above explains why the features exist. It is not evidence that the features work.
The app's About panel gives short advice for using it safely: use first names or nicknames, show initials only when projecting, and check your school's rules on recording information about pupils.
9 This page is part of the work
This page was written on 5 October 2026, in the same session as the last features, from the repository and the build record. The facts in the timeline, the figures and the defect list were checked against git, the test run and the session records. The research summaries come from secondary sources and are marked as such. Anything still to come is marked as to come.
Found something wrong? Every claim on this page has a source in the repository or the build record. If one does not match, the page should change.
© 2026 Rolly Alfonso-Maiquez. All rights reserved. Updated 09-October-2026. The same text is at /terms as a plain page, and the full licence texts are at /open-source-licenses.txt.
Please read this page before you use Airtime Map. It says who made it, what you may do with it, and what the author is and is not responsible for. By ticking the box on first use, or by continuing to use Airtime Map, you confirm that you have read it and accept it. If you do not accept it, please do not use Airtime Map.
1 About Airtime Map
Airtime Map is a free web app for teachers. It shows a classroom seating plan and lets you note who has spoken. “Airtime” here means talking time in a lesson. You can also draw pupils at random, keep notes on group work and, after signing a separate agreement inside the app, record recitation marks. It works offline once it has loaded. It was made by Rolly Alfonso-Maiquez as a personal project, in the author's own time, with the assistance of AI tools, and is shared with the public, including people who attend the author's conference session, on the terms on this page.
Airtime Map is a personal project. It is not a product or service of, and is not endorsed by, any school, employer or other organisation.
2 Copyright
© 2026 Rolly Alfonso-Maiquez. All rights reserved. The Airtime Map name, design, text and code are protected by copyright.
You may use the app for your own teaching and other personal, non-commercial purposes. You may not copy, sell, rent, redistribute, rebrand or host your own copy of Airtime Map, or use it to build another product or service, without the author's written permission.
What you add to the app (class lists, plans, notes and marks) stays yours. The author claims no rights over it. Airtime Map also contains open-source fonts that are licensed separately (see Credits and open-source software below); nothing on this page limits your rights under those licences.
3 As is, and at your own risk
Airtime Map is released free of charge, on an “as is” and “as available” basis, without any promise or warranty of any kind, whether stated or implied. That includes, without limit, promises about accuracy, reliability, security, fitness for a particular purpose, working without interruption or error, and working on your device or browser. You use it at your own risk.
4 Your data and your device
- Airtime Map keeps what you add on your own device, in the browser's storage. That includes pupil names, seating plans, colours, emoji, dots, the contributions you tap, group work, your settings and, if you have signed the marking agreement, recitation marks. It writes to your device when you add, change or delete something, and when you change a setting (the app saves a moment after a change). You decide what to add.
- The app does not send pupil names, class lists, notes, logs or marks to a server, to the author or to anyone else. The only thing it sends is an anonymous count (see Counting visits below). There are no accounts, no sign-in and no AI features.
- Every calculation, the random draws, printing and exports happen on your device, in the browser that runs the app.
- Data can be lost. Phones and browsers can clear stored data (low storage, clearing site data, uninstalling, resetting, long periods without use, faults, and more). The author is not responsible for any loss, damage, corruption or exposure of data on your devices, however it happens.
- Keep your own copies of anything important. Back up your classes from the Data tab and keep the file safe. Do not rely on Airtime Map as your only record of attendance, participation or marks.
- A backup file, a spreadsheet (CSV), and a printed or saved PDF all contain names and are not encrypted. You are responsible for keeping those files, and your device, safe. Lock your device, and erase pupils' data you no longer need.
- On a shared or school computer, use Erase everything on this device before you leave.
5 Information in the app may be wrong
Counts, shading, the balance figure, Pick, the raffle, the Not yet called list, group work ticks and recitation marks show only what was tapped or typed. Missed or double taps, absences, undo and shared devices can make them wrong. A count says nothing about how good a contribution was, and a random draw is random, not a guarantee of fairness. Recitation marks are your own judgement. Airtime Map gives no professional, educational, assessment, safeguarding, legal or data-protection advice, and the author is not an adviser to you.
The research summaries on the About page come from secondary sources and are not evidence that the app works. Check anything you rely on.
You alone are responsible for any decision you make about a pupil, a class or a mark, and for the way you share or explain it.
6 Other people's services
Airtime Map is hosted on Cloudflare, which delivers the app's files and runs the small counter described under Counting visits below. Like any website host, Cloudflare can see technical details such as a device's IP address when a page is loaded. The app does not read or store them, and Cloudflare's own terms and privacy policy apply to what it does. The Share, Print and Email features use your own device's share menu, browser print window and mail app, and their terms apply. Airtime Map loads nothing from any other website. These services can change, fail or stop, and features that depend on them may stop working. The author is not affiliated with, or endorsed by, any of them.
7 Availability and changes
Airtime Map may change, be limited or be withdrawn at any time, with or without notice. There is no promise of support, updates, uptime or help moving your data. Because the app works offline, an older version may stay on your device until it is updated.
8 Using it properly
- Use Airtime Map lawfully and sensibly.
- Pupil information. If you enter pupils' names or notes about them, you are responsible for deciding whether you may, for following your school's policies and the data-protection and other laws that apply where you are, and for getting any permission needed. Airtime Map cannot check your school's rules. Use first names or initials, and keep dot labels neutral.
- Recitation marks. Marks switch on only after you sign the agreement shown in the app, which lasts six months. By signing it you take responsibility for the marks. That agreement is separate from these terms and does not replace them.
- Do not try to break, overload, probe or disrupt the app or the services that host it, or to get around the marking agreement. Do not reverse engineer it, except where the law allows.
- Airtime Map is meant for adults who teach. Pupils should use it only under a teacher's supervision. Do not use it where a failure could put anyone in danger.
- Using Airtime Map in ways it was not designed for, with modified copies, browser extensions, unsupported or modified browsers or devices, or against these terms, is at your own risk. The author is not responsible for any problem that results.
9 Pupils and schools
Airtime Map does not receive information about children. What you type stays on your device. The author does not collect pupils' names, classes, notes or marks, and the anonymous count holds none of them. Whether you may record information about a pupil on a device is a decision for you, your school and the law that applies to you, and may need a school's or a parent's consent. The author is not responsible for how pupil information is entered, kept, shared or used.
If you are under 18, use Airtime Map only with a teacher or another responsible adult.
10 Limits of responsibility
To the fullest extent the law allows, the author is not liable for any loss or damage of any kind that arises from using Airtime Map or from not being able to use it. That includes loss or corruption of class lists, logs, group work or marks; wrong, missing or disputed records; decisions about pupils made using the app; disclosure of pupil information from your device, a backup, a spreadsheet or a printout; breaches of a school's policy or of data-protection law by a user; problems with your device or accounts; security incidents the author cannot control; and any indirect, incidental, special or consequential loss, whether it is said to arise from contract, negligence or anything else. Because Airtime Map is free, any liability that cannot be excluded is limited to the lowest amount the law permits.
Events outside the author's control are not the author's responsibility. These include internet or power failures, changes to browsers or operating systems, outages or changes at Cloudflare or in your device's services, and attacks by others.
Nothing on this page excludes or limits any liability that cannot lawfully be excluded or limited (for example liability for fraud, or for death or personal injury caused by negligence), or any rights you have as a consumer under the law that applies to you. If any part of this page is found to be unenforceable, the rest still applies.
11 Counting visits
To learn whether the app is used, it sends a tiny anonymous count when it opens and when some features are used (for example a visit, a backup or spreadsheet downloaded, or Pick or the raffle used). Each count carries only a device type (phone, tablet or computer), how you arrived (a link or a QR code), whether it was opened from the home screen, a two-letter country from Cloudflare, and the date. It holds no names, no class data, no stored IP address and no identifier. There are no cookies, no advertising and no tracking. Counting is skipped if your browser sends Do Not Track or Global Privacy Control, and you can switch it off in the About panel of the app.
12 Privacy
What Airtime Map does and does not do with information is explained in the privacy notice.
13 Credits and open-source software
Airtime Map was designed and built by Rolly Alfonso-Maiquez, with the assistance of AI tools. It includes the work of others, used under the licences below. Thank you to everyone who made it. The full licence texts are in open-source-licenses.txt.
Made by
- Rolly Alfonso-Maiquez. Designed and built the app, with the assistance of AI tools.
With thanks to
- Jerome Jaime. A teacher at Xavier School in the Philippines. He made the original suggestion for the app, tested it as it was built, and suggested the Not yet called list, the group planner and recitation marking.
Data and content
- Colour-blind-friendly colour palette (A published palette; no licence terms are stated), by Masataka Okabe and Kei Ito. The eight group colours. jfly.uni-koeln.de/color/
Software and fonts in the app
- Fraunces (SIL Open Font License 1.1), by The Fraunces Project Authors. Headings (bundled, Latin letters only). github.com/undercasetype/Fraunces
- Lato (SIL Open Font License 1.1), by Łukasz Dziedzic. Text (bundled, Latin letters only).
Images and icons
- App icon, launch screens and the QR code picture (All rights reserved, as above). Made for this app by the author. Drawn in code for this app; the QR pattern is produced with the qrcode software listed under tools.
Tools used to build and test (not part of the app on your device)
- @zxing/library 0.21.3 (MIT). Copyright (c) 2005 Sun Microsystems, Inc.. zxing-js.github.io/library/
- fontkit 2.0.4 (MIT), by Devon Govett. github.com/foliojs/fontkit
- jsdom 30.1.2 (MIT). Copyright (c) 2010 Elijah Insua. github.com/jsdom/jsdom
- jsqr 1.4.0 (Apache-2.0), by Cosmo Wolfe and Jefff Nelson. github.com/cozmo/jsQR
- qrcode 1.5.4 (MIT), by Ryan Day. github.com/soldair/node-qrcode
- sharp 0.35.5 (Apache-2.0), by Lovell Fuller. sharp.pixelplumbing.com
- wawoff2 2.0.1 (MIT). Copyright (c) 2013-2017 by the WOFF2 Authors.. github.com/fontello/wawoff2
- wrangler 4.147.0 (MIT OR Apache-2.0). github.com/cloudflare/workers-sdk#readme
Emoji are drawn by your own device's emoji font. They are not part of Airtime Map and belong to the maker of your device.
Names and trademarks belong to their owners. Airtime Map is not affiliated with or endorsed by them.
14 Trademarks
Names, logos and trademarks, including Apple, iPhone, iPad, Safari, Cloudflare and Viber, belong to their owners. The names of schools that appear on the About page belong to those schools. Airtime Map is not affiliated with, or endorsed by, any of them.
15 Changes, problems and contact
If this page changes, the date at the top changes, and continuing to use Airtime Map means you accept the new version. To report a mistake, a problem or a security issue, write to webstuff@maiquez.com. If you find a security problem, please give the author a reasonable time to fix it before you share it publicly.