Preheat the oven: Set to 375°F (190°C).
Grease a 9x13-inch baking dish with nonstick spray or butter.
Cook the bacon: In a large skillet over medium heat, cook bacon until crisp. Transfer to a paper towel–lined plate. Once cool, chop into bite-size pieces.
Keep 1–2 tablespoons of the bacon fat in the pan for flavor.
Sauté the vegetables: In the same skillet, add onion and bell pepper. Cook for 4–5 minutes until softened. Stir in garlic for the last 30 seconds.
If the pan looks dry, add a little olive oil or butter.
Prep the potatoes: If using fresh potatoes, peel (optional) and dice into small cubes. Par-cook them in the microwave for 3–4 minutes or pan-fry in the skillet for 5–7 minutes until just tender. If using thawed hash browns, pat them dry to remove excess moisture.
Whisk the egg mixture: In a large bowl, whisk eggs, milk or half-and-half, salt, pepper, and smoked paprika.
Stir in 1 1/2 cups of the shredded cheese.
Assemble the casserole: Spread potatoes evenly in the baking dish. Top with sautéed veggies and chopped bacon. Pour the egg mixture over the top, tilting the dish to distribute.
Sprinkle the remaining 1/2 cup cheese on top.
Bake: Place on the center rack and bake for 35–45 minutes, until the edges are set and the center barely jiggles. A knife inserted near the center should come out mostly clean.
Rest and garnish: Let the casserole rest for 10 minutes before slicing. Top with sliced green onions for a fresh finish.
Serve or store: Cut into squares.
Serve warm, or cool completely before storing for meal prep.