A privacy-first assignment editor for authentic student work.
Academic Integrity
- Automatic revision history tracking
- Replay the full drafting process
- Track copy-and-paste activity
- Meaningful engagement reports (Beta) and typing analysis help distinguish authentic writing patterns
Privacy
- Your work stays private and under your control
- No accounts, logins, or installation
- Data is stored and encrypted locally on your computer
- Your work is never used to train AI models
About
PISA Editor is a free, web-based assignment editor designed for educational purposes. It requires no installation or user accounts, keeps all your work private, and includes features such as automatic revision history with play-back, keyboard entropy scoring, and copy-and-paste tracking to support authentic student writing and academic integrity.
How it works
Students complete their assignment normally in PISA Editor. As they work, PISA Editor records revision history, copy-and-paste activity, and writing patterns directly in their browser.
When an assignment is saved, this data is downloaded to the student's computer in one of two ways:
- .pisa file - an encrypted file which contains the full revision history, or
- PDF with embedded link (essay editor only) - includes a link to view the assignment history
Students submit either the .pisa file or the generated PDF.
Instructors can then:
- View the .pisa file on this website by clicking the 'Open' button, or
- Open the link embedded in the PDF
to review the full writing process.
Meaningful Engagement Reports (Beta)
Meaningful engagement with a document refers to active, iterative writing behavior such as revising, reordering, and refining ideas, rather than simply typing text from start to finish.
This is estimated using statistical patterns in drafting behavior, including the variety of edit types and movement patterns throughout the document. These factors are combined into an overall engagement score.
This feature is in beta and the exact formulas and weighting of these factors may be refined over time.
FAQ
Does PISA Editor use AI?
No. PISA Editor does not use AI. Your work is never sent to or used to train AI models. Scores are based on statistical analysis of your drafting behavior.
Can my instructor see my work before I submit it?
No. Your work is stored only on your computer and it is never sent to your instructor - or anyone else - until you choose to submit it. PISA Editor has no accounts or servers that store your assignments, so there is nothing to share. When you submit your file, your instructor can see your writing activity for that file alongside your final work.
How do I save my revision history?
A revision is automatically recorded once per minute as you write your work. The revisions will be stored within the .pisa file which is downloaded when you click the 'Save' button. To view revisions, upload a .pisa file that was previously saved from this website using the 'Open' button. Then, if you click the 'History' button, the revision history will appear in the output panel below the editor.
What is keyboard entropy?
Keyboard entropy measures how varied and unpredictable your typing pattern is. It is based on the timing between your keystrokes and can help distinguish between natural typing and pasted or automated text.
How can I view the copy-and-paste history and keyboard entropy for a file?
For a file that has been uploaded to this site, this information is included in the report generated when you click the 'Report' button.
Can I resize the editor and output panels?
Yes. Click and drag the handle between the editor and output panels to resize them.
I downloaded a .pisa file by clicking the 'Save' button. Why can't I open the file? Or, why does the file look like gobbledygook?
The .pisa file format can only be read by this website. To view its contents, return to this page and click the 'Open' button.
I am trying to open a file, but I do not see it in my computer's directory when I click the 'Open' button. Why can't I find my file?
Files saved from this website are downloaded to your computer’s Downloads folder (or your device’s default download location). When you click the 'Open' button, you may need to navigate to that folder to find your file. Only files with the .pisa extension can be opened.
Essay Editor
Should I save as a .pisa file or export as a PDF?
Follow any guidelines your instructor has given you. If they haven't specified, export a PDF. Instructors unfamiliar with PISA Editor may not know how to open a .pisa file. Note that PDF export is unavailable for very large files, in which case saving a .pisa file is the only option.
Python Editor
Can I start with a blank editor?
Yes, add '#blank' to the URL (e.g. /python#blank) to open the editor without the example code.
When I click through the revision history of a file, why are some revisions green?
Revisions that correspond to a code run are highlighted in green.
Which Python runtime is used?
The editor runs Pyodide by default. When the turtle canvas is displayed, the editor switches to Skulpt to support Turtle Graphics. Note that some packages may not be supported by Skulpt. Unlike Pyodide, Skulpt requires a time limit to prevent an infinite loop from crashing the browser.
Can I import NumPy?
Yes, but only when Pyodide is enabled. If you are an instructor looking to allow your students to import a specific Pyodide-compatible package, email me at contact@pisaeditor.com.
Privacy
This website is built to minimize data collection and protect student privacy with features like client-side encryption. No educational records or student data are stored, shared, or retained by the service. No user accounts are required, and no names, email addresses, or personal identifiers are collected.
Assignment content, revision history, keystroke timing data, and copy-and-paste activity are stored locally in the user’s browser while they work and are not stored on any server. Meaningful engagement reports are computed in the user's browser and are never stored.
When an assignment is saved, the assignment content is encrypted in the browser before being sent to the server for processing. The server cannot read the assignment content. Keystroke timing data is sent to a serverless function to compute the keyboard entropy score and is not permanently stored.
All assignment data is downloaded to the user’s computer in encrypted form, and the user retains full control over their files.
This site does not use cookies or third-party tracking. Anonymous usage data is collected using private infrastructure solely to help improve the site.
For Educators
Dear fellow educators,
I built PISA Editor to support academic integrity and student understanding in programming assignments. I later adapted the site for writing essays.
To track my students' revision history on their programming assignments, I require that all work and drafts for a given assignment be completed using the same file on this website.
In my programming classes, a significant portion of the grade for each assignment is based on the following criterion:
"Code history demonstrates meaningful engagement with the problem, such as through iterative problem solving, debugging attempts, and logical revisions."
Please note that you can view additional information regarding an uploaded file such as the copy-and-paste history, keyboard entropy score, and meaningful engagement report (Beta) by clicking the 'Report' button.
Note for instructors assigning Python work: Some strong students may complete assignments quickly resulting in a shorter or less varied revision history. To ensure that these students are not disadvantaged, I provide an optional challenge version of each assignment that allows them to further demonstrate their engagement if needed.
You are welcome to use this website in your classes. If you have any questions, suggestions, or would like to report a bug, please reach out to me at contact@pisaeditor.com.
I hope this website is as useful to you as it has been for me.
Updates
2026-05-05: Added demo.
2026-05-02: Added meaningful engagement reports. (Beta)
2026-04-16: Added Vim keybindings option.
2026-04-15: Added asynchronous Pyodide execution and inline input support.
2026-04-15: Replaced Google Analytics with privacy-friendly anonymous usage tracking.
2026-04-05: Added high contrast theme for accessibility.
2026-04-03: Added draggable handle to resize editor and output panels simultaneously.
2026-03-30: Added landing page. Moved Python editor to /python.
2026-03-24: Added PDF export to essay editor.
2026-03-09: Added client-side encryption.
2026-03-07: Added detection for all text insertion, not just pastes. Added tags to revisions.
2026-03-02: Added Pyodide option for Python execution.
2026-03-01: Visual update.
2026-02-22: Added light/dark mode selector.
2026-01-21: Added mobile landing pages.
2025-10-31: Added history playback buttons.
2025-10-22: Added essay editor.
2025-06-26: Initial public deploy.
2025-06-12: Added turtle graphics.
2025-04-13: Added keyboard entropy analysis.
2025-03-20: Visual update, added tower logo.
2025-03-17: Visual update, added syntax highlighting.
2025-03-01: Initial deploy.
Acknowledgements
Pyodide: A Python distribution for the browser and Node.js based on WebAssembly/Emscripten
Skulpt: An entirely in-browser implementation of Python
CodeMirror: A code editor component for the web
Quill: Your powerful rich text editor
Gruvbox: A retro groove color scheme for Vim
Tower of Pisa image edited from a png provided by Vecteezy.