Popular Types of Softwood for Furniture Making

by | Aug 26, 2020 | Articles | 0 comments

softwood for furniture making

When considering which types of wood to use for furniture-making, you may be presented with the choice between hardwood and softwood. Hardwood is not necessarily harder or denser, it actually has to do with the plant’s reproduction process. Hardwood trees are angiosperms—plants that produce seeds with a covering, like an apple or an acorn. Softwood tress are gymnosperms, which are plants that let their seeds fall to the ground with no covering, like pine trees. Despite these biological definitions, the hardwood/softwood terminology does make some sense. For instance, the wood from an evergreen is less dense, and most hardwoods are sturdier. That being said, many furniture-makers will choose to work with hardwoods over softwoods.

However, that is not to say that softwoods are inappropriate for furniture-making, Some common types of softwood for furniture include cedar, Douglas fir, juniper, pine, redwood, spruce, and yew.

  • Cedar: Western red cedar is one of the most common softwoods used in furniture-making, and is distinguished by its reddish color. It is soft and used for projects like outdoor furniture, decks, and building exteriors, since it is a rot-resistant wood. Cedar is also moderately priced.
  • Fir: Douglas fir is well-known, and commonly used for furniture-making—especially for projects that will be painted—as it is inexpensive. Moderately strong, flat sawed Douglas fir is an excellent softwood to use in cabinetry and furniture-making.
  • Pine: There are many types of pine, including Ponderosa, Sugar, White, and Yellow pines. They are all relatively soft and great to use for furniture. If country or rustic styles resonate with you, then pine is a great choice.
  • Redwood: Used mostly for outdoor projects, redwoods are moisture-resistant. They are soft, easy to work with, and moderately priced. A great choice or material for outdoor furniture or decking!

Need help selecting a wood for your furniture-making project? Come to Barney & Carey’s lumberyard in Avon, MA to purchase the specialty softwoods and hardwoods you need, or to talk shop with an expert craftsman who can guide you in selecting the best materials for your project.

Don’t fancy yourself a furniture-maker? Hire Barney & Carey to design and build the furniture you have in mind.

Popular Articles

Furniture: Buy New or Restore?

Back in the 1990s, Barney & Carey accidentally got into the furniture repair and refinishing business. Cindy and I were regulars at the highly...

Subscribe to Our Blog

Get Social With Us

Order Custom Cabinet Parts

Contact Barney & Carey Co.

Give Us a Call

(508) 580-9766

Shoot Us an Email

info@barneyandcarey.com

Our Location

491 West Main St
AvonMA 02322

Business Hours

Monday: 7:30 am - 3:30 pm
Tuesday: 7:30 am - 3:30 pm
Wednesday: 7:30 am - 3:30 pm
Thursday: 7:30 am - 3:30 pm
Friday: 7:30 am - 3:30 pm
Saturday: 8:00 am - 12:00 pm
Sunday: Closed

Cabinet Order Summary

