Preheat the oven to 190C / 170C fan / gas 5
Lightly grease a 23cm ceramic or Pyrex flan dish with a little butter.
Melt the butter in a large frying pan or saucepan, then cook the bacon until crisp. Remove from the pan and cook the onions slowly for about 10 minutes until soft and beginning to caramelise. Spread the bacon and onion evenly over the base of the greased dish.
Wilt the spinach in the same pan over a medium heat. Leave to cool slightly, then squeeze out the excess moisture and add to the greased dish along with the artichokes.
Slowly add the milk to the flour in a large jug. Whisk continuously so that there are no lumps, then whisk in the eggs, mustard and salt and pepper. Stir in 100g of the gruyere and pour the egg mixture into the baking dish.
Add random spoonfuls of the soft cheese over the top and then scatter with the remaining gruyere.
Bake in the preheated oven for 30-35 minutes until just set and starting to rise. Remove from the oven and allow to rest for 10-15 minutes before serving as this is best served warm than hot.
Serve with a green or Greek salad.