MEVCORE
AI-ready · Lovable · Bolt · Cursor · Claude Code · v0

How to prepare your project for Mevcore

Copy the prompt into your AI tool and it brings the code in line with the Mevcore rules. Below are the same rules for people and a checklist before deploying.

Prompt

Prompt for your AI tool

Run it once in your project; after that the project is ready to connect to Mevcore.

Copy and paste it into the chat

Prepare this project for deployment on Mevcore app hosting (full rules: https://mevcore.com/llms-full.txt). Change only what is needed and keep all features working.

1. Run as a normal long-running server process. Listen on host 0.0.0.0 and the port from the PORT environment variable (fallback 3000 for local runs). Never hardcode the port or listen on localhost only.
2. package.json (or the equivalent of the stack) has a "build" script for the production build and a "start" script that starts the production server (next start, node dist/server.js), never a dev server (next dev, vite, nodemon). A frontend-only app (Vite, React, Vue) keeps only the "build" script: it is served as a static site. Commit the lockfile and declare the runtime version (engines.node, .python-version, go.mod).
3. If the app needs its own database: PostgreSQL through the DATABASE_URL environment variable, with Drizzle ORM or Prisma. Run migrations at startup (in the start script), not during the build; the build must not need a database.
4. Cache, queues and sessions: Redis through REDIS_URL, only if needed.
5. User file uploads: an S3-compatible storage (Mevcore does not provide one yet, any external provider works) through S3_ENDPOINT, S3_REGION, S3_BUCKET, S3_ACCESS_KEY_ID and S3_SECRET_ACCESS_KEY, behind one small storage module.
6. Authentication as a library in the code (Better Auth or Auth.js) with users in the same database. Read secrets and the public URL from environment variables (BETTER_AUTH_SECRET and BETTER_AUTH_URL, or AUTH_SECRET and AUTH_TRUST_HOST=true). The app runs behind an HTTPS proxy.
7. No edge-only or platform-specific APIs: no Cloudflare Workers bindings (KV, D1, R2, Durable Objects), no Vercel Edge runtime (runtime = 'edge'), no Vercel KV, Blob or Postgres SDKs, no Netlify Functions. Use the Node.js runtime everywhere.
8. All configuration comes from environment variables. Do not commit .env; create or update .env.example with every variable the app reads (empty or example values).
9. Log to stdout and stderr. GET / answers without a 5xx error once the app has started.
10. Background work that is not HTTP (queue consumers, bots) has its own script (for example "npm run worker") so it can run as a separate process.

If the project already uses Supabase or Firebase, keep it and make sure their URLs and keys come from environment variables.
When you are done, list the environment variables the app needs, and the build and start commands.

Lovable, Bolt, v0

Paste the prompt into the project chat, then connect its GitHub repository in the Mevcore panel.

Cursor, Claude Code, Copilot

Paste the prompt into the agent chat in the open project, or save it as project rules: AGENTS.md, CLAUDE.md or .cursor/rules.

10 rules for your app

If the code follows them, the system detects the stack, builds and starts the app by itself

  1. 1

    Port from the PORT variable

    The server listens on 0.0.0.0 and the port from the PORT variable. The system sets it: do not hardcode the port and do not listen on localhost only.

  2. 2

    Standard start

    The start script in package.json (or the stack equivalent) starts the production server: next start, not next dev; node server.js, not nodemon.

  3. 3

    Build without a database

    The build script builds the project and does not touch the database. Run migrations when the app starts.

  4. 4

    Database via DATABASE_URL

    PostgreSQL with Drizzle or Prisma. The system adds DATABASE_URL, DB_HOST, DB_PASSWORD and the other variables itself when you attach a database.

  5. 5

    Cache via REDIS_URL

    Keep cache, queues and sessions in Redis from the REDIS_URL variable.

  6. 6

    User files

    Mevcore does not offer S3 storage yet. Use an external S3-compatible storage via S3_* variables, or a folder on disk listed in .deployignore.

  7. 7

    Auth in your code

    Better Auth or Auth.js, with users in your own database. No auth services that only work on another platform.

  8. 8

    No edge-only APIs

    Cloudflare Workers, Vercel Edge, Vercel KV and Blob do not work here: the app runs as a normal Node.js, Python or other process.

  9. 9

    Settings in variables

    Do not commit .env. Add .env.example with the list of variables: the system asks for their values when the app is created.

  10. 10

    Logs to the console

    Write logs to stdout and stderr: they are shown on the Logs tab in the panel.

Already on Supabase or Firebase?

It runs too: the code is hosted on Mevcore, the database and auth stay at Supabase or Firebase. Add their keys to the environment variables of the app. VITE_* and NEXT_PUBLIC_* variables are baked in at build time, so set them before the first deployment.

Stacks in brief

Node.js and Bun

  • Commit the lockfile and set the version in engines.node or .nvmrc (Node.js 22 by default).
  • Express, Fastify, Hono: app.listen(process.env.PORT, "0.0.0.0").
  • Next.js: "build": "next build", "start": "next start".

Frontend without a server

  • Vite, React, Vue, Angular, Lovable projects: a build script only, no start.
  • The system builds the project and serves the dist or build folder as a site.

Python

  • requirements.txt, pyproject.toml, Pipfile, poetry.lock or uv.lock.
  • Django, FastAPI and Flask start automatically with gunicorn or uvicorn.
  • Set the version in .python-version (Python 3.12 by default).

PHP and Laravel

  • Commit composer.lock.
  • Laravel gets APP_KEY, migrations, queues and the scheduler automatically.
  • The frontend build (npm run build) runs by itself.

Go, Java, .NET, Ruby, Rust, Deno

  • A standard project layout: go.mod, pom.xml or build.gradle, *.csproj, Gemfile, Cargo.toml, deno.json.
  • Read the port from the PORT variable.

Bots and background jobs

  • Telegram and Discord bots are recognised automatically and need no port.
  • A queue worker is a separate app from the same repository with the type "Background process".
  • Scheduled jobs are set up on the "Scheduled commands" tab.

Checklist before deploying

  • The server listens on 0.0.0.0 and the port from PORT
  • Production build and start scripts exist (or the stack equivalent)
  • The lockfile is committed, the language version is declared
  • Database via DATABASE_URL, Redis via REDIS_URL, migrations at start
  • No .env in the repository, .env.example lists every variable
  • No edge-only APIs or SDKs of other platforms
  • User files in S3 or in a folder from .deployignore
  • The home page answers without a 5xx error

All the details (environment variables, language versions, limits, domains and diagnostics) are in the full guide for AI: llms-full.txt

Your project is ready, deploy it

Connect the repository in the panel: the system detects the stack and the build and start commands.

App hosting

What should we call you?

Enter your name before starting the chat.

Hello! Type your question and an agent will reply as soon as possible.
Rate the agent’s reply