We propose a computational design tool to enable casual end-users to easily design, fabricate, and assemble flat-pack furniture with guaranteed manufacturability. Using our system, users select parameterized components from a library and constrain their dimensions. Then they abstractly specify connections among components to define the furniture. Once fabrication specifications (e.g. materials) designated, the mechanical implementation of the furniture is automatically handled by leveraging encoded domain expertise. Afterwards, the system outputs 3D models for visualization and mechanical drawings for fabrication. We demonstrate the validity of our approach by designing, fabricating, and assembling a variety of flat-pack (scaled) furniture on demand.