How it works

From zip file
to running studio

The honest version, with no steps left out. If you have ever installed WordPress by hand you already know how to do this, and the installer does more of it for you than WordPress does.

Product tour

Five minutes through the whole app

Every module, one after another: Settings and branding, the public Credits Board, Client CV and Video Portfolio, then Jobs, Projects, Clients, the Calendar, the CV Builder and the client portal.

A full walkthrough of Fortan Software, section by section.

Installing

The four steps in full

Create a database

In cPanel, make an empty MySQL database and a user, and give that user All Privileges on it. Two minutes, and the only part that touches your hosting control panel.

Upload the folder

Unzip and upload to your web root. Turn on hidden files in your FTP client first — the .htaccess files are dotfiles, and they are what keep the private folders private.

Run the installer

Visit install.php and follow four screens. It checks your PHP version and extensions before it commits to anything, writes the config, creates the tables, and offers to load demo data so nothing is empty while you look around.

Delete install.php

It offers to delete itself when it has finished. Then set your branding, add your details, and start entering work.

The one thing people get wrong. Turn on hidden files in your FTP client before you upload — in FileZilla that is Server → Force showing hidden files. The .htaccess files are dotfiles, and they are what keep your invoices and client files private. Nothing looks broken when they are missing; the private folders are simply public, and you would not know.

Check the deny rules took effect

Do this once, straight after uploading. Both commands should return what is shown, and take about ten seconds.

CheckExpected
curl -I yourdomain.com/api/exports/work-history.xlsx 403 — a 200 means that folder's .htaccess did not upload
curl -I yourdomain.com/install.php 404 — once you have deleted it, which you should
Once it's running

Setting it up as yours

Branding

Settings changes the colours, fonts and logo across every page — the public credits board, CV and portfolio included — with a live preview as you go. Five presets if you would rather not start from a blank palette, and a reset button when you have gone too far.

Your details

Profile holds your name, headline, contact details and business address. The business address is what prints on estimates and invoices, so it is worth getting right before you raise the first one.

Optional integrations

Added later by editing api/config.php on the server. An Anthropic key turns on AI CV tailoring; Reed, Adzuna, Jooble or Careerjet keys turn on job search; SMTP settings turn on job alert digests and portal notifications. All optional — the app works without any of them.

Getting your data out

Settings → Export Your Data downloads your whole database as a single .sql file — clients, jobs, projects, timeslips, invoices, budgets, the lot. No lock-in, and worth doing before you apply an update.

It is an export, not a full backup: your uploaded files live in media/ and belong to your host's backup tool, which can also keep a copy off the server.

Updates

Settings tells you when there is a new version. Unzip it over the top — your config, your media folder and your database are not in the zip, so nothing of yours is touched — then visit upgrade.php, which applies any database changes and tells you what it did.

Back up before you update. Two things: the database (phpMyAdmin → Export → Go) and the site folder (File Manager → select all → Compress). It takes a minute and it makes everything reversible.

Ready to see it?

The demo is the real application with demo data in it. Every button works, and it resets itself every night — so change whatever you like.