{"id":27008791,"url":"https://github.com/vintasoftware/nextjs-fastapi-template","last_synced_at":"2025-04-04T09:15:52.996Z","repository":{"id":265521898,"uuid":"854857615","full_name":"vintasoftware/nextjs-fastapi-template","owner":"vintasoftware","description":"State of the art project template that integrates Next.js, Zod, FastAPI for full-stack TypeScript + Python projects.","archived":false,"fork":false,"pushed_at":"2025-04-03T12:58:41.000Z","size":1645,"stargazers_count":88,"open_issues_count":4,"forks_count":20,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-03T13:42:28.504Z","etag":null,"topics":["fastapi","nextjs","python","typescript","zod"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vintasoftware.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-09T22:22:23.000Z","updated_at":"2025-04-03T11:33:49.000Z","dependencies_parsed_at":"2024-11-29T19:19:07.196Z","dependency_job_id":"e22ead28-4817-4f3b-bfe4-36c286abf8af","html_url":"https://github.com/vintasoftware/nextjs-fastapi-template","commit_stats":null,"previous_names":["vintasoftware/nextjs-fastapi-template"],"tags_count":2,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fnextjs-fastapi-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fnextjs-fastapi-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fnextjs-fastapi-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fnextjs-fastapi-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vintasoftware","download_url":"https://codeload.github.com/vintasoftware/nextjs-fastapi-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247149510,"owners_count":20891954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","nextjs","python","typescript","zod"],"created_at":"2025-04-04T09:15:52.484Z","updated_at":"2025-04-04T09:15:52.988Z","avatar_url":"https://github.com/vintasoftware.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.vintasoftware.com/blog/next-js-fastapi-template\"\u003e\u003cimg src=\"https://cdn.prod.website-files.com/64b9f7763232fd7832edb089/67bcfe16c484e4960dcbf7fe_nextjs_and_fast_api_thumb.webp\" alt=\"Next.js FastAPI Template\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cem\u003eNext.js FastAPI Template: Python + Modern TypeScript stack with Zod validation.\u003c/em\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/vintasoftware/nextjs-fastapi-template/actions/workflows/ci.yml\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://github.com/vintasoftware/nextjs-fastapi-template/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://coveralls.io/github/vintasoftware/nextjs-fastapi-template\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://coveralls.io/repos/github/vintasoftware/nextjs-fastapi-template/badge.svg\" alt=\"Coverage\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n---\n**Source Code**: \u003ca href=\"https://github.com/vintasoftware/nextjs-fastapi-template\" target=\"_blank\"\u003ehttps://github.com/vintasoftware/nextjs-fastapi-template\u003c/a\u003e\n\n---\n\n# Next.js FastAPI Template\nIntroducing the Next.js FastAPI Template: A cutting-edge foundation for modern full-stack development that seamlessly integrates Next.js with FastAPI. This template combines Python's backend power with TypeScript's frontend, enhanced by Zod's robust type validation. Perfect for developers seeking a production-ready architecture that balances performance, type safety, and developer experience in one cohesive package.\n\n## Table of Contents\n* [About](#about)\n* [Production-Ready Authentication \u0026 Dashboard](#production-ready-authentication-and-dashboard)\n* [Getting Started with This Template](#getting-started-with-this-template)\n* [Setup](#local-setup)\n  * [Installing Required Tools](#installing-required-tools)\n    * [1. uv](#1-uv)\n    * [2. Node.js, npm and pnpm](#2-nodejsm-npm-and-pnpm)\n    * [3. Docker](#3-docker)\n    * [4. Docker Compose](#4-docker-compose)\n  * [Setting Up Environment Variables](#setting-up-environment-variables)\n  * [Running the Database](#running-the-database)\n  * [Build the project (without Docker)](#build-the-project-without-docker)\n    * [Backend](#backend)\n    * [Frontend](#frontend)\n  * [Build the project (with Docker)](#build-the-project-with-docker)\n    * [Backend](#backend)\n    * [Frontend](#frontend)\n* [Running the Application](#running-the-application)\n* [Hot Reload on development](#hot-reload-on-development)\n  * [Manual Execution of Hot Reload Commands](#manual-execution-of-hot-reload-commands)\n* [Testing](#testing)\n* [Email Localhost Setup](#email-localhost-setup)\n* [Pre-Commit Setup](#pre-commit-setup)\n  * [Installing and Activating Pre-Commit Hooks](#installing-and-activating-pre-commit-hooks)\n  * [Running Pre-Commit Checks](#running-pre-commit-checks)\n  * [Updating Pre-Commit Hooks](#updating-pre-commit-hooks)\n* [Alembic Database Migrations](#alembic-database-migrations)\n* [GitHub Actions](#github-actions)\n  * [Secrets Configuration](#secrets-configuration)\n* [Production Deployment](#production-deployment)\n* [CI (GitHub Actions) Setup for Production Deployment](#ci-github-actions-setup-for-production-deployment)\n* [Post-Deployment Configuration](#post-deployment-configuration)\n* [Makefile](#makefile)\n* [Important Considerations](#important-considerations)\n* [Contributing](#contributing)\n* [Share your project!](#share-your-project)\n* [Commercial Support](#commercial-support)\n\n## About\nThis template streamlines building APIs with [FastAPI](https://fastapi.tiangolo.com/) and dynamic frontends with [Next.js](https://nextjs.org/). It integrates the backend and frontend using [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) to generate a type-safe client, with automated watchers to keep the OpenAPI schema and client updated, ensuring a smooth and synchronized development workflow.  \n\n- [Next.js](https://nextjs.org/): Fast, SEO-friendly frontend framework  \n- [FastAPI](https://fastapi.tiangolo.com/): High-performance Python backend  \n- [SQLAlchemy](https://www.sqlalchemy.org/): Powerful Python SQL toolkit and ORM\n- [PostgreSQL](https://www.postgresql.org/): Advanced open-source relational database\n- [Pydantic](https://docs.pydantic.dev/): Data validation and settings management using Python type annotations\n- [Zod](https://zod.dev/) + [TypeScript](https://www.typescriptlang.org/): End-to-end type safety and schema validation  \n- [fastapi-users](https://fastapi-users.github.io/fastapi-users/): Complete authentication system with:\n  - Secure password hashing by default\n  - JWT (JSON Web Token) authentication\n  - Email-based password recovery\n- [Shadcn/ui](https://ui.shadcn.com/): Beautiful and customizable React components\n- [OpenAPI-fetch](https://github.com/Hey-AI/openapi-fetch): Fully typed client generation from OpenAPI schema  \n- [fastapi-mail](https://sabuhish.github.io/fastapi-mail/): Efficient email handling for FastAPI applications\n- [uv](https://docs.astral.sh/uv/): An extremely fast Python package and project manager\n- [Pytest](https://docs.pytest.org/): Powerful Python testing framework\n- Code Quality Tools:\n  - [Ruff](https://github.com/astral-sh/ruff): Fast Python linter\n  - [ESLint](https://eslint.org/): JavaScript/TypeScript code quality\n- Hot reload watchers:  \n  - Backend: [Watchdog](https://github.com/gorakhargosh/watchdog) for monitoring file changes  \n  - Frontend: [Chokidar](https://github.com/paulmillr/chokidar) for live updates  \n- [Docker](https://www.docker.com/) and [Docker Compose](https://docs.docker.com/compose/): Consistent environments for development and production\n- [MailHog](https://github.com/mailhog/MailHog): Email server for development\n- [Pre-commit hooks](https://pre-commit.com/): Enforce code quality with automated checks  \n- [OpenAPI JSON schema](https://swagger.io/specification/): Centralized API documentation and client generation  \n\nWith this setup, you'll save time and maintain a seamless connection between your backend and frontend, boosting productivity and reliability.\n\n## Production-Ready Authentication \u0026 Dashboard Features\nThis template comes with a pre-configured authentication system and a simple dashboard interface, allowing you to start building your application with user management features immediately.\n\n## Getting Started with This Template\n\nTo use this template for your own project:\n\n1. Create a new repository using this template by following GitHub's [template repository guide](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template#creating-a-repository-from-a-template)\n2. Clone your new repository and navigate to it: `cd your-project-name`\n3. Update this README:\n   - Change the project name in the first line\n   - Remove this \"Getting Started with This Template\" section\n4. Make sure you have Python 3.12 installed\n\nOnce completed, proceed to the [Setup](#setup) section below.\n\n## Setup\n\n### Installing Required Tools\n\n#### 1. uv\nuv is used to manage Python dependencies in the backend. Install uv by following the [official installation guide](https://docs.astral.sh/uv/getting-started/installation/).\n\n#### 2. Node.js, npm and pnpm\nTo run the frontend, ensure Node.js and npm are installed. Follow the [Node.js installation guide](https://nodejs.org/en/download/).\nAfter that, install pnpm by running:\n```bash\nnpm install -g pnpm\n```\n\n#### 3. Docker\nDocker is needed to run the project in a containerized environment. Follow the appropriate installation guide:\n\n- [Install Docker for Mac](https://docs.docker.com/docker-for-mac/install/)\n- [Install Docker for Windows](https://docs.docker.com/docker-for-windows/install/)\n- [Get Docker CE for Linux](https://docs.docker.com/install/linux/docker-ce/)\n\n#### 4. Docker Compose\nEnsure `docker-compose` is installed. Refer to the [Docker Compose installation guide](https://docs.docker.com/compose/install/).\n\n### Setting Up Environment Variables\n\n**Backend (`fastapi_backend/.env`):**\nCopy the `.env.example` files to `.env` and update the variables with your own values.\n   ```bash\n   cd fastapi_backend \u0026\u0026 cp .env.example .env\n   ```\n1. You will only need to update the secret keys. You can use the following command to generate a new secret key:\n   ```bash\n   python3 -c \"import secrets; print(secrets.token_hex(32))\"\n   ```\n2. The DATABASE, MAIL, OPENAPI, CORS, and FRONTEND_URL settings are ready to use locally.\n3. The DATABASE and MAIL settings are already configured in Docker Compose if you're using Docker.\n4. The OPENAPI_URL setting is commented out. Uncommenting it will hide the /docs and openapi.json URLs, which is ideal for production.\n5. You can check the .env.example file for more information about the variables.\n\n**Frontend (`nextjs-frontend/.env.local`):**\nCopy the `.env.example` files to `.env`. These values are unlikely to change, so you can leave them as they are.\n   ```bash\n   cd nextjs-frontend \u0026\u0026 cp .env.example .env\n   ```\n\n### Running the Database\n1. Use Docker to run the database to avoid local installation issues. Build and start the database container:\n   ```bash\n   docker compose build db\n   docker compose up -d db\n   ```\n2. Run the following command to apply database migrations:\n   ```bash\n   make docker-migrate-db\n   ```\n\n### Build the Project (without Docker):\nTo set the project environment locally, use the following commands:\n\n#### Backend\n\n1. Navigate to the `fastapi_backend` directory and run:\n   ```bash\n   uv sync\n   ```\n\n#### Frontend\n1. Navigate to the `nextjs-frontend` directory and run:\n   ```bash\n   pnpm install\n   ```\n\n### Build the Project (with Docker):\n\n1. Build the backend and frontend containers:\n   ```bash\n   make docker-build\n   ```\n\n## Running the Application\n\nIf you are not using Docker:\n\n1. Start the FastAPI server:\n   ```bash\n   make start-backend\n   ```\n\n2. Start the Next.js development server:\n   ```bash\n   make start-frontend\n   ```\n\nIf you are using Docker:\n1. Start the FastAPI server container:\n   ```bash\n   make docker-start-backend\n   ```\n2. Start the Next.js development server container:\n   ```bash\n   make docker-start-frontend\n   ```\n\n- **Backend**: Access the API at `http://localhost:8000`.\n- **Frontend**: Access the web application at `http://localhost:3000`.\n\n### Hot Reload on Development\nThe project includes two hot reloads running the application, one for the backend and one for the frontend. These automatically restart local servers when they detect changes, ensuring that the application is always up to date without needing manual restarts.\n\n- The **backend hot reload** monitors changes to the backend code.\n- The **frontend hot reload** monitors changes to the frontend code and the `openapi.json` schema generated by the backend.\n\n### Manual Execution of Hot Reload Commands\nYou can manually execute the same commands that the hot reloads call when they detect a change:\n\n1. To export the `openapi.json` schema:\n   ```bash\n   cd fastapi_backend \u0026\u0026 uv run python -m commands.generate_openapi_schema\n   ```\n   or using Docker:\n   ```bash\n   docker compose run --rm --no-deps -T backend uv run python -m commands.generate_openapi_schema\n   ```\n\n2. To generate the frontend client:\n   ```bash\n   cd nextjs-frontend \u0026\u0026 npm run generate-client\n   ```\n   or using Docker:\n   ```bash\n   docker compose run --rm --no-deps -T frontend npm run generate-client\n   ```\n\n## Testing\nTo run the tests, you need to run the test database container:\n   ```bash\n   make docker-up-test-db\n   ```\n\nThen run the tests locally:\n   ```bash\n   make test-backend\n   make test-frontend\n   ```\n\nOr using Docker:\n   ```bash\n   make docker-test-backend\n   make docker-test-frontend\n   ```\n## Pre-Commit Setup\nTo maintain code quality and consistency, the project includes two separate pre-commit configuration files:\n- `.pre-commit-config.yaml` is used to run pre-commit checks locally.\n- `.pre-commit-config.docker.yaml` is used to run pre-commit checks within Docker.\n\n### Installing and Activating Pre-Commit Hooks\nTo activate pre-commit hooks, run the following commands for each configuration file:\n\n- **For the local configuration file**:\n  ```bash\n  pre-commit install -c .pre-commit-config.yaml\n  ```\n\n- **For the Docker configuration file**:\n  ```bash\n  pre-commit install -c .pre-commit-config.docker.yaml\n  ```\n\n### Localhost Email Server Setup\n\nTo set up the email server locally, you need to start [MailHog](https://github.com/mailhog/MailHog) by running the following command:\n   ```bash\n   make docker-up-mailhog\n   ```\n\n- **Email client**: Access the email at `http://localhost:8025`.\n\n### Running Pre-Commit Checks\nTo manually run the pre-commit checks on all files, use:\n\n```bash\npre-commit run --all-files -c .pre-commit-config.yaml\n```\n\nor\n\n```bash\npre-commit run --all-files -c .pre-commit-config.docker.yaml\n```\n\n### Updating Pre-Commit Hooks\nTo update the hooks to their latest versions, run:\n\n```bash\npre-commit autoupdate\n```\n## Alembic Database Migrations\nIf you need to create a new Database Migration:\n   ```bash\n   make docker-db-schema migration_name=\"add users\"\n   ```\nthen apply the migration to the database:\n   ```bash\n   make docker-migrate-db\n   ```\n\n## GitHub Actions\nThis project has a pre-configured GitHub Actions setup to enable CI/CD. The workflow configuration files are inside the .github/workflows directory. You can customize these workflows to suit your project's needs better.\n\n### Secrets Configuration\nFor the workflows to function correctly, add the secret keys to your GitHub repository's settings. Navigate to Settings \u003e Secrets and variables \u003e Actions and add the following keys:\n```\nDATABASE_URL: The connection string for your primary database.\nTEST_DATABASE_URL: The connection string for your test database.\nACCESS_SECRET_KEY: The secret key for access token generation.\nRESET_PASSWORD_SECRET_KEY: The secret key for reset password functionality.\nVERIFICATION_SECRET_KEY: The secret key for email or user verification.\n```\n\n## Production Deployment\n\n### Overview\n\n Deploying to **Vercel** is supported, with dedicated buttons for the **Frontend** and **Backend** applications. Both require specific configurations during and after deployment to ensure proper functionality.\n\n---\n\n### Frontend Deployment\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvintasoftware%2Fnextjs-fastapi-template%2Ftree%2Fmain%2Fnextjs-frontend\u0026env=API_BASE_URL\u0026envDescription=The%20API_BASE_URL%20is%20the%20backend%20URL%20where%20the%20frontend%20sends%20requests.)\n\n1. **Deploying the Frontend**  \n   - Click the **Frontend** button above to start the deployment process.  \n   - During deployment, you will be prompted to set the `API_BASE_URL`. Use a placeholder value (e.g., `https://`) for now, as this will be updated with the backend URL later.  \n   - Complete the deployment process [here](#post-deployment-configuration).\n\n### Backend Deployment\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvintasoftware%2Fnextjs-fastapi-template%2Ftree%2Fmain%2Ffastapi_backend\u0026env=CORS_ORIGINS,ACCESS_SECRET_KEY,RESET_PASSWORD_SECRET_KEY,VERIFICATION_SECRET_KEY\u0026stores=%5B%7B%22type%22%3A%22postgres%22%7D%5D)\n\n1. **Deploying the Backend**  \n   - Click the **Backend** button above to begin deployment.\n   - First, set up the database. The connection is automatically configured, so follow the steps, and it should work by default.\n   - During the deployment process, you will be prompted to configure the following environment variables:\n\n     - **CORS_ORIGINS**  \n       - Set this to `[\"*\"]` initially to allow all origins. Later, you can update this with the frontend URL.\n\n     - **ACCESS_SECRET_KEY**, **RESET_PASSWORD_SECRET_KEY**, **VERIFICATION_SECRET_KEY**  \n       - During deployment, you can temporarily set these secret keys as plain strings (e.g., `examplekey`). However, you should generate secure keys and update them after the deployment in the **Post-Deployment Configuration** section.\n\n   - Complete the deployment process [here](#post-deployment-configuration).\n\n\n## CI (GitHub Actions) Setup for Production Deployment\n\nWe provide the **prod-backend-deploy.yml** and **prod-frontend-deploy.yml** files to enable continuous integration through Github Actions. To connect them to GitHub, simply move them to the .github/workflows/ directory.\n\nYou can do it with the following commands:\n   ```bash\n    mv prod-backend-deploy.yml .github/workflows/prod-backend-deploy.yml\n    mv prod-frontend-deploy.yml .github/workflows/prod-frontend-deploy.yml\n   ```\n\n### Prerequisites\n1. **Create a Vercel Token**:  \n   - Generate your [Vercel Access Token](https://vercel.com/account/tokens).  \n   - Save the token as `VERCEL_TOKEN` in your GitHub secrets.\n\n2. **Install Vercel CLI**:  \n   ```bash\n   pnpm i -g vercel@latest\n   ```\n3. Authenticate your account.\n    ```bash\n   vercel login\n   ```\n### Database Creation (Required)\n\n   1. **Choosing a Database**\n      - You can use your database hosted on a different service or opt for the [Neon](https://neon.tech/docs/introduction) database, which integrates seamlessly with Vercel.\n\n   2. **Setting Up a Neon Database via Vercel**\n      - In the **Projects dashboard** page on Vercel, navigate to the **Storage** section.  \n      - Select the option to **Create a Database** to provision a Neon database.\n\n   3. **Configuring the Database URL**\n      - After creating the database, retrieve the **Database URL** provided by Neon.  \n      - Include this URL in your **Environment Variables** under `DATABASE_URL`.  \n\n   4. **Migrating the Database**\n      - The database migration will happen automatically during the GitHub action deployment, setting up the necessary tables and schema.\n### Frontend Setup\n\n1. Link the nextjs-frontend Project\n\n2. Navigate to the nextjs-frontend directory and run:\n   ```bash\n   cd nextjs-frontend\n   vercel link\n   ```\n3. Follow the prompts:\n   - Link to existing project? No\n   - Modify settings? No\n\n4. Save Project IDs and Add GitHub Secrets:\n  - Open `nextjs-frontend/.vercel/project.json` and add the following to your GitHub repository secrets:\n    - `projectId` → `VERCEL_PROJECT_ID_FRONTEND`\n    - `orgId` → `VERCEL_ORG_ID`\n\n### Backend Setup\n\n1. Link the fastapi_backend Project\n\n2. Navigate to the fastapi_backend directory and run:\n   ```bash\n   cd fastapi_backend\n   vercel link --local-config=vercel.prod.json\n   ```\n   - We use a specific configuration file to set the --local-config value.\n3. Follow the prompts:\n   - Link to existing project? No\n   - Modify settings? No\n\n4. Save Project IDs and Add GitHub Secrets:\n  - Open `fastapi_backend/.vercel/project.json` and add the following to your GitHub repository secrets:\n    - `projectId` → `VERCEL_PROJECT_ID_BACKEND`\n    - `orgId` → `VERCEL_ORG_ID` (Only in case you haven't added that before)\n\n### Notes\n- Once everything is set up, run `git push`, and the deployment will automatically occur.\n- Please ensure you complete the setup for both the frontend and backend separately.\n- Refer to the [Vercel CLI Documentation](https://vercel.com/docs/cli) for more details.\n- You can find the project_id in the vercel web project settings.\n- You can find the organization_id in the vercel web organization settings.\n\n## **Post-Deployment Configuration**\n\n### Frontend\n   - Navigate to the **Settings** page of the deployed frontend project.  \n   - Access the **Environment Variables** section.  \n   - Update the `API_BASE_URL` variable with the backend URL once the backend deployment is complete.\n\n### Backend\n   - Access the **Settings** page of the deployed backend project.  \n   - Navigate to the **Environment Variables** section and update the following variables with secure values:\n\n     - **CORS_ORIGINS**  \n       - Once the frontend is deployed, replace `[\"*\"]` with the actual frontend URL.\n\n     - **ACCESS_SECRET_KEY**  \n       - Generate a secure key for API access and set it here.  \n\n     - **RESET_PASSWORD_SECRET_KEY**\n       - Generate a secure key for password reset functionality and set it.\n\n     - **VERIFICATION_SECRET_KEY**  \n       - Generate a secure key for user verification and configure it.\n\n   - For detailed instructions on setting these secret keys, please look at the section on [Setting up Environment Variables](#setting-up-environment-variables).\n\n### Fluid Serverless Activation\n[Fluid](https://vercel.com/docs/functions/fluid-compute) is Vercel's new concurrency model for serverless functions, allowing them to handle multiple \nrequests per execution instead of spinning up a new instance for each request. This improves performance, \nreduces cold starts, and optimizes resource usage, making serverless workloads more efficient.\n\nFollow this [guide](https://vercel.com/docs/functions/fluid-compute#how-to-enable-fluid-compute) to activate Fluid.\n\n## Makefile\n\nThis project includes a `Makefile` that provides a set of commands to simplify everyday tasks such as starting the backend and frontend servers, running tests, building Docker containers, and more.\n\n### Available Commands\n\nYou can see all available commands and their descriptions by running the following command in your terminal:\n\n```bash\nmake help\n```\n\n## Important Considerations\n- **Environment Variables**: Ensure your `.env` files are up-to-date.\n- **Database Setup**: It is recommended to use Docker to run the database, even when running the backend and frontend locally, to simplify configuration and avoid potential conflicts.\n- **Consistency**: It is **not recommended** to switch between running the project locally and using Docker, as this may cause permission issues or unexpected problems. You can choose one method and stick with it.\n\n## Contributing\n\nIf you wish to contribute to this project, please discuss the change you want to make via an [issue](https://github.com/vintasoftware/nextjs-fastapi-template/issues).\n\nCheck our [contributing guide](https://github.com/vintasoftware/nextjs-fastapi-template/blob/main/CONTRIBUTING.md) to learn more about our development process and how you can test your changes to the boilerplate.\n\n## Share your project!\n\nYou can use our template to kick-start your project or streamline your efforts to secure funding. Starting with a strong foundation can make your product more resilient and allow you to focus on what matters most: delivering value to your customers.\n\nIf our template has been part of your journey, we'd love to hear about it! Share your story with us, and we’ll help spread the word about your project through our social media channels, giving it a broader reach.\n\nPlease email us at contact@vintasoftware.com telling us more about how our template helped you boost your project.\n\n## Commercial Support\n\n[![alt text](https://avatars2.githubusercontent.com/u/5529080?s=80\u0026v=4 \"Vinta Logo\")](https://www.vinta.com.br/)\n\nThis project is maintained by [Vinta Software](https://www.vinta.com.br/) and is used in products of Vinta's clients. We are always looking for exciting work! If you need any commercial support, feel free to get in touch: contact@vinta.com.br\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvintasoftware%2Fnextjs-fastapi-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvintasoftware%2Fnextjs-fastapi-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvintasoftware%2Fnextjs-fastapi-template/lists"}