Rust Leptos SSR Cursor rules template for Cargo | Cursor Rules Template
Cursor rules template for Rust Leptos SSR with Cargo. This template configures Cursor AI to guide safe AI-assisted development, focusing on server rendering, JWT auth, and SQLx data access.
Target User
Rust/Leptos SSR developers
Use Cases
- Configure Cursor AI rules for a Rust Leptos SSR server
- Enable safe AI-assisted coding in Cargo-based projects
- Maintain consistent architecture, security, and testing for SSR Rust apps
Markdown Template
Rust Leptos SSR Cursor rules template for Cargo | Cursor Rules Template
// Cursor rules configuration for Rust Leptos SSR with Cargo
cursorrules {
// Framework Role & Context
frameworkRole: "Cursor AI acts as a senior Rust Leptos SSR engineer guiding safe AI-assisted development. You operate in a Cargo-based server-rendered web app with a WASM client, SQLx data access, and JWT-based auth. Maintain strict boundaries between server and client code.",
context: "Rust, Leptos, SSR, Cargo, WASM client, SQLx, JWT, rustfmt, clippy, and CI/CD. Focus on secure defaults, explicit APIs, and clear module ownership.",
// Code Style and Style Guides
codeStyle: "rustfmt for formatting; clippy with -D warnings; idiomatic Rust; avoid unsafe blocks unless documented; consistent module layout.",
// Architecture & Directory Rules
architecture: {
root: "/",
serverDir: "src/server",
clientDir: "src/client",
sharedDir: "src/shared",
dbDir: "src/db",
routesDir: "src/routes",
testsDir: "tests"
},
// Authentication & Security Rules
auth: {
jwt: true,
cookies_secure: true,
http_only: true,
csrf_protect: true
},
// Database and ORM patterns
database: {
orm: "sqlx",
migrations: "sqlx migrate run",
poolSize: 15,
patterns: ["use prepared statements", "parameterized queries", "avoid string-concat SQL"]
},
// Testing & Linting Workflows
testing: {
unit: true,
integration: true,
endToEnd: false,
ci: "github-actions",
commands: ["cargo test -- --nocapture", "cargo fmt -- --check", "cargo clippy -- -D warnings"]
},
// Prohibited Actions and Anti-patterns for the AI
antiPatterns: [
"Do not use unsafe Rust blocks without explicit justification and code review.",
"Do not bypass wasm-bindgen conventions or create unsafe FFI surfaces.",
"Do not construct SQL via string concatenation; always use prepared statements.",
"Do not mix server and client secrets; avoid leaking credentials in code.",
"Do not bypass type-safe boundaries between server, routes, and data access layers."
]
}Overview
This Cursor rules configuration defines how Cursor AI should assist in building a Rust Leptos SSR (Server-Side Rendering) stack managed by Cargo. It establishes role, context, stack-specific constraints, and safe AI guidance for architecture, security, testing, and deployment. The goal is a copyable, production-ready .cursorrules block that developers can paste into their project root to align Cursor AI behavior with this stack.
Direct answer: Paste the code block in the Copyable .cursorrules Configuration section to enable Cursor AI to operate under Rust Leptos SSR constraints, powered by Cargo, SQLx for data access, and JWT-based auth in a secure, testable environment.
When to Use These Cursor Rules
- Starting a Rust Leptos SSR project and enabling Cursor AI to guide development.
- Enforcing architecture boundaries between server, client, and shared code in a SSR app.
- Integrating SQLx for safe DB access and ensuring prepared statements usage.
- Setting up authentication patterns (JWT, cookies) and session handling securely.
- Automating linting and testing workflows in CI for a Cargo-based project.
Copyable .cursorrules Configuration
// Cursor rules configuration for Rust Leptos SSR with Cargo
cursorrules {
// Framework Role & Context
frameworkRole: "Cursor AI acts as a senior Rust Leptos SSR engineer guiding safe AI-assisted development. You operate in a Cargo-based server-rendered web app with a WASM client, SQLx data access, and JWT-based auth. Maintain strict boundaries between server and client code.",
context: "Rust, Leptos, SSR, Cargo, WASM client, SQLx, JWT, rustfmt, clippy, and CI/CD. Focus on secure defaults, explicit APIs, and clear module ownership.",
// Code Style and Style Guides
codeStyle: "rustfmt for formatting; clippy with -D warnings; idiomatic Rust; avoid unsafe blocks unless documented; consistent module layout.",
// Architecture & Directory Rules
architecture: {
root: "/",
serverDir: "src/server",
clientDir: "src/client",
sharedDir: "src/shared",
dbDir: "src/db",
routesDir: "src/routes",
testsDir: "tests"
},
// Authentication & Security Rules
auth: {
jwt: true,
cookies_secure: true,
http_only: true,
csrf_protect: true
},
// Database and ORM patterns
database: {
orm: "sqlx",
migrations: "sqlx migrate run",
poolSize: 15,
patterns: ["use prepared statements", "parameterized queries", "avoid string-concat SQL"]
},
// Testing & Linting Workflows
testing: {
unit: true,
integration: true,
endToEnd: false,
ci: "github-actions",
commands: ["cargo test -- --nocapture", "cargo fmt -- --check", "cargo clippy -- -D warnings"]
},
// Prohibited Actions and Anti-patterns for the AI
antiPatterns: [
"Do not use unsafe Rust blocks without explicit justification and code review.",
"Do not bypass wasm-bindgen conventions or create unsafe FFI surfaces.",
"Do not construct SQL via string concatenation; always use prepared statements.",
"Do not mix server and client secrets; avoid leaking credentials in code.",
"Do not bypass type-safe boundaries between server, routes, and data access layers."
]
}
Recommended Project Structure
/project-root
├─ src
│ ├─ server
│ │ ├─ main.rs
│ │ ├─ routes
│ │ │ └─ mod.rs
│ │ ├─ handlers
│ │ │ └─ mod.rs
│ │ └─ middleware
│ │ └─ mod.rs
│ ├─ client
│ │ ├─ index.html
│ │ └─ app.ts
│ ├─ shared
│ │ └─ lib.rs
│ ├─ db
│ │ ├─ mod.rs
│ │ └─ models.rs
│ └─ routes
│ └─ mod.rs
├─ tests
│ └─ integration
│ └─ mod.rs
├─ Cargo.toml
└─ README.md
Core Engineering Principles
- Clear separation of concerns between server, client, and data access layers.
- Rule-driven AI assistance with explicit architecture and security constraints.
- Type-safe interfaces and minimal unsafe usage with rigorous reviews.
- Automated testing and linting integrated into CI/CD pipelines.
- Immutable configuration and explicit dependency versions to reduce drift.
Code Construction Rules
- All DB access must use parameterized queries via SQLx; never concatenate SQL.
- Server routes must be clearly separated from client code; shared types must live in src/shared.
- Authentication must use JWTs stored in httpOnly, secure cookies; implement CSRF protection.
- Rust code must follow rustfmt formatting and pass clippy with -D warnings.
- All crates should compile with a stable toolchain; pin to exact versions in Cargo.lock for reproducibility.
- Cursor AI responses should not infer privileged secrets or bypass auth checks.
Security and Production Rules
- Enable CSRF protection for state-changing endpoints and validate JWTs on protected routes.
- Use secure, httpOnly cookies with SameSite policies appropriate to your app.
- Do not expose DB credentials or API keys in frontend bundles; use server-side vaults and environment separation.
- Restrict WASM module imports and apply strict content security policies for client code.
- Audit dependencies regularly; prefer crates with active maintenance and known security records.
Testing Checklist
- Unit tests for server handlers and shared types.
- Integration tests for routes, auth flows, and DB interactions via SQLx.
- Smoke tests in CI to ensure build, test, and lint succeed on push and PRs.
- Run cargo test, cargo fmt, and cargo clippy as part of PR checks.
- Verify WASM client compatibility and end-to-end rendering with SSR pages.
Common Mistakes to Avoid
- Using unsafe code blocks without documented justification and review.
- Mixing server and client secrets or bypassing secure storage patterns.
- Building SQL strings with concatenation; never interpolate user input directly.
- Neglecting to validate JWTs or invalidate stale sessions on logout.
- Overloading routes with business logic that should reside in domain services.
Related implementation resources: AI Use Case for Geotechnical Firms Using Core Sample Records To Predict Soil Stability for Heavy Foundation Building and Why AI-assisted product development needs repeatable, production-grade systems.
FAQ
What is this Cursor rules template for Rust Leptos SSR with Cargo?
This Cursor rules template defines how Cursor AI should operate in a Rust Leptos SSR stack managed by Cargo. It presets roles, context, patterns, and anti-patterns to guide AI-assisted development, secure coding practices, and testable architecture.
What should be included in the Framework Role & Context?
The role informs Cursor AI that it is a senior Rust Leptos SSR engineer guiding safe AI-powered decisions. Context covers SSR, WASM client, Cargo, SQLx, and JWT-based auth, emphasizing clear module ownership and secure defaults.
How do I structure Architecture & Directory Rules for this stack?
Define a clear boundary: server code under src/server, client under src/client, shared types under src/shared, database access under src/db, and tests under tests. Keep routes and handlers modular and avoid cross-layer leakage of concerns.
What testing and linting workflows are recommended?
Adopt cargo test for unit/integration tests, cargo fmt for formatting checks, and cargo clippy for linting with -D warnings. Integrate into CI (GitHub Actions) and ensure tests cover server routes, data access, and SSR rendering.
What common mistakes should I avoid?
Avoid unsafe blocks without justification, concatenated SQL, leaking credentials, and mixing server/client concerns. Ensure proper JWT handling, CSRF protection, and consistent module boundaries to prevent architecture drift.