Heat the oil in a large Dutch oven or soup pot over medium-high heat. Once hot, add the onion, celery, and carrots, along with a pinch or two of salt. Cook until the vegetables are softened and starting to just turn brown, 6-9 minutes.
Add the garlic and red pepper flakes, and cook another 1-2 minutes until very fragrant.
Pour in the vegetable broth and deglaze the pot, stirring up any browned bits on the bottom of the pot. Add the 1 teaspoon kosher salt, black pepper to taste, bouquet garni, potatoes, cannellini beans, and artichokes (if using). Stir well.
Bring the soup to a boil. Then reduce heat, cover the pot, and simmer the soup for 15 minutes, or until the potatoes are tender.
While the soup is simmering, make the Gremolata. Finely chop the parsley and basil. Using a microplane, grate the garlic directly over the parsley and basil. Then zest the lemons on top of this mixture, taking care to not zest the white pith underneath the skin. Mix the garlic and lemon zest into the herbs and chop the herbs until they’re finely minced. Sprinkle with a bit of the coarse or flaky sea salt.
Transfer half of the soup to a stand blender and blend until thick and smooth. Then return this pureed soup back to the pot and stir to incorporate. One-pot option: Remove bouquet garni and use an immersion blender throughout half of the soup, but be sure to not blend it all - you want to retain some texture.
Add the kale to the soup and simmer for 3-5 minutes, or until the kale is tender but still bright green. Taste for seasonings, adding more salt as needed. When the soup is done, remove the bouquet garni.
Serve the soup in bowls and sprinkle a generous amount of the Gremolata over each bowl and a drizzle of the extra virgin olive oil.If storing leftovers, add the gremolata to a jar, drizzle some olive oil in there, and refrigerate. Spoon this over leftover soup.