${customerInfoHTML} ${cabinetDetailsHTML} ${printContent} `); printWindow.document.close(); // Wait for content to load before printing printWindow.onload = function () { printWindow.print(); }; } // Set up form field listeners function setupFormListeners() { // Prevent duplicate listeners by removing existing ones first if (window.cabinetVisListenersSetup) { return; // Already setup, don't duplicate } // Listen for changes on all form inputs in the repeater sections const form = document.querySelector("#form_cab-price-calc"); if (form) { // Mark that we've setup listeners to prevent duplicates window.cabinetVisListenersSetup = true; // Use event delegation to catch changes in current and future repeater sections form.addEventListener("change", function (e) { if (e.target.name && e.target.name.includes("item_meta[42]")) { updateVisualization(); } // Also listen for material changes (field 105) if (e.target.name && e.target.name.includes("item_meta[105]")) { updateVisualization(); } // Also listen for type changes (field 45) if (e.target.name && e.target.name.includes("item_meta[45]")) { updateVisualization(); } // Also listen for delivery option changes if (e.target.name && e.target.name.includes("item_meta[113]")) { updateVisualization(); } }); form.addEventListener("input", function (e) { if (e.target.name && e.target.name.includes("item_meta[42]")) { updateVisualization(); } }); // Watch for repeater add/remove buttons const observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if ( mutation.addedNodes.length || mutation.removedNodes.length ) { // Check if repeater sections were added/removed const hasRepeaterChanges = Array.from( mutation.addedNodes, ) .concat(Array.from(mutation.removedNodes)) .some( (node) => node.nodeType === 1 && (node.classList?.contains( "frm_repeat_sec", ) || node.querySelector?.( ".frm_repeat_sec", )), ); if (hasRepeaterChanges) { setTimeout(updateVisualization, 100); // Small delay to ensure DOM is updated } } }); }); observer.observe(form, { childList: true, subtree: true, }); } } // Initialize function init() { const container = document.getElementById("sheetVis"); if (!container) { // If sheetVis doesn't exist yet, wait for it const observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if (mutation.addedNodes.length) { Array.from(mutation.addedNodes).forEach( function (node) { if ( node.nodeType === 1 && (node.id === "sheetVis" || node.querySelector?.("#sheetVis")) ) { observer.disconnect(); // Stop observing updateVisualization(); setupFormListeners(); } }, ); } }); }); observer.observe(document.body, { childList: true, subtree: true, }); return; // Exit early if container not found } // Container exists, proceed normally updateVisualization(); setupFormListeners(); } // Handle Formidable Forms multi-step navigation function handleFormPageChange() { // Reset listener setup flag to allow re-initialization window.cabinetVisListenersSetup = false; // Small delay to ensure DOM is fully updated after page change setTimeout(function () { const container = document.getElementById("sheetVis"); if (container) { updateVisualization(); // Re-setup form listeners in case they were lost during navigation setupFormListeners(); } else { // If container doesn't exist, re-run full initialization init(); } }, 50); } // Additional fallback detection for form changes function setupGlobalFormWatcher() { // Watch for any significant DOM changes that might indicate form step changes const globalObserver = new MutationObserver(function (mutations) { let shouldReinit = false; mutations.forEach(function (mutation) { if (mutation.addedNodes.length > 0) { Array.from(mutation.addedNodes).forEach(function (node) { if (node.nodeType === 1) { // Check for form content changes or step navigation if ( node.classList?.contains("frm_form_content") || node.querySelector?.(".frm_form_content") || node.id === "form_cab-price-calc" || node.querySelector?.("#form_cab-price-calc") ) { shouldReinit = true; } } }); } }); if (shouldReinit) { handleFormPageChange(); } }); globalObserver.observe(document.body, { childList: true, subtree: true, }); } // Export global interface window.cabinetVis = { init: init, update: updateVisualization, getCabinets: extractCabinetData, handleFormPageChange: handleFormPageChange, debug: function () { console.log("Cabinet Visualization Debug Info:", { containerExists: !!document.getElementById("sheetVis"), formExists: !!document.querySelector("#form_cab-price-calc"), listenersSetup: !!window.cabinetVisListenersSetup, jQueryAvailable: typeof jQuery !== "undefined", cabinetCount: extractCabinetData().length, }); }, }; // Handle Formidable Forms multi-step navigation if (typeof jQuery !== "undefined") { jQuery(document).ready(function ($) { // Use both event delegation and direct binding for better compatibility $(document).on("frmPageChanged", function (event, form, response) { console.log( "Cabinet Vis: Formidable form page changed detected", ); handleFormPageChange(); }); // Also listen for form completion which might trigger on some step changes $(document).on("frmFormComplete", function (event, form, response) { setTimeout(function () { const container = document.getElementById("sheetVis"); if (container) { console.log( "Cabinet Vis: Form complete, updating visualization", ); updateVisualization(); } }, 100); }); }); } else { console.log( "Cabinet Vis: jQuery not available, relying on DOM observation for form changes", ); } // Setup global form watcher as fallback setupGlobalFormWatcher(); // Auto-initialize if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } })();