Cursor rule
Python Fastapi Scalable Api Cursorrules Prompt Fil
Cursor rules for Python FastAPI development with scalable API integration.
You are an expert in Python, FastAPI, scalable API development, TypeScript, React, Tailwind, and Shadcn UI.
Key Principles
- Write concise, technical responses with accurate examples in both Python and TypeScript.
- Use functional and declarative programming patterns; avoid classes unless absolutely necessary.
- Prefer iteration and modularization over code duplication.
- Use descriptive variable names with auxiliary verbs (e.g.,
is_active,has_permission,isLoading,hasError). - Follow proper naming conventions:
- For Python: use lowercase with underscores (e.g.,
routers/user_routes.py). - For TypeScript: use lowercase with dashes for directories (e.g.,
components/auth-wizard).
- For Python: use lowercase with underscores (e.g.,
Project Structure
-
Frontend:
- Language: TypeScript
- Framework: React
- UI Library: Tailwind CSS, Shadcn UI
- Build Tool: Vite
- Directory Structure:
frontend/src/: Main source codefrontend/src/index.html: Main HTML file- Configuration Files:
vite.config.tstsconfig.jsontailwind.config.jspostcss.config.js
- Docker Files:
DockerfileDockerfile.dev
-
Backend:
- Language: Python
- Framework: FastAPI
- Database: PostgreSQL
- Directory Structure:
backend/src/: Main source codebackend/tests/: Testsdocument-processor/: Document processing utilities- Environment Configuration:
.env/.env.example: Environment variables
- Database Configuration:
alembic.iniddialog.db: SQLite database for local development
- Docker Files:
DockerfileDockerfile.dev
Code Style and Structure
Backend (Python/FastAPI):
- Use
deffor pure functions andasync deffor asynchronous operations. - Type Hints: Use Python type hints for all function signatures. Prefer Pydantic models for input validation.
- File Structure: Follow clear separation with directories for routes, utilities, static content, and models/schemas.
- RORO Pattern: Use the "Receive an Object, Return an Object" pattern.
- Error Handling:
- Handle errors at the beginning of functions with early returns.
- Use guard clauses and avoid deeply nested if statements.
- Implement proper logging and custom error types.
Frontend (TypeScript/React):
- TypeScript Usage: Use TypeScript for all code. Prefer interfaces over types. Avoid enums; use maps instead.
- Functional Components: Write all components as functional components with proper TypeScript interfaces.
- UI and Styling: Implement responsive design using Tailwind CSS with Shadcn UI, adopting a mobile-first approach.
- Performance:
- Minimize
use client,useEffect, andsetStatehooks. Favor server-side rendering where possible. - Wrap client components in
Suspensewith fallback for improved performance.
- Minimize
Performance Optimization
Backend:
- Asynchronous Operations: Minimize blocking I/O operations using async functions.
- Caching: Implement caching strategies for frequently accessed data using Redis or in-memory stores.
- Lazy Loading: Use lazy loading techniques for large datasets and API responses.
Frontend:
- React Components: Favor server-side rendering and avoid heavy client-side rendering where possible.
- Dynamic Loading: Implement dynamic loading for non-critical components and optimize image loading using WebP format with lazy loading.
Project Conventions
Backend:
- Follow RESTful API design principles.
- Rely on FastAPI’s dependency injection system for managing state and shared resources.
- Use SQLAlchemy 2.0 for ORM features, if applicable.
- Ensure CORS is properly configured for local development.
- No authentication or authorization is required for users to access the platform.
Frontend:
- Optimize Web Vitals (LCP, CLS, FID).
- Limit
use clienthooks to small, specific components for Web API access. - Use Docker for containerization and ensure easy deployment.
Testing and Deployment
- Implement unit tests for both frontend and backend.
- Use Docker and docker compose for orchestration in both development and production environments. Avoid using the obsolete
docker-composecommand. - Ensure proper input validation, sanitization, and error handling throughout the application.
More Backend & Full-Stack rules
Frequently asked questions
What is the Python Fastapi Scalable Api Cursorrules Prompt Fil Cursor rule?
Cursor rules for Python FastAPI development with scalable API integration. It is a Backend & Full-Stack rule, stored as python-fastapi-scalable-api-cursorrules-prompt-fil.mdc.
How do I use the Python Fastapi Scalable Api Cursorrules Prompt Fil rule in Cursor?
Copy the rule from this page and save it as python-fastapi-scalable-api-cursorrules-prompt-fil.mdc in your project's .cursor/rules folder, or paste it into Cursor's project rules settings.