T Technovize

Publisher

Write, publish and sell your book

Technical books and e-books under your own imprint — from manuscript to store page, with the production work handled.

Features

Write

A Markdown editor with a live preview and autosave.

Export

Print-ready PDF and EPUB, plus ISBN and metadata.

Sell

Direct sales and KDP-compatible files, paid in EUR.

Author Pro

Free authors can create up to two books. Upgrade to Pro for unlimited books and the full toolset.

See Author Pro →

Publisher help

Getting started, creating a book, exports, ISBN, selling and more.

Open Publisher help →

Software Development

Custom build, tailored to your project

Django and TypeScript projects, from a first prototype to a platform under real load — with a fixed price agreed up front.

How it works

Step 1

Configure your build

Fixed starting price and timeline before you commit.

Step 2

Pay 30% to start

A deposit kicks it off; the rest is due on delivery.

Step 3

Delivered to your inbox

Full source, and IP transfer on final payment.

What you get

  • A custom web app or API, built for your project — not a template.
  • Full source code and complete IP transfer on final payment.
  • Standard Django and TypeScript — code you own, with no black boxes.
  • No license fees and no platform lock-in.

Software help

How pricing works, code ownership, our stack and what happens if scope changes.

Open Software help →

Cloud Hosting

Managed Django hosting, EU-only

Everything between your git push and a working site is ours to run — servers, database, SSL, deploys, backups and monitoring.

In development — join the waitlist and you'll be first in line at launch.

Plans

Free

One app on a subdomain, sleeps on inactivity. For demos and side projects.

Starter

Fully managed: custom domain, auto-SSL, managed Postgres, daily backups.

Business

More power, 24/7 monitoring, tested restores and zero-downtime deploys.

What's managed

We take care of

  • The server, the running app and the database
  • SSL certificates, issued and renewed automatically
  • Deploys, backups and monitoring
  • Security updates when Django ships a fix

You keep

  • Your application code and its features
  • Your content and product data
  • Your own Stripe, email and third-party accounts
  • Full portability — standard Django, no lock-in

Packages & pricing

What's the difference between the Free, Starter and Business plans?

Free is for testing: one app on a Technovize subdomain that sleeps on inactivity. Starter is fully managed production hosting — custom domain, auto-SSL, managed PostgreSQL, daily backups and business-hours email support. Business adds higher resource limits, 24/7 monitoring, tested restores with staging, zero-downtime deploys and priority same-day response.

What happens when my Free-plan app goes to sleep?

To save resources, Free-tier apps spin down after a period of traffic inactivity. The next request wakes the process automatically, with a cold-start delay of a few seconds on that first load.

Can I upgrade from Managed to Fully Managed as I grow?

Yes — upgrade any time from the dashboard. We take over your deployment pipeline, configure automated CI/CD triggers and handle migration safety checks, without application downtime.

Billing & VAT

How do billing and VAT work for EU and international customers?

Everything is charged in euros. As a Netherlands-registered company we apply Dutch VAT to domestic buyers, use EU B2B reverse-charge for valid EU VAT IDs, and exempt customers outside the EU from EU VAT. Every invoice is available as a PDF.

Managed vs fully managed

What's the core difference between Managed and Fully Managed?

With Managed, we provide and maintain the secure server (OS, Nginx/Traefik, PostgreSQL, SSL) while you run deployments, migrations and collectstatic yourself over SSH. With Fully Managed, we automate the whole pipeline end to end — pre-migration snapshots, deploy hooks, monitoring and fast rollbacks.

Who's responsible for application bug fixes and package updates?

On both models, your code, bug fixes and third-party Python package upgrades stay with your team. On Fully Managed we monitor runtime errors and flag dependency vulnerabilities that affect your stack.

Do I get root (sudo) access on my server?

For stability and security across our EU infrastructure, root is not provided. Managed gives you isolated SSH access; Fully Managed is handled via webhooks, CI/CD and the dashboard.

Repository & security

Why must my GitHub repository be private?

A Django project holds proprietary business logic, architecture details and dependencies. A private repository keeps third parties from inspecting your code or spotting attack vectors.

How does Technovize connect to my private repo securely?

We use a read-only SSH deploy key (or a scoped Personal Access Token) generated for your repository only. The server can fetch commits but can never write to or alter your source.

How are SECRET_KEY and database passwords stored on the server?

Secrets never live in Git. They sit in an encrypted .env on the host (or as secure environment variables in Docker), excluded from version control via .gitignore.

Does the production server have full access to my GitHub account?

No. Deploy authentication uses a single-repository key limited to git pull. The server has zero access to your other repositories or account details.

What if I accidentally commit secrets to Git?

Immediately rotate the compromised keys, update your production .env, and purge the secret from history with a tool like git filter-repo. On Fully Managed, contact support at once — our security response can help isolate the app.

Deploy workflow

Is the project environment configured automatically, or do I set it up?

On provisioning we initialise your app structure, virtual environment, service files and reverse-proxy config automatically. Managed gives you SSH access to that directory; on Fully Managed it's orchestrated behind the scenes.

How do I do the initial push from my desktop to GitHub?

Initialise Git locally, commit, create a private repo on GitHub, and push your main branch:

git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin git@github.com:your-username/your-repo.git
git push -u origin main
What's the daily workflow for pushing updates to live?

