Skip to content

Bridle corner

joints.bridle_corner

An L-shaped bridle joint: a tenon over the whole rail in a slot in the stile's end.

The rail may be narrower than the stile: the slot is as deep as the rail is wide, the tenon as long as the stile is wide.

Bridle corner, assembled

Bridle corner, exploded

Parameters

Parameter Default
stile_length 300
rail_length 200
stile_width 50
rail_width 30
stock 20 mm board, oak

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

from woodwright.examples import joints

design = joints.bridle_corner(stile_length=375)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Rail

rail

Stile

stile

Cut list

stile  300 x 50 x 20 mm  oak
       - slot mortise 8 mm, 30 deep, in right_end
rail   250 x 30 x 20 mm  oak
       - tenon 8 mm thick, 50 long, on left_end

Code

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

def bridle_corner(
    stile_length: float = 300,
    rail_length: float = 200,
    stile_width: float = 50,
    rail_width: float = 30,
    stock: Stock = OAK,
) -> Assembly:
    """An L-shaped bridle joint: a tenon over the whole rail in a slot in the stile's end.

    The rail may be narrower than the stile: the slot is as deep as the rail
    is wide, the tenon as long as the stile is wide.
    """
    asm = Assembly("bridle_corner", root_location=STANDING)
    stile = asm.add(Board("stile", stock, length=stile_length, width=stile_width))
    rail = asm.add(Board("rail", stock, length=rail_length, width=rail_width))
    asm.join(
        Bridle(tenon=rail.left_end, slot=stile.back_edge, position=flush_with(stile.right_end))
    )
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.