How we build
A detailed account of what we use, why, and what you receive at the end. Written for a business owner who wants to understand what they are paying for, and for the technical adviser they may ask to check it.
Four principles
The right platform for the job, not one platform for everything
A content website is best served by WordPress or Webflow. A store by Shopify or WooCommerce. A booking engine or a member application by purpose-built code. We choose per project, and we say why in the proposal.
Standard where standard is good enough
Payments, recurring billing, card data and email delivery are handled by platforms built for them. We write custom code for the part of your business that is actually specific to you.
Everything connected through its proper interface
Shops, applications and automations talk to each other through APIs and webhooks, not through someone copying between tabs. If a connection fails, it fails loudly and we are notified.
You own the result
Accounts are opened in your name. Domain, hosting, store and code are transferred to you on completion. We document what we built so that another team could take over if you ever wanted them to.
The stack, layer by layer
Websites
Our default for business websites. Editable by the client, backed by a vast ecosystem, and hosted on our managed servers with daily backups and automatic updates.
For design-led sites where visual precision matters and the content model is simple, such as portfolios and studios.
For sites that rarely change and must be very fast and very secure, we generate plain HTML with no server-side code at all. This site is built that way.
E-commerce
Checkout, payments, subscriptions, taxes and fraud prevention are handled by the platform. We configure, theme and extend it, and we connect it to whatever sits behind it.
When a store must live inside an existing WordPress site, or needs flexibility that Shopify's model does not allow.
Meta Pixel and Conversions API, Google Ads conversion tracking and GA4, configured so that advertising spend is measured against actual orders rather than page views.
Applications
Our custom applications, from booking engines to member areas, are written in Python with a PostgreSQL database. It is a mature, readable stack that any competent developer can maintain.
Our standard database. Where a project needs authentication, storage and an API out of the box, we run self-hosted Supabase on top of it. Access rules are enforced in the database itself with row-level security.
Mobile-first web interfaces, often as single-page applications, served directly by the backend. No app-store submissions, instant updates.
Automation and data
Our workflow engine for connecting systems: a new order creates an invoice, a form submission updates the CRM, a daily report is assembled and emailed. Self-hosted, so your data stays on your infrastructure.
Python scripts under systemd timers for collection, import and reconciliation jobs. Idempotent by design: they can be re-run safely.
Single-page HTML dashboards reading from the database, with charts and KPI cards. No licence fees, no per-seat pricing.
Infrastructure
Virtual servers in the EU for applications and data, with nginx, systemd-managed services and SSL throughout. Managed hosting for client WordPress sites.
Daily database and file backups, retention policies, disk and service monitoring with alerts to our team.
Stripe for custom payment flows, Shopify Payments inside Shopify, and transactional email through a dedicated provider so that vouchers and confirmations arrive reliably.
What a connected system looks like
A typical e-commerce setup we deliver. Each box is a component we have built or configured in a live project; the arrows are real integrations, not aspirations.
Security, privacy and reliability
We never store it. Payments go through Shopify or Stripe, both certified for the purpose.
Each person and each system gets the minimum access needed, with separate credentials. Access rules for shared platforms are enforced in the database.
Our servers are in the European Union. Client data does not leave it unless a platform the client has chosen requires it.
Daily, automated, tested. We have restored from them and we know how long it takes.
WordPress core, plugins and server packages are kept current on a schedule. Custom applications are built on long-term-support versions.
Integrations are written to fail visibly. A broken connection raises an alert rather than silently dropping orders.
What you receive
- Accounts, domains and hosting in your company's name.
- The complete source code of anything custom, in a repository you control.
- A written description of the system: what each component does, where it runs, how to reach us and how to reach someone else.
- Access credentials delivered securely, never by plain email.
- A monthly care option if you would rather we kept looking after it. Most clients choose this; none are obliged to.