Preheat the oven to 400°F. Line a large baking sheet with parchment paper.
Wash and dice the tomatoes. Peel and slice the onion. In a large mixing bowl, combine the tomatoes, onion, crushed garlic, olive oil, sea salt, and black pepper. Toss gently to mix everything together.
Spread the tomato mixture on the baking sheet and bake (roast) the tomatoes for 30-45 minutes, stirring about 1/2 way through.
While the tomatoes are roasting, heat a large saucepan over low heat and add the bacon fat and cassava flour. Cook the flour in the bacon fat until is browned. If the tomatoes are not done yet, turn off the heat and set the saucepan aside.
Once the tomatoes are done roasting, start pureeing them in small batches in a high-power blender. Add a handful of the basil to each batch of tomatoes you puree. I also like to add 1/4 cup of the broth to each batch of tomatoes to make pureeing them easier.
As the tomatoes are pureed, pour them into the saucepan containing the flour mixture. Heat the pot over low heat as you work. Once all the tomatoes have been pureed and added to the pot, stir in the remaining coconut sugar, broth, and coconut milk/cream.
You can adjust the broth and coconut milk amounts to get your desired tomato soup constistency. Stir everything together and bring the soup to a gentle simmer.
Allow the soup to simmer for at least 15-20 minutes before serving. It can simmer for up to an hour before serving as well. Serve warm with a grilled cheese sandwich and your favorite soup crackers!