Frame-by-frame animation with onion skins in Paint by Zaweba
Draw hand-made animation in Paint by Zaweba with animated layers, cels and red and green onion skins, then play it as a loop, ping-pong or once.

Hand-drawn animation is the oldest kind: draw a picture, draw the next one slightly different, and play them quickly. Paint by Zaweba supports it directly through Layer > Animation, with animated layers made of cels, and onion skins so you can see neighbouring drawings while you work on the current one.
Because it uses the same brush engine as the rest of the app, your favourite pencils, inks and paints all work for animation too.
Animated layers and cels
Layer > Animation > New Animated Layer creates a layer that holds a drawing for each frame. Each drawing is a cel, a word borrowed from the transparent sheets traditional animators painted on.
From there, a few commands do most of the work. Blank cel adds an empty drawing for the next frame. Duplicate cel copies the current drawing, which is handy when only part of a character moves and you want to redraw just that part. Hold previous cel keeps the last drawing on screen for another frame, the way animators hold a pose rather than redrawing it.
Animated layers can sit alongside ordinary layers, so a static background can stay put while a character moves over it.
Onion skins
Onion skins show earlier frames in red and later frames in green, faintly behind the current drawing. That lets you see where a line was and where it is going, so the motion between drawings is smooth and the shapes stay consistent.
The falloff is adjustable. More falloff shows only the nearest frames clearly; less shows a longer trail. For fast movement, a short trail keeps the view uncluttered; for slow, careful motion, seeing more frames helps you keep spacing even.
Playback
Frame Rate and Playback sets the speed and how the animation repeats: loop, ping-pong (forwards then backwards) or play once. Ping-pong is a neat trick for breathing, swaying or blinking cycles, since you only draw half the motion.
Make Frames from Layers turns a stack of ordinary layers into frames. If you have already drawn each pose on its own layer, this converts them into an animation in one step.
Tips from traditional animation
Draw key poses first, the extremes of a movement, then fill in the drawings between them. Onion skins make the in-betweens much easier because you can see both keys at once.
Animate on twos. Holding each drawing for two frames, with hold previous cel, halves the drawing work and still looks smooth for most character motion.
Keep lines simple. Complex textures flicker when redrawn on every frame. Simple shapes with clean lines read better in motion.
Flip often. Play the animation every few drawings so problems show early, rather than after fifty frames.
Exporting and sharing
When the animation is done, export it from the Timeline as an animated GIF, WebP, PNG sequence, or MP4 or WebM if the suite's FFmpeg is installed. A short looping character animation makes a great GIF; a longer piece with sound is better as video. Paint by Zaweba can also record a time-lapse while you draw, which makes a nice companion clip to the finished animation.