Learn to program by writing code that runs

Snipcode is built for practice and for teaching, not for shipping products. Every exercise carries its own tests, so you find out where you stand the moment you press run.

Practising on your own

Work at your own pace, with feedback on every attempt instead of a mark two weeks later.

Read the brief and write the answer on one screen

Your teacher writes the instructions, the starter file and the tests once. You get all of it in a single view, the brief on one side and your code on the other, so there is never any doubt about what finished looks like.

Checkout Calculator · assigned

Instructions

Read the customer age and ticket count. Apply a 25% discount for customers under 13.

def total(age):

# TODO: apply discount

Tests 4/4 passed

Nothing to set up before your first line

No compiler to install, no environment to repair, no locked down school laptop to argue with. Press run and your code goes to its own container on our servers, with the output back in front of you inside a second.

Terminal

$ run main.py

Connecting to sandbox…

Enter ticket count: 3

Total: $24.00

Exited with code 0 in 214ms

Catch the typo before you waste a run

Snipcode reads your syntax as you type and underlines the line that is about to break. You fix it where you are standing instead of decoding a stack trace after the fact.

main.py

1 def total(items):

2 if items

Expected ':' at Ln 2, Col 12

Sit next to somebody who is not next to you

Start a Cowork session and the other person opens the same file beside you. Their cursor moves while you watch, their changes arrive as they type them, and yours do the same. Invite them with a link, a code you read out, or a square they point a phone camera at. Running is still yours alone — the code is shared, the terminal is not.

Cowork · 2 people
1def hipotenuza(a, b):
2    return (a**2 + b**2)Anna ** 0.5
3print(hipotenuza(3, 4))You

Room to practise beyond the set work

The best way to learn a thing is to poke at it. Open an empty Python or Java workspace, try an idea, break it, fix it. Nothing here is marked and everything saves while you type.

My Project

src

main.py

utils.py

tests

Main.java

import utils

utils.run()

Teaching a class without the admin

Write the task once and let the tests do the marking. One table shows the whole class.

See who finished and who is stuck, in one table

Every submission runs against your tests the moment it arrives. One table tells you who has opened the work, who has handed it in and who passed, and you never run a file yourself.

Checkout Calculator · roster
Maya ChenPassed
Sam OrtizSubmitted
Priya NairIn progress

Send the handouts along with the tasks

Attach slides, a worksheet or a link to any folder. When a student joins via your invite link, the material is there with the tasks.

Intro to Python · materials
  • Lesson 3 slides.pdf1.2 MB
  • Worksheet.txt4 KB
  • Python docs: listsLink

Travels with the course when a student joins.

And the rest of it

The parts that stop mattering as features and start mattering as habits.

Check it before you hand it in

The tests your teacher wrote are yours to run as often as you like. You see which passed and which did not, and what the failing one expected, before anybody else sees anything.

Deadlines that say what they mean

An assignment shows when it is due and how close that is. Some close at the deadline and some stay open and mark themselves late — either way you are told which, not left guessing.

Join by a link

A teacher can hand out one link for a single assignment or a whole folder. Follow it, and the work is in your list.

Nothing to save, nothing to lose

Every keystroke is written as you make it. Close the tab mid-line and it is there when you come back, on whatever device you sign in from.

Readable on a phone

Writing code on a phone is miserable, so Snipcode does not pretend otherwise. Reading is another matter: the brief, your file, the test results and your score are all there.

A version that works with the network off

The desktop app keeps your assignments and your work on the computer, runs them with the Python or Java already installed there, and hands them in once you are back online.

Before you put a class on it

What does it cost?
Nothing. There is no plan to pick, no card to enter and no billing code in the product at all — that is a description of how it works today rather than a promise about 2030.
Where does our data actually sit?
In the EU. The application runs on a server in Frankfurt and the database is in Stockholm. Nothing is copied to a third country to make a feature work.
Does every student need their own email address?
Yes, and this is the honest sticking point for primary schools. An account is an email address and a password; there is no class code that creates thirty pupils without one. If your year group does not have school addresses, that has to be solved before anything else.
Can students find the answer in the page?
No. The reference solution is never sent to the browser — not hidden with CSS, not tucked in a script tag, simply not in the response. Tests can be marked hidden too, so a student sees that one failed without being handed the case that catches them out.
What stops a runaway loop taking the site down?
Each run gets its own container with 128 MB of memory and 60 seconds on the clock, and the container is destroyed either way. A student who writes `while True` gets their program stopped and everybody else notices nothing.
The wifi drops mid-lesson. Then what?
In the browser, work stops — there is no pretending otherwise, because the code runs on our servers rather than the laptop. That is what the desktop version is for: it keeps the assignments and the work on the machine, runs them with the Python or Java already installed there, and sends the finished work once the connection returns.
Which languages?
Python and Java.
Do I need a teacher to use it?
No. A workspace is yours to practise in whenever you like, with nothing to hand in and nobody marking it.
A student leaves the school. What happens to their work?
It stays where it is until somebody removes the account. Nothing expires on its own and nothing is deleted automatically, which is deliberate — work disappearing quietly at the end of a school year is worse than work that outstays its welcome.
Will it run on the laptops we actually have?
If the machine opens a modern browser, it works, including the Chromebooks most schools hand out. Nothing is compiled locally, so an old processor costs you nothing.

Ready to write some code?

Create a free account