Custom Blocks Datapack or Mod?

Question regarding adding custom blocks. I want to do a datapack or mod that adds custom building blocks and deco similar to this picture or similar to the ones conquest reforged has. The difference being I would want them to be vanilla + looking. I dont know what would be the best route for adding these. I know I could make them in blockbench or even better blender if possible since I use blender daily. More less the question is would this be doable with datapacks or would I have to make a mod? and if I made it with a datapack for example I wouldnt have to overwrite existing blocks? Could I make custom functionality with datapacks? ex/ being if I made a tanning rack. You could open a gui or click on it with the items and turn 1 leather, 1 string, into 3 leather? Or if I made a campfire like this could I add the cooking meat ability back to it. or would I need to make a mod for this sort of stuff

Continue to help post