diff --git a/src/Yavsc.Org.Tests/Smoke/AccountSmokeTests.cs b/src/Yavsc.Org.Tests/Smoke/AccountSmokeTests.cs
new file mode 100644
index 00000000..50f92d63
--- /dev/null
+++ b/src/Yavsc.Org.Tests/Smoke/AccountSmokeTests.cs
@@ -0,0 +1,36 @@
+using System.Threading.Tasks;
+using Xunit;
+
+namespace Yavsc.Org.Tests.Smoke;
+
+///
+/// Smoke for the Account BC (login / registration / OIDC discovery).
+/// Hits the in-memory test server through
+/// : no sockets, no
+/// self-signed certificates, no real DB (the
+/// AddInMemoryCollection in WebServerFixture.SetupHost
+/// points the EF context at the in-memory provider).
+///
+/// GET /signin is the public login endpoint served by
+/// Yavsc.Org/Controllers/Accounting/AccountController
+/// (decorated [HttpGet(YavscConstants.SigninPath)] with
+/// YavscConstants.SigninPath = "~/signin"). A 200 means the
+/// entire pipeline (routing + Razor + IdentityServer + EF + DI)
+/// is wired correctly end-to-end.
+///
+public class AccountSmokeTests : SmokeTestBase, IClassFixture
+{
+ private readonly TestWebApplicationFactory _factory;
+
+ public AccountSmokeTests(TestWebApplicationFactory factory)
+ {
+ _factory = factory;
+ }
+
+ [Fact]
+ public async Task GetSignin_returns_a_page()
+ {
+ using var client = _factory.CreateClient();
+ await AssertResponds(client, "/signin");
+ }
+}
diff --git a/src/Yavsc.Org.Tests/Smoke/BlogSmokeTests.cs b/src/Yavsc.Org.Tests/Smoke/BlogSmokeTests.cs
new file mode 100644
index 00000000..8aa95347
--- /dev/null
+++ b/src/Yavsc.Org.Tests/Smoke/BlogSmokeTests.cs
@@ -0,0 +1,35 @@
+using System.Threading.Tasks;
+using Xunit;
+
+namespace Yavsc.Org.Tests.Smoke;
+
+///
+/// Smoke for the Blog BC. Hits Yavsc.Org on
+/// GET /BlogSpot/Index — the front-end page that lists blog
+/// posts. The controller is BlogSpotController (note the
+/// capital S) under Yavsc.Org/Controllers/Communicating/,
+/// without a class-level [Route], so the conventional
+/// /{controller}/{action} route applies (controller name
+/// preserved case).
+///
+/// The blog backend API itself lives in Yavsc.Blogs on a
+/// separate host in production; cf.
+/// doc/architecture/decoupage-organisation.md. The smoke
+/// here asserts the front-end side of the BC.
+///
+public class BlogSmokeTests : SmokeTestBase, IClassFixture
+{
+ private readonly TestWebApplicationFactory _factory;
+
+ public BlogSmokeTests(TestWebApplicationFactory factory)
+ {
+ _factory = factory;
+ }
+
+ [Fact]
+ public async Task GetBlogSpotIndex_returns_a_page()
+ {
+ using var client = _factory.CreateClient();
+ await AssertResponds(client, "/BlogSpot/Index");
+ }
+}