DEPLOYMENT GUIDE

Where Should You Deploy a Side Project?

Choose a host for a portfolio, contact form, or booking app

A portfolio can be published by putting its pages and images somewhere people can open them in a browser. A contact form also needs somewhere to handle submissions. If people sign in to see their own records, you need to decide who can see each record and where it is stored.

In this article

Terms to know before you start

Choose a host based on what your app does

To narrow down your options, write down where your code will run and where your data will stay after launch.

How to choose a host · Conceptual diagram
ProcessingDeliver prepared pages or handle bookings and submissions
StorageDecide where records and images will stay
MaintenanceDecide who manages server settings and updates
Apps built with the same tools can need different hosts depending on their features.
What you built Where to start Why
Portfolio, gallery, or information page Static hosting You can prepare the pages and images in advance.
Site with a contact form Static hosting plus a form service A separate service can accept submissions and send notifications.
Booking app with sign-in or members' area Host the interface separately from the service that handles data, or run the app on a PaaS and connect a database Each operation needs to check who can view or change the record.
App that needs custom server or network settings VPS You can manage those settings yourself.

Start with static hosting for a portfolio

Static hosting sends your prepared files to the browser. You can publish hand-written HTML directly. If you use a site generator, a build creates the files to publish. When you add a project, build the files again and publish the new version. JavaScript still runs in the browser, so visitors can filter a list or switch views. GitHub Pages is one example that publishes HTML, CSS, and JavaScript from GitHub. GitHub Pages overview

Decide where a contact form sends its data

The form itself can appear on a static page. A hosted form service, a feature provided by the host, or your own API can accept the submission and send a notification. For example, Netlify Forms handles submissions from HTML forms configured for its service. Netlify Forms setup

A contact form on a static site · Conceptual diagram
Static pageDisplay the form
Submission handlerAccept the submission and check required fields
Notification and storageNotify the recipient and keep any records you need
The page and the service that handles submissions can be hosted separately.

If receiving a notification is enough, a hosted form feature can get you started. Consider an API and an admin page when you need to issue reference numbers or show past messages by assignee. If you implement email notifications yourself, keep the email service's API key on the server. Anyone who receives a file containing the key in their browser can see it.

Decide where bookings are processed and stored

A booking app checks whether a slot is open and whether the user can change a particular reservation. Those checks and the database are still needed when the interface is delivered as static files.

If a service can accept bookings and restrict what each user can see, you can host just the interface on a static host. If you wrote a Node.js or Python server, a PaaS can run it. The platform handles basic server management, while you update your application's libraries and decide what each user can do. Render Web Services is one example. Render Web Services guide

KamuiDash for a booking app on GitHub

If your Node.js or Python booking app is on GitHub and this is your first deployment with a database, consider KamuiDash. You can deploy the app from GitHub and set up PostgreSQL for reservations on the same platform. Without setting up a server from scratch, you can make a test reservation on the live site and check that the record survives an app update. KamuiDash app settings · KamuiDash database settings

If your database already runs elsewhere, first check whether you can keep using that connection.

Consider a VPS when you need to manage server settings

With a VPS, you rent and configure a virtual server, such as a DigitalOcean Droplet. You manage operating system updates, choose which traffic to allow, set up HTTPS to encrypt browser traffic, and recover the app when it stops. A VPS makes sense when you need that control and can handle the ongoing work. DigitalOcean Droplet setup guide

Test your app at its public URL

Try one action a real visitor would take. Open a portfolio and its images from another device. Submit the contact form and verify the notification. For an app with a database, create a record, redeploy the app, and check that you can still retrieve the record. In a members-only booking app, also sign in with a second account and check that it cannot view or edit another user's bookings.

Compare the cost of running the app, the database, file storage, and data transfer. For a demo, check how long the first request takes. For an app people will keep using, check how long the database retains data and how backups work.

KamuiDash is a PaaS that deploys web apps from GitHub and lets you connect PostgreSQL. KamuiDash