Trestle Town Repair & Remodel

Trestle Town Repair & Remodel — Madrid, Boone, Ankeny & Ames, IA

Local, veteran-owned repair and remodeling — serving Madrid, Iowa and the surrounding communities.

Madrid, Iowa & the High Trestle Corridor

Local fixes,
done right
the first time.

One call for the whole list — repairs, painting, carpentry, and the small jobs the big contractors skip. Serving Madrid and the towns around it.

Veteran owned & operated
Flexible scheduling
No job too small
Free estimatesLocally owned & operatedNo job too smallVeteran Owned & Operated
What We Handle

A working list of the jobs that pile up.

If it needs a toolbox and a Saturday you don't have, it's probably on this list.

Repairs & Fixes

Drywall patches, sticking doors, loose trim, leaky fixtures, squeaky floors.

Painting & Touch-Ups

Rooms, trim, doors, and the scuffed spots that bother you every time you walk by.

Carpentry & Trim

Shelving, baseboard, small built-ins, and framing fixes around the house.

Outdoor & Seasonal

Gutter cleaning, deck and fence repair, storm-damage patchwork, gate hardware.

Assembly & Install

Furniture builds, TV mounts, shelving, curtain rods, light fixtures.

Ongoing Property Upkeep

Standing arrangements for rentals, second homes, and seasonal check-ins.

Tenant Turnover

Patch, paint, and repair between tenants — quick turnarounds so units don't sit empty.

Where We Work

Based in Madrid.
Serving Surrounding Areas.

Home base is Madrid, right off the High Trestle Trail, with jobs running through the rest of Boone County and into the Ames–Des Moines corridor. Outside this list? Ask anyway.

MadridBooneAnkenyAmesWoodwardSlaterGrangerPolk City
Why Trestle Town

Small-town accountability. No subcontractors, no runaround.

The same person shows up every time, does the work, and follows up personally through the form the next time something needs fixing.

Most calls are a mix of jobs — a door that sticks, a shelf that needs hanging, a fence panel the wind took out. Bring the whole list; it's usually faster to knock it all out in one visit.

Get In Touch

Tell us what's broken.

Send the details through the form and we'll follow up — usually within one business day — to talk timing and a rough price.

