{post.author.name}
+{post.title}
+{truncateText(post.body, 220)}
+ ++ {isSignUp ? "Create an account" : "Welcome back"} +
++ {isSignUp + ? "This boilerplate only enables Better Auth email and password flows." + : "Use the same credentials you created with Better Auth email and password."} +
++ {isSignUp ? "Already have an account?" : "Need an account?"}{" "} + + {isSignUp ? "Sign in here" : "Create one here"} + +
+Protected write route
+{eyebrow ?? "Generic Boilerplate"}
+{intro}
+{post.author.name}
+{truncateText(post.body, 220)}
+ +Protected write route
++ This form calls the protected `post.create` tRPC mutation with the signed-in user. +
+{emptyText}
+Profile
+Session
+Protected read route
++ This panel calls `post.mine`, which only resolves when a valid session is present. +
+What is included
++ Use this as the first pass for a typed internal tool or product prototype. The public routes stay open, the protected flows + stay strict, and the database starts with two clear relational models. +
+{card.label}
+{card.description}
+Current state
++ {session + ? "Your session is active, so the dashboard can create posts and the post detail page can submit comments." + : "You can browse everything public first. When you need writes, sign up with Better Auth email/password and continue into the dashboard."} +
+ +Preview query
++ The list below calls the public `post.list` procedure. With a fresh database, it should stay calm and render a deliberate + empty state. +
++ The route is valid, but there is no database record for this post ID. That is expected for an unknown link. +
+ + Back to posts + +Comments
+{comment.body}
+Protected write route
++ Reading stays public, but posting a comment requires a Better Auth session. +
+ + Sign in to comment + +