-db`) directly in the Fly.io dashboard.
diff --git a/template/app/.cursor/rules/possible-solutions-thinking.mdc b/template/app/.cursor/rules/possible-solutions-thinking.mdc
new file mode 100644
index 00000000..37217b9c
--- /dev/null
+++ b/template/app/.cursor/rules/possible-solutions-thinking.mdc
@@ -0,0 +1,6 @@
+---
+description:
+globs:
+alwaysApply: false
+---
+Think about a few possible scenarios or solutions to this problem. Present the one you think is best suited to solve this issue and provide rationale for why you think it's the best one.
diff --git a/template/app/.cursor/rules/project-conventions.mdc b/template/app/.cursor/rules/project-conventions.mdc
new file mode 100644
index 00000000..c8056d38
--- /dev/null
+++ b/template/app/.cursor/rules/project-conventions.mdc
@@ -0,0 +1,84 @@
+---
+description:
+globs:
+alwaysApply: true
+---
+# 2. Project Conventions and Rules
+
+This document outlines the specific conventions, file structures, and general rules for this Wasp project.
+
+## Quick Reference
+
+### Common Patterns
+
+- Define app structure in the Wasp config file: [main.wasp](mdc:main.wasp) or `main.wasp.ts`.
+- Define data models ("entities") in [schema.prisma](mdc:schema.prisma).
+- Group feature code in `src/features/{featureName}` directories.
+- Group feature config definitions (e.g. routes, pages, operations, etc.) into sections within the Wasp config file ([main.wasp](mdc:main.wasp)) using the `//#region` directive:
+ ```wasp
+ // Example in @main.wasp
+ // #region {FeatureName}
+ // ... feature-specific declarations ...
+ // #endregion
+ ```
+- Use Wasp operations (queries/actions) for client-server communication (See [database-operations.mdc](mdc:template/app/.cursor/rules/database-operations.mdc)).
+- **Wasp Imports:** Import from `wasp/...` not `@wasp/...` in `.ts`/`.tsx` files.
+
+### Common Issues & Import Rules
+
+- **Wasp Imports in `.ts`/`.tsx`:** Always use the `wasp/...` prefix.
+ - ✅ `import { Task } from 'wasp/entities'`
+ - ✅ `import type { GetTasks } from 'wasp/server/operations'`
+ - ✅ `import { getTasks, useQuery } from 'wasp/client/operations'`
+ - ❌ `import { ... } from '@wasp/...'`
+ - ❌ `import { ... } from '@src/features/...'` (Use relative paths for non-Wasp imports within `src`)
+ - If you see "Cannot find module 'wasp/...'": Double-check the import path prefix.
+- **Wasp Config Imports in [main.wasp](mdc:main.wasp) :** Imports of your code *must* start with `@src/`.
+ - ✅ `component: import { LoginPage } from "@src/features/auth/LoginPage.tsx"`
+ - ❌ `component: import { LoginPage } from "../src/features/auth/LoginPage.tsx"`
+ - ❌ `component: import { LoginPage } from "client/pages/auth/LoginPage.tsx"`
+- **General Imports in `.ts`/`.tsx`:** Use relative paths for imports within the `src/` directory. Avoid using the `@src/` alias directly in `.ts`/`.tsx` files.
+ - If you see "Cannot find module '@src/...'": Use a relative path instead.
+- **Prisma Enum *Value* Imports:** Import directly from `@prisma/client`. See [database-operations.mdc](mdc:template/app/.cursor/rules/database-operations.mdc).
+- **Wasp Actions Client-Side:** Call actions directly using `async/await`. DO NOT USE the `useAction` hook unless optimistic updates are needed. See [database-operations.mdc](mdc:template/app/.cursor/rules/database-operations.mdc).
+ - ✅ `import { deleteTask } from 'wasp/client/operations'; await deleteTask({ taskId });`
+- Root Component (`src/App.tsx` or similar):
+ - Ensure the root component defined in @main.wasp (usually via `app.client.rootComponent`) renders the `` component from `react-router-dom` to display nested page content.
+ ```tsx
+ // Example Root Component
+ import React from 'react';
+ import { Outlet } from 'react-router-dom';
+ import Header from './Header'; // Example shared component
+
+ function App() {
+ return (
+
+
+
+ {/* Outlet renders the content of the matched route/page */}
+
+
+
+ );
+ }
+ export default App;
+ ```
+
+## Rules
+
+### General Rules
+
+- Always reference the Wasp config file ([main.wasp](mdc:main.wasp) or `main.wasp.ts`) as your source of truth for the app's configuration and structure.
+- Group feature config definitions in the Wasp config file using `//#region` (as noted above).
+- Group feature code into feature directories (e.g. `src/features/transactions`).
+- Use the latest Wasp version, as defined in the Wasp configl file.
+- Combine Wasp operations (queries and actions) into an `operations.ts` file within the feature directory (e.g., `src/features/transactions/operations.ts`).
+- Always use TypeScript for Wasp code (`.ts`/`.tsx`).
+
+### Wasp Dependencies
+
+- Avoid adding dependencies directly to the [main.wasp](mdc:main.wasp) config file.
+- Install dependencies via `npm install` instead. This updates [package.json](mdc:package.json) and [package-lock.json](mdc:package-lock.json)
+
+### Referencing Documentation
+- Make sure the user has added the applicable LLM-optimized docs, available in [wasp-overview.mdc](mdc:template/app/.cursor/rules/wasp-overview.mdc), in the chat context or settings when using AI-assisted coding tools.
diff --git a/template/app/.cursor/rules/wasp-overview.mdc b/template/app/.cursor/rules/wasp-overview.mdc
new file mode 100644
index 00000000..7dc2e934
--- /dev/null
+++ b/template/app/.cursor/rules/wasp-overview.mdc
@@ -0,0 +1,56 @@
+---
+description:
+globs:
+alwaysApply: true
+---
+# 1. Wasp Overview and Core Concepts
+
+This document covers the fundamental concepts of the Wasp framework and the basic project structure.
+
+## Background Information
+
+### What is Wasp
+
+- Wasp (Web Application SPecification language) is a declarative, statically typed, domain-specific language (DSL) for building modern, full-stack web applications.
+- Unlike traditional frameworks that are sets of libraries, Wasp is a simple programming language that understands web app concepts and generates code for you.
+- Wasp integrates with React (frontend), Node.js (backend), and Prisma (database ORM) to create full-stack web applications with minimal boilerplate.
+- The Wasp compiler reads your declarative configuration in the config file ([main.wasp](mdc:main.wasp) or `main.wasp.ts`) and generates all the necessary code for a working web application.
+- For the most up-to-date and comprehensive information, always refer to the Wasp Documenation (linked below).
+
+### Wasp Project Structure
+
+- A Wasp project consists of a [main.wasp](mdc:main.wasp) (or `main.wasp.ts`) file in the root directory that defines the app's configuration.
+- The [schema.prisma](mdc:schema.prisma) file in the root directory defines your database models ("entities").
+- Your custom code lives in the `src/` directory (e.g. `src/features/`), which contains client-side and server-side code.
+- Wasp generates additional code that connects everything together when you run your app.
+
+### The Wasp Config File
+
+- The main Wasp Config File ([main.wasp](mdc:main.wasp) or `main.wasp.ts`) is the central configuration file that defines your application structure.
+- It contains declarations for app settings, pages, routes, authentication, database entities, and operations (queries and actions).
+- Example structure:
+ ```main.wasp
+ app myApp {
+ wasp: {
+ version: "^0.16.0" // Check @main.wasp for the actual version
+ },
+ title: "My App",
+ }
+
+ route HomeRoute { path: "/", to: HomePage }
+ page HomePage {
+ component: import { HomePage } from "@src/client/pages/HomePage.tsx" // Example import path
+ }
+
+ // Operations are defined here, see 3-database-operations.mdc
+ query getTasks {
+ fn: import { getTasks } from "@src/server/queries.js",
+ entities: [Task]
+ }
+ ```
+
+### Wasp Documentation
+More info on all of Wasp's features can be found in the Wasp documentation (NOTE: You can follow these links, instruct the user to add these docs to Cursor's settings, or have the user manually include them in the chat context):
+- Links to Wasp documentation sections (LLM-optimized): https://wasp.sh/llms.txt
+- Complete Wasp documentation (LLM-optimized): https://wasp.sh/llms-full.txt
+- Wasp Docs homepage (human-readable): https://wasp.sh/docs
diff --git a/template/app/.cursorrules b/template/app/.cursorrules
deleted file mode 100644
index eee00945..00000000
--- a/template/app/.cursorrules
+++ /dev/null
@@ -1,52 +0,0 @@
-// Wasp Import Rules
-- Path to Wasp functions within .ts files must come from 'wasp', not '@wasp'!
- ✓ import { Task } from 'wasp/entities'
- ✓ import type { GetTasks } from 'wasp/server/operations'
- ✓ import { getTasks, useQuery } from 'wasp/client/operations'
- ✗ import { getTasks, useQuery } from '@wasp/...'
- ✗ import { getTasks, useQuery } from '@src/feature/operations.ts'
-
-- Path to external imports within 'main.wasp' must start with "@src/"!
- ✓ component: import { LoginPage } from "@src/client/pages/auth/LoginPage.tsx"
- ✗ component: import { LoginPage } from "@client/pages/auth/LoginPage.tsx"
-- In the client's root component, use the Outlet component rather than children
- ✓ import { Outlet } from 'react-router-dom';
-
-// Wasp DB Schema Rules
-- Add databse models to the 'schema.prisma' file, NOT to 'main.wasp' as "entities"
-- Do NOT add a db.system nor a db.prisma property to 'main.wasp'. This is taken care of in 'schema.prisma'
-- Keep the 'schema.prisma' within the root of the project
-
-// Wasp Operations
-- Types are generated automatically from the function definition in 'main.wasp',
- ✓ import type { GetTimeLogs, CreateTimeLog, UpdateTimeLog } from 'wasp/server/operations'
-- Wasp also generates entity types based on the models in 'schema.prisma'
- ✓ import type { Project, TimeLog } from 'wasp/entities'
-- Make sure that all Entities that should be included in the operations context are defined in its definition in 'main.wasp'
- ✓ action createTimeLog { fn: import { createTimeLog } from "@src/server/timeLogs/operations.js", entities: [TimeLog, Project] }
-
-// Wasp Auth
-- When creating Auth pages, use the LoginForm and SignupForm components provided by Wasp
- ✓ import { LoginForm } from 'wasp/client/auth'
-- Wasp takes care of creating the user's auth model id, username, and password for a user, so a user model DOES NOT need these properties
- ✓ model User { id Int @id @default(autoincrement()) }
-
-// Wasp Dependencies
-- Do NOT add dependencies to 'main.wasp'
-- Install dependencies via 'npm install' instead
-
-// Wasp
-- Use the latest Wasp version, ^0.16.0
-- Always use typescript for Wasp code.
-- When creating Wasp operations (queries and actions) combine them into an operations.ts file within the feature directory rather than into separate queries.ts and actions.ts files
-
-// React
-- Use relative imports for other react components
-- If importing a function from an operations file, defer to the wasp import rules
-
-// CSS
-- Use Tailwind CSS for styling.
-- Do not use inline styles unless necessary
-
-// General
-- Use single quotes
\ No newline at end of file