Pre-heat oven to 375 F (191 C).
Boil water; cook pasta per package.
Peel and dice the onion.
Peel and mince the garlic.
Juice the lemon (if you're not using bottled lemon juice).
Saute diced onion for ~ 5 mins until translucent; add in garlic and cook for another 2-3 minutes. Put both of them in the blender.
Add the silken tofu, soy milk, nutritional yeast, lemon juice, garlic powder, onion powder and salt to the blender, and blend until smooth.
In the same pan, that's now empty, add in the spinach and cook down until the excess water is removed.
Add the cooked spinach and chopped artichoke hearts to the blender and pulse a few times until it's mixed in. Alternatively, if your blender doesn't have a pulse option, pour blender mixture in a bowl and stir in the spinach and artichokes.
Mix in the pasta. I like to drain the pot I cook the pasta in and mix everything together in there.
Empty into a 13x9” casserole dish (you may want to spray with oil if you're concerned with sticking).
Top with vegan parmesan and cook for 25-30 minutes. I recommend broiling at the end for a couple minutes to get the cheese browned.