How ITs Deploy works
Everything you need to get your school project online — from zipping your files to going live.
The 3-step flow
-
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. -
Add your environment (.env)
Next, give us your environment variables — your database name, API keys, app settings. You can upload your existing
.envfile or paste the values. If your project has no.env, tick the skip box. -
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.
-
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 itscss/,js/, images). - Zip the contents of that folder so
index.htmlsits 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
.envinside 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:
-
Build it on your machine
npm install npm run build
-
Find your build output folder
- React (Vite) / Vue (Vite)
dist/- Create React App
build/- Angular
dist/<project-name>/(or itsbrowser/subfolder)- Next.js
- add
output: 'export'tonext.config.js, then useout/ - Plain HTML site
- no build needed — just zip your files
-
Zip the contents of that folder
Open the build folder (e.g.
dist/), select everything inside it, and compress that — soindex.htmlis at the top of the zip. Don't zip thedistfolder itself. -
Upload it as a Static site
On New deployment, pick framework Static site and upload your zip. It goes live automatically.
- Env variables are baked in at build time. Put your
VITE_…/REACT_APP_…values in your.envbefore runningnpm run build. Changing them later means rebuilding and re-uploading. - Use relative asset paths. In Vite set
base: './'invite.config.js(CRA: add"homepage": "."topackage.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:
-
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 astartscript), plus your code- Laravel
artisan+composer.jsonat the root- Plain PHP
index.phpat 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. -
Listen on the port we give you
Your app must start on the port from the
PORTenvironment 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
startscript (Node) or entry file is at the project root. -
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(andDATABASE_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.htmlwith 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_URLfor 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
.envor 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=falsein 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.
