Introduction: Flat-Pack CNC Modern Coffee Table

About: A husband & wife team. Amateur makers. Expert high fivers. New video every week (or so).

We really wanted to make a piece of flat-pack, CNC furniture that didn't look like flat-pack CNC furniture. This was a super fun project because we got to use hand tools, power tools, and a CNC (use ALL the tools!) though there are lots of ways you could do this yourself.

It was also our first time working with a slab. We ended up choosing to take 2 slabs and join them together because they would be easier to process that way. This was also our first time processing rough lumber. And our first time using epoxy to fill voids. And our first time using a lot of new tools. Basically, there were a lot of firsts but we love how this table turned out and we stare lovingly at it every day. Plus - it truly was flat pack and we shipped it from North Carolina down to Texas successfully! Woo!

Here's what we used for this project:

Also, here is a link to the files we used for this table. We used Fusion 360 to generate the came and it's specifically for the X-Carve, but if that's your set up or you want to modify them, here they are:

Lastly, here is a link to a video we did on Fusion 360 CAM basics for CNC beginners:

Step 1: Process Lumber for Legs

This step may not be applicable if you're buying lumber that is already ready to go. But we'll go ahead and outline what we did to process our lumber.

First, the rough cut walnut. We are going to use this for our legs, so we wanted something pretty thick. We got 8/4", but 6 /4" thick would have been fine. When we got it back to the shop, we cut it down to more manageable lengths (making sure the pieces were still long enough for our legs).

Then we squared up one edge on the jointer, then one face, for each piece of wood. After that we ran them through the planer to square up the other face.

Step 2: CNC Leg Pieces

Once the lumber was cleaned up, it was time to put the X-Carve to work. We did a test piece in a scrap piece of wood, which we always recommend when you're testing your cuts for the first time. We broke the tabs with a chisel and pulled out our leg pieces. Since the first piece worked, we went ahead and ran them all. Note: after running them, we realized that we had been doing climb cutting and should have been doing conventional cutting. We learn a little more each time we use the CNC!

The legs were still ok, but because we did the climb cutting, which is meant for metals and very sturdy, industrial CNCs, it ended up being a little rough on our edges and we had to do more cleanup work than expected. We'll get more into that later.

Step 3: Process the Slabs

Next we processed the slabs. Again, if you buy a slab that has already been processed, you can skip this step. First we planed them both down to get them to be the same height.

Then we aligned them to see how we wanted to join them together, doing out best to match up the grain. We cut the length down a little bit so they weren't too long for the track saw, and then we ripped the inside sides on the track saw so that we could later join those.

Step 4: Join Slabs Together

We used dominoes to join our slabs together. The dominoes help align them vertically, which was especially helpful because one of our slabs had some tension to it and was trying to warp a bit.

This was our first time using the domino and it was super easy. You could also use a biscuit joiner, but the dominoes are a bit beefier. You just line up the slabs against each other, put registration marks across each so you know where to cut the dominoes, align the domino with the marks, pull the trigger, and push into it.

Run glue along one edge of the slab and in the holes you cut. Pop in the dominoes, run some glue along the outer edge of them, and then pop them into the holes on the other side. Secure with clamps and you're good to go.

It's the same basic steps if you're using a biscuit joiner instead.

Step 5: Fill Slab Cracks With Epoxy

Next we added epoxy to the cracks in our slab. We put foil tape along the edges and underneath the slab so that the epoxy would not drip through to the underside anywhere. We mixed our epoxy a little bit at a time and poured it into the cracks. It ended up needing a lot more than expected! We had to mix about 4 batches before it stopped absorbing so much. We let it set overnight (wait whatever the recommended wait time is for your epoxy.

Side note about this epoxy (West Systems epoxy:, it was super easy to mix because you just do one pump of each part, so you don't have to try to eyeball proportions. Made it really easy, especially because we had to mix so many batches.

We used a torch to bring bubbles to the surface and pop them. Just don't get too close, don't want to burn the wood!

Step 6: Finish Slabs

Once it had dried, we removed the foil tape and got to work removing excess epoxy. We scraped off as much as we could with card scrapers, then ran it through the belt sander to get the last bits. Then we sanded it with a random orbit sander with higher grit sandpaper to get a smooth finish.

We noticed a few shallow hairline cracks, so we filled those with walnut wood filler (did not know you could get wood filler specific to walnut before this!). After it dried, we sanded over those areas one last time with the random orbit sander.

Then we cut the slab to it's final length with the track saw.

Step 7: Clean Up Legs

Next we got to work on cleaning up our leg pieces. We started by running them along a flush trim bit on the router table to clean up the edges. Then we sanded the faces down on the oscillating sander.

Because of the climb cutting we did on our legs (instead of conventional cutting, see screenshot), it took quite a bit of finessing with hand planes to get them to fit together properly. Theoretically, if we had cut them correctly, this part would have gone really quickly.

Step 8: Glue Up and Finish Legs

Next we glued up our, which was not the easiest thing because it was hard to find places for the clamps to grip onto. Luckily these tiny ones worked.

We had slightly mis-measured the height of the material before we cut the legs, so the pieces were not totally flush with each other (as you can see in the 3rd photo). They were 1/8" too wide to run through the planer, so we knocked down the height difference with a hand plane.

Once we had one side flush, we could take the other side down on the drum sander (the second side would have been harder to do with the hand plane because of the grain direction of the parts we needed to take down)

We then added a chamfer to the legs to a) be fancy, and b) hide some of our mistakes ;)

Finally, we used some more of that walnut filler to fill any gaps in our legs, and then we sanded the whole thing down with high grit sand paper on the random orbit sander.

Step 9: Cut Mortises and Stretcher

Next was the most nerve-wracking step - cutting mortises into the underside of our slab. The tops of the legs have tenons, so this is how they'll attach to the slab.

We used the X-Carve to make a template for our mortises. First we traced our leg pieces and measured how big the tenons were and how far apart they were. Based on that, we programmed where our mortises needed to be. We used some plywood as the template and test fit our legs into it to make sure they were the right size and distance apart.

At this point, we also cut the stretcher that goes between our leg pieces to size. We waited until now because we wanted to cut it to fit. We ripped it to the correct size on the table saw, cut it to length on the miter saw, added chamfers like we did on the leg pieces, and sanded it smooth.

Step 10: Finish Slab and Leg Pieces

We used wipe on poly to finish the slab. A pro tip from Johnny (Crafted Workshop) is to use as small of a towel or rag as possible, because any finish that soaks into your rag is basically trash. Another tip, specifically for slabs, is we found the best way to apply it to the sides (where it was a little more bark-y) was to dab it on instead of wipe it.

For the legs and stretch, we used shellac because we were getting low on time and it dries really fast. Both finishes ended up looking the same and matching.

Step 11: Cut Mortises Into Slab

Once we had the legs and stretcher assembled, we centered the assembly on the underside of the slab and traced the tops of the legs. We lined up our mortise template from earlier with those marks, and used a plunge router to cut out the mortises. Luckily everything worked smoothly and they fit perfectly!

Step 12: Enjoy! (and Flat Pack It!)

We flat packed it (carefully!) shipped it home, and now ol' slabby lives in our living room! Hope you liked this project!

You can also find us at: YouTube (all our DIY videos)

Instagram (sneak peeks @evanandkatelyn)

Patreon (if you wanna support us, but no pressure!)

Our website (includes tutorials from our pre-YouTube days)

Pinterest (stuff that inspires us)

Twitter (where we do our GIF battles)


Note: This post contains affiliate links. Thank you for supporting us!