Make and test changes locally, then push to GitHub. On Managed, SSH into the server to pull, migrate, collectstatic and restart Gunicorn. On Fully Managed, pushing to your deploy branch triggers the whole sequence automatically — no SSH needed.

Which shell commands deploy manually on a Managed plan?Managed

Log into your server via SSH (or PowerShell) and run:

cd /var/www/your-app
git pull origin main
source venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py collectstatic --noinput
sudo systemctl restart gunicorn

Database & migrations

What if migrate fails during a live deployment?

On Managed, the migration aborts and schema fixes are handled manually by the developer. On Fully Managed, we snapshot the database before deploying; if a migration errors, the deploy halts and the database rolls back to its pre-migration state.

How should I test schema changes before production?

Always test migrations locally against a PostgreSQL version matching production. Business plans get an isolated staging environment with an anonymised copy of production data to verify migrations first.

Does Technovize manage PostgreSQL performance and indexing?

We handle PostgreSQL service health, memory, storage scaling and maintenance. Schema design, query optimisation and indexing remain the developer's responsibility.

Static, media & caching

Why are my changes on GitHub but not on the live site yet?

Django processes (Gunicorn, Uvicorn) load your code into memory at start-up. Pulled changes only take effect once the service or container is restarted — via systemctl restart gunicorn or a dashboard deploy.

How are static assets (CSS, JS, images) handled in production?

Static files are gathered with collectstatic, then served directly from disk by Nginx or Traefik at high speed, bypassing the Python layer.

Where are user uploads stored, and do they survive deploys?

User uploads live on a persistent volume or S3-compatible object storage, outside your Git repository — they are never overwritten or removed during code deployments.

Monitoring & support

What support and response times come with each plan?

Starter includes email support during EU business hours (Mon–Fri) with a target response within one business day. Business adds priority same-day response during business hours plus automated 24/7 uptime monitoring for critical outages.

How does Technovize handle outages and incidents?

Monitoring continuously checks server, web-server and database health. If an incident occurs our team is alerted immediately to restore services; Business subscribers get proactive notifications and status reports.

How do I submit a technical support request?

Raise a request through the client portal or from your account email. Include your app identifier, deployment logs and any error messages so we can help quickly. Contact us →

Backups & recovery

How often are backups performed?

Starter gets automated daily snapshots of the database and media, retained about a week. Business adds higher-frequency backups, extended retention and offsite replication within EU data centres.

How do I roll back if a deployment breaks production?

On Managed, SSH in, git checkout the previous commit, apply reverse migrations if needed, run collectstatic and restart Gunicorn. On Fully Managed, click Rollback on any recent deployment in the dashboard to restore the previous build and database state.

Are backups tested for integrity?

On Business plans we run periodic restore simulations to confirm database dumps rehydrate cleanly in an isolated test environment.

Architecture

What architecture powers my hosted app?

Two production architectures depending on your plan: a classic VPS stack (virtualenv + Gunicorn + Nginx on Linux), or a modern containerised stack (Docker behind a Traefik reverse proxy with automatic Let's Encrypt SSL).

Can I choose between virtualenv and Docker?

Yes. Classic virtualenv suits simple single-instance apps. Dockerised deployments behind Traefik suit complex apps needing reproducible builds, multiple workers or zero-downtime rolling updates.

Maintenance & SSL

How are SSL certificates issued and renewed?

As soon as your custom domain points to your Technovize IP, we issue a Let's Encrypt certificate automatically and renew it in the background ahead of expiry.

Do you support background tasks like Celery and Redis?

Yes. Starter and Business support background task queues. We provision managed Redis and configure systemd or Docker services to run Celery workers and Beat schedulers alongside your web app.

How are OS and security patches handled?

We handle host-level kernel patches, web-server updates and security hotfixes during low-traffic windows. You're notified in advance if a critical patch needs a brief reboot.

More questions

How do you handle GDPR and Data Processing Agreements (DPA)?

Data is hosted exclusively in EU data centres, and a pre-signed DPA is available in the client portal.

What happens if my app runs out of RAM or CPU?

Swap space, Gunicorn worker limits and resource throttling protect the host, and you get alerts when usage is high so you can upgrade before it bites.

How do I run one-off management commands (e.g. createsuperuser)?

Run manage.py commands over SSH on Managed plans, or through the web console on Fully Managed plans.

How are outbound transactional emails handled?

Port 25 is blocked to prevent spam. Use a transactional provider (SendGrid, Mailgun, Postmark) via API or ports 587/465.

Can I run non-Python binaries like ffmpeg, weasyprint or geos?

Yes — tell us which system libraries your app needs and we install them on the host or add them to your container image.

What are the request timeout and upload size limits?

Sensible defaults are set at the reverse proxy; if you handle large uploads or long requests we tune client_max_body_size and timeouts to avoid 413 and 504 errors.

Pre-push checklist

Before you push to your production branch, verify:

  • Secrets: .env and local secrets are in .gitignore and not tracked by Git.
  • Dependencies: every new package is in requirements.txt or pyproject.toml.
  • Migrations: makemigrations run locally and the migration files are committed.
  • Local testing: the app boots cleanly and passes your tests.
  • Static & hosts: static files load locally and ALLOWED_HOSTS includes your production domain.