ITs Deployby ITs Production ITs Production
Setup guide

How ITs Deploy works

Everything you need to get your school project online — from zipping your files to going live.

The 3-step flow

  1. Upload your project (.zip)

    On your computer, put your whole project in one folder and compress it to a .zip. Upload that zip on the New deployment page and choose what kind of project it is.

  2. Add your environment (.env)

    Next, give us your environment variables — your database name, API keys, app settings. You can upload your existing .env file or paste the values. If your project has no .env, tick the skip box.

  3. Choose a plan & pay

    Pick the free 3-day trial, 1 week, or 1 month. Paid plans open a secure PayMongo checkout (GCash, card or Maya). Once that's done, your project enters our deploy queue.

  4. We put it live

    Our team deploys your project to yourname.its-production.com. You'll see it turn Live on your dashboard with the link to share.

Preparing your .zip

  • We host static files — zip the folder that has your index.html (and its css/, js/, images).
  • Zip the contents of that folder so index.html sits at the top of the zip — not wrapped in an extra folder.
  • Using React / Vue / Angular / Next? Build it first and upload the build output — see the next section.
  • Don't put your .env inside the zip — you'll add it in step 2 so it stays encrypted.
  • Max zip size is 50 MB.

Deploying a React / Vite / framework app

Frameworks like React, Vue, and Angular need to be built into plain HTML/CSS/JS first. Run the build on your own computer, then upload the output folder. It only takes a minute:

  1. Build it on your machine

    npm install
    npm run build
  2. Find your build output folder

    React (Vite) / Vue (Vite)
    dist/
    Create React App
    build/
    Angular
    dist/<project-name>/ (or its browser/ subfolder)
    Next.js
    add output: 'export' to next.config.js, then use out/
    Plain HTML site
    no build needed — just zip your files
  3. Zip the contents of that folder

    Open the build folder (e.g. dist/), select everything inside it, and compress that — so index.html is at the top of the zip. Don't zip the dist folder itself.

  4. Upload it as a Static site

    On New deployment, pick framework Static site and upload your zip. It goes live automatically.

Two things that trip people up:
  • Env variables are baked in at build time. Put your VITE_… / REACT_APP_… values in your .env before running npm run build. Changing them later means rebuilding and re-uploading.
  • Use relative asset paths. In Vite set base: './' in vite.config.js (CRA: add "homepage": "." to package.json) so your CSS/JS load correctly once deployed.

Why build locally? Building runs your project's code, and we keep that off our shared server for security and stability. Building takes seconds on your laptop.

Dynamic apps & databases new

Got a backend that runs code — Node, Laravel, plain PHP, or Python (Django/Flask)? You don't need Docker or any special config files. Just zip your project, pick the matching framework, and we install your dependencies and run it for you at yourname.its-production.com. Three things make it work:

  1. Put your project files at the top of the zip

    Select everything inside your project folder and compress that, so these sit at the top of the zip (not inside an extra folder):

    Node
    package.json (with a start script), plus your code
    Laravel
    artisan + composer.json at the root
    Plain PHP
    index.php at the root
    Python
    requirements.txt + your entry file (app.py / main.py / manage.py)

    Leave out node_modules, vendor, and .venv — we install dependencies for you. Including a lockfile (package-lock.json / composer.lock) makes builds faster and more reliable.

  2. Listen on the port we give you

    Your app must start on the port from the PORT environment variable — don't hard-code a port number.

    // Node / Express
    const port = process.env.PORT || 3000;
    app.listen(port);

    Laravel, PHP and Python apps are started for you — just make sure your start script (Node) or entry file is at the project root.

  3. Need a database? We connect one for you

    Pick MySQL in step 1 and we create a private database for your app and set the connection as environment variables. Read them from the environment — don't include your own database credentials, we replace them with the managed ones so your data stays isolated:

    Laravel / generic
    DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
    Node / ORMs
    DATABASE_URL (and DATABASE_HOST/DATABASE_NAME/…)

    In Laravel these are your normal DB_* keys — run your migrations on deploy (e.g. php artisan migrate --force).

  • Zip your source code (the files above at the top) — no build output, no Dockerfile needed.
  • Put API keys and other secrets in the .env step, never in your code or the zip.
  • Only a frontend? If your zip is a built site (an index.html with no server code), we serve it as a static site automatically.

If something can't be detected (for example the wrong framework was picked, or files are buried in a subfolder), you'll get a clear message on your dashboard telling you what to fix.

About your .env

Your .env holds the settings and secrets your app needs to run. Example:

APP_NAME="My Capstone"
APP_ENV=production
API_KEY=xxxxxxxx
[email protected]
  • We store it encrypted at rest and never show it publicly.
  • Don't add database credentials — if you requested a database we set DB_* / DATABASE_URL for you and they override anything you put here.
  • You can leave it blank for plain static sites.

Keeping your site secure

A few habits keep your project from getting defaced or its data stolen. These are about your code — do them before you upload:

  • Anything in a built front-end is public. Code you ship to the browser (React/Vue builds) can be read by anyone — only put VITE_…/REACT_APP_… values there if they're safe to expose (like a public API URL), never a secret key or password.
  • Keep secrets in the .env step — never hard-code passwords, API keys or tokens in your code, and never put a real .env or a database dump inside the zip.
  • Use the database connection we give you and use parameterized queries / your framework's query builder — don't build SQL by gluing in user input (that's how SQL-injection happens).
  • Validate everything a user submits — forms, URLs, uploads — on the server, not just in the browser.
  • Update your dependencies before you build (npm audit / composer update) so you're not shipping known-vulnerable packages.
  • Don't expose admin or debug tools in production — turn off debug mode (APP_DEBUG=false in Laravel) and protect any admin pages with a login.

Plans & payment

3-Day Trial
Try it free for 3 days — Get your project online and share it. No payment needed.
1 Week
₱150 for 1 week — Keep your project live for a full week.
1 Month
₱300 for 1 month — Best value — stay online for a whole month.

Paid plans are handled by PayMongo, so you can pay with GCash, debit/credit card or Maya. Your plan's countdown starts the day your project goes live. When it expires, your site goes offline until you renew.

Frequently asked

Can I update my project after it's live?

Yes — re-upload a new zip and we'll redeploy. (Message us if you need it rushed.)

What's the trial for?

The free 3-day trial lets you see your project online and share it before paying.

Is my .env safe?

Yes. It's encrypted in our database and only used to run your site.

I need help.

Message us and we'll guide you through it.