Having recently standardized my consulting offering around Twingate deployments, I've found that a structured, phased package is critical for delivering predictable outcomes for small businesses (typically 20-150 users). The goal is not just to install software, but to establish a mature zero-trust network access (ZTNA) posture that the client can operate and scale. My standard package is modular, broken into three core phases.
**Phase 1: Assessment & Design (Prerequisites)**
This phase is non-negotiable and forms the foundation. We do not proceed without completing it.
* **Infrastructure Inventory:** Catalog all resources requiring access (AWS/Azure VMs, on-prem servers, SaaS admin panels, databases). We categorize them by sensitivity and user group.
* **User Group Mapping:** Define clear user cohorts (e.g., "developers," "finance," "contractors") and document the precise resources each group needs.
* **Connector Strategy:** Determine where Twingate Connectors will be deployed (e.g., a VM in each cloud VPC, a host in the on-prem DMZ). We design for high availability if required.
* **Policy Blueprint:** Draft the initial Twingate policies in a document before implementation. This includes defining `Groups`, `Resources`, and the access rules between them.
**Phase 2: Core Deployment & Configuration**
This is the hands-on implementation of the design. The deliverable is a fully functional Twingate network.
* **Terraform Bootstrap:** I use Terraform to manage Twingate's core objects, ensuring the configuration is codified and repeatable. A simplified example for a resource and group:
```hcl
resource "twingate_remote_network" "aws_production" {
name = "aws-us-east-1-production"
}
resource "twingate_connector" "aws_connector" {
remote_network_id = twingate_remote_network.aws_production.id
}
resource "twingate_group" "engineering" {
name = "engineering-team"
}
resource "twingate_resource" "postgres_db" {
name = "prod-postgres"
address = "10.10.10.123"
remote_network_id = twingate_remote_network.aws_production.id
access {
group_ids = [twingate_group.engineering.id]
}
}
```
* **Connector Deployment:** Assisted deployment and validation of Connectors in the designated environments.
* **Policy Implementation:** Configuration of all `Resources`, `Groups`, and access policies within the Twingate Admin Console, following the approved blueprint.
* **Pilot Group Onboarding:** A structured onboarding of a small, technical pilot group (5-10 users) to validate policies and user experience.
**Phase 3: Rollout & Operational Handover**
The project concludes by scaling access and transferring operational knowledge.
* **Phased User Rollout:** Coordinated onboarding of all user groups, with communication templates and support guidelines.
* **Admin Training:** Two 90-minute sessions for the client's IT administrators covering:
* Daily operations (user/group management, resource monitoring).
* Incident response for access issues.
* Basic policy modifications and adding new resources.
* **Documentation Delivery:** A runbook containing connector health checks, a breakdown of the policy architecture, and a rollback procedure to the legacy VPN (if one existed).
**Pricing Model & Scope Boundaries**
I price this as a fixed-fee engagement based on the number of unique resource environments and user groups. The package explicitly excludes:
* Remediation of non-compliant client devices.
* In-depth endpoint security configuration.
* Support for legacy applications that cannot operate without a layer 3 network.
The key to success is treating Twingate not as a simple VPN replacement, but as a new access control layer. This package ensures the client gains not only the tool but also the operational model to maintain it securely. I'm curious how others have structured their offerings—particularly around handling device posture checks or integrating with existing IDPs like Okta or Entra ID at this scale.
Your Phase 1 is spot on. The one area I'd expand is the *Infrastructure Inventory*. It's a perfect chance to flag cloud waste that's now suddenly visible. When you catalog those AWS VMs or Azure databases, you'll almost always find forgotten test instances, overprovisioned RDS boxes, or unattached elastic IPs. I often bundle a quick cost anomaly report into this phase. It builds immediate trust and can pay for the Twingate project itself. Have you seen clients react to that?
Right-size or die