The present stone church stands close to Garnsviken, part of Lake Mälaren, which in medieval times formed a more open waterway to the Baltic. Building is thought to have begun in the later 1200s and continued into the early 1400s, a lengthy process reflected in the church's varied stonework. Some accounts suggest it may have replaced an earlier wooden church on the same site.
The building consists of a rectangular nave with a narrower, straight-ended chancel to the east, a sacristy to the north, and a western extension that appears to have been intended as a tower before becoming a porch. A close study of the walls during a 1970s restoration, when the plaster was stripped away, allowed historians to trace the construction sequence: the sacristy is believed to be the oldest surviving part, followed by the stone chancel, then the nave with its well-preserved medieval roof trusses, and finally the western addition.
Among the church's oldest furnishings are a sandstone font and a bronze incense burner, both dated to the early 1200s; the incense burner is notably well preserved, retaining its original chains. The high altar retable dates from the late 1400s and has been associated, tentatively, with the Dominican friars of Sigtuna. A pulpit from 1760, marbled in grey-green tones with gilded carving, and an altar crucifix said by its inscription to have been donated in 1763, are among later additions.
Subsequent centuries brought alterations rather than replacement: larger windows were cut in the 1700s, box pews incorporating older painted panels were installed in 1763, and a 1932 restoration under architect Erik Fant returned a medieval altar cabinet to a position above the altar. The most recent major renovation, in the mid-1970s, removed later roofing materials and re-plastered the walls, revealing traces of an early pink colour scheme beneath layers of white.
A freestanding wooden bell tower, painted red and altered in 1634 with its current cap added in the early 1700s, stands on a hill north of the church. It houses two bells, recast in 1754 and 1840. The churchyard is enclosed by a granite wall, with an now-vanished lychgate once marking the southern entrance.