"']/g, function(x) {return a[x];});return s;},thisHash = function() {var h = location.hash ? location.hash.substring(1) : null,a;if (!h)return null;if (h.match(/\?/)) {a = h.split('?');h = a[0];history.replaceState(undefined, undefined, '#' + h);window.location.search = a[1];}if (h.length > 0&& !h.match(/^[a-zA-Z]/))h = 'x' + h;if (typeof h == 'string')h = h.toLowerCase();return h;},scrollToElement = function(e, style, duration) {var y, cy, dy,start, easing, offset, f;if (!e)y = 0; else {offset = (e.dataset.scrollOffset ? parseInt(e.dataset.scrollOffset) : 0) * parseFloat(getComputedStyle(document.documentElement).fontSize);switch (e.dataset.scrollBehavior ? e.dataset.scrollBehavior : 'default') {case 'default':default:y = e.offsetTop + offset;break;case 'center':if (e.offsetHeight < window.innerHeight)y = e.offsetTop - ((window.innerHeight - e.offsetHeight) / 2) + offset; else y = e.offsetTop - offset;break;case 'previous':if (e.previousElementSibling)y = e.previousElementSibling.offsetTop + e.previousElementSibling.offsetHeight + offset; else y = e.offsetTop + offset;break;}}if (!style)style = 'smooth';if (!duration)duration = 750;if (style == 'instant') {window.scrollTo(0, y);return;}start = Date.now();cy = window.scrollY;dy = y - cy;switch (style) {case 'linear':easing = function (t) { return t };break;case 'smooth':easing = function (t) { return t<.5 ? 4*t*t*t : (t-1)*(2*t-2)*(2*t-2)+1 };break;}f = function() {var t = Date.now() - start;if (t >= duration)window.scroll(0, y); else {window.scroll(0, cy + (dy * easing(t / duration)));requestAnimationFrame(f);}};f();},scrollToTop = function() {scrollToElement(null);},loadElements = function(parent) {var a, e, x, i;$body.dispatchEvent(new CustomEvent('startComponents', { detail: { parent: parent } }));a = parent.querySelectorAll('iframe[data-src]:not([data-src=""])');for (i=0; i < a.length; i++) {x = a[i].cloneNode();x.setAttribute('src', x.dataset.src);x.dataset.initialSrc = x.dataset.src;x.dataset.src = '';a[i].replaceWith(x);}a = parent.querySelectorAll('video[autoplay]');for (i=0; i < a.length; i++) {if (a[i].paused)a[i].play();}e = parent.querySelector('[data-autofocus="1"]');x = e ? e.tagName : null;switch (x) {case 'FORM':e = e.querySelector('.field input, .field select, .field textarea');if (e)e.focus();break;default:break;}a = parent.querySelectorAll('unloaded-script');for (i=0; i < a.length; i++) {x = document.createElement('script');x.setAttribute('data-loaded', '');if (a[i].getAttribute('src'))x.setAttribute('src', a[i].getAttribute('src'));if (a[i].textContent)x.textContent = a[i].textContent;a[i].replaceWith(x);}x = new Event('loadelements');a = parent.querySelectorAll('[data-unloaded]');a.forEach((element) => {element.removeAttribute('data-unloaded');element.dispatchEvent(x);});},unloadElements = function(parent) {var a, e, x, i;$body.dispatchEvent(new CustomEvent('stopComponents', { detail: { parent: parent } }));a = parent.querySelectorAll('iframe[data-src=""]');for (i=0; i < a.length; i++) {if (a[i].dataset.srcUnload === '0')continue;if ('initialSrc' in a[i].dataset)a[i].dataset.src = a[i].dataset.initialSrc; else a[i].dataset.src = a[i].src;a[i].contentWindow.location.replace('about:blank');}a = parent.querySelectorAll('video');for (i=0; i < a.length; i++) {if (!a[i].paused)a[i].pause();}e = $(':focus');if (e)e.blur();};window._scrollToTop = scrollToTop;var thisUrl = function() {return window.location.href.replace(window.location.search, '').replace(/#$/, '');};var getVar = function(name) {var a = window.location.search.substring(1).split('&'),b, k;for (k in a) {b = a[k].split('=');if (b[0] == name)return b[1];}return null;};var errors = {handle: function(handler) {window.onerror = function(message, url, line, column, error) {(handler)(error.message);return true;};},unhandle: function() {window.onerror = null;}};loadElements(document.body);var style, sheet, rule;style = document.createElement('style');style.appendChild(document.createTextNode(''));document.head.appendChild(style);sheet = style.sheet;$body.addEventListener('keydown', (event) => {const target = event.target;if (target.tagName === 'A'&& target === document.activeElement&& target.hasAttribute('onclick')&& !target.hasAttribute('href')&& event.keyCode === 13) {event.preventDefault();target.click();}});if (client.mobile) {(function() {if (client.flags.lsdUnits) {document.documentElement.style.setProperty('--viewport-height', '100svh');document.documentElement.style.setProperty('--background-height', '100lvh');} else {var f = function() {document.documentElement.style.setProperty('--viewport-height', window.innerHeight + 'px');document.documentElement.style.setProperty('--background-height', (window.innerHeight + 250) + 'px');};on('load', f);on('orientationchange', function() {setTimeout(function() {(f)();}, 100);});}})();}if (client.os == 'android') {(function() {sheet.insertRule('body::after { }', 0);rule = sheet.cssRules[0];var f = function() {rule.style.cssText = 'height: ' + (Math.max(screen.width, screen.height)) + 'px';};on('load', f);on('orientationchange', f);on('touchmove', f);})();$body.classList.add('touch');} else if (client.os == 'ios') {if (client.osVersion <= 11)(function() {sheet.insertRule('body::after { }', 0);rule = sheet.cssRules[0];rule.style.cssText = '-webkit-transform: scale(1.0)';})();if (client.osVersion <= 11)(function() {sheet.insertRule('body.ios-focus-fix::before { }', 0);rule = sheet.cssRules[0];rule.style.cssText = 'height: calc(100% + 60px)';on('focus', function(event) {$body.classList.add('ios-focus-fix');}, true);on('blur', function(event) {$body.classList.remove('ios-focus-fix');}, true);})();$body.classList.add('touch');}ready.run();})();