python fastapi scalable api cursorrules prompt fil
via PatrickJS/awesome-cursorrules
FastAPI scalable API development with TypeScript/React frontend and PostgreSQL backend.
What is python fastapi scalable api cursorrules prompt fil?
Cursor rules for building production-ready FastAPI applications with React frontends. Covers project structure, code style, performance optimization, and deployment patterns using Docker and modern tooling.
- Enforce functional/declarative Python and TypeScript patterns with proper type hints and Pydantic validation
- Structure FastAPI backends with async operations, dependency injection, and RESTful design; React frontends with Tailwind CSS and Shadcn UI
- Implement performance optimization via caching, lazy loading, server-side rendering, and asynchronous I/O
- Configure Docker containerization, PostgreSQL integration, and CORS for local development
- Apply naming conventions (Python snake_case, TypeScript kebab-case) and error handling with early returns and guard clauses
Applies to
File patterns this rule matches.
Rule definition (reference)
Source of truth, from the repository.
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.
Related rules
Senior full-stack TypeScript, React, Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.
Quantitative factor research skills for designing, evaluating, and mining alpha factors in equities markets.
Android development with Jetpack Compose, clean architecture, and Material Design 3.
Angular development with Novo Elements UI library using standalone components.
Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.
Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.