Skip to content

Stepstool seat

projects.stepstool_seat

The seat of a stepstool: boards edge to edge, two battens underneath across the grain, in wide, shallow sliding dovetail housings.

The battens lie flat, batten_inset in from the ends, and keep the seat flat and its boards together, even without glue; not glued, they let it shrink and swell across its grain. Each batten's whole width goes into a housing a third of the seat deep, its edges bevelled by 1:slope, and runs across all the boards, housed in each of them. The housings run through, out of the front and the back edges, where the battens' ends are flush with the seat's. The battens are wide enough for the legs' through tenons (see stepstool), which cross their grain.

Stepstool seat, assembled

Stepstool seat, exploded

Parameters

Parameter Default
length 400
depth 280
boards 2
batten_width 90
batten_inset 30
slope 4
stock 20 mm board, oak

Change them in a design file (see Change an example):

from woodwright.examples import projects

design = projects.stepstool_seat(length=500)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Batten

batten

Seat

seat

Cut list

seat    400 x 140 x 20 mm  oak, 2 pieces: seat_1, seat_2
        - 2 x dovetail socket 86.75 mm at the face, 6.5 deep, 1:4, in bottom_face
batten  280 x 90 x 26.5 mm  oak, 2 pieces: batten_left, batten_right
        - dovetail tongue 86.75 mm wide at the shoulder, 6.5 deep, 1:4, on top_face

Code

From woodwright/examples/projects.py, which imports the names it uses (see From an example to your own design):

def stepstool_seat(
    length: float = 400,
    depth: float = 280,
    boards: int = 2,
    batten_width: float = 90,
    batten_inset: float = 30,
    slope: float = 4,
    stock: Stock = OAK,
) -> Assembly:
    """The seat of a stepstool: boards edge to edge, two battens underneath
    across the grain, in wide, shallow sliding dovetail housings.

    The battens lie flat, `batten_inset` in from the ends, and keep the seat
    flat and its boards together, even without glue; not glued, they let it
    shrink and swell across its grain. Each batten's whole width goes into a
    housing a third of the seat deep, its edges bevelled by 1:`slope`, and
    runs across all the boards, housed in each of them. The housings run
    through, out of the front and the back edges, where the battens' ends
    are flush with the seat's. The battens are wide enough for the legs'
    through tenons (see `stepstool`), which cross their grain.
    """
    asm = Assembly("stepstool_seat")
    _stepstool_seat(asm, length, depth, boards, batten_width, batten_inset, slope, stock)
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.