You launch a new project on Craft CMS and within an hour you run into PHP extension incompatibilities, config confusion, and no environment separation. This scenario is all too familiar. We've executed over 50 Craft CMS deployments for projects ranging from 100 to 1 million monthly visits and know how to avoid these pitfalls. Our service isn't just a Composer install. We audit the server, configure each environment, integrate Vite, and hand over the project with full documentation. The result: a stable, secure, and scalable CMS platform ready for development.
For instance, we recently set up Craft CMS for a site with 10,000 daily visitors. After optimizing caching and configuring Redis, TTFB dropped by 40%, and API response time halved. Average page load time after optimization: 200 ms. Such results are only possible with proper environment configuration. Below we break down typical problems and show how to solve them.
Typical Problems with Craft CMS Installation
- PHP extension incompatibilities: the server lacks ext-imagick, ext-intl, or ext-fileinfo. We check and install all required extensions.
- Database configuration errors: Craft supports MySQL and PostgreSQL. We choose the optimal DBMS for the project, configure encoding and access rights.
- Missing Project Config under Git: many change structure via the admin panel, causing environment drift. We set up Project Config immediately and disable UI changes in production.
- Deployment issues: without a clear process, CMS or plugin updates can break the site. We use CI/CD and rollbacks.
How We Configure the Environment
We use a modern stack: PHP 8.3, PostgreSQL 16, Nginx, Redis for cache, Vite for frontend builds. Each project is deployed in Docker for isolation, and production runs via Ansible. We guarantee stable operation even under loads up to 1,000 requests per second.
Example production configuration:
// config/general.php return [ '*' => [ 'cpTrigger' => 'manage', 'omitScriptNameInUrls' => true, 'useEmailAsUsername' => true, 'maxRevisions' => 10, ], 'production' => [ 'allowAdminChanges' => false, 'allowUpdates' => false, 'backupOnUpdate' => false, 'devMode' => false, ], ]; Project Config for Different Environments
Project Config stores the site structure in YAML files inside config/project/. This allows managing changes via Git and applying them with the php craft project-config/apply command. For each environment, we set its own parameters: devMode, allowAdminChanges, database. We always disable allowAdminChanges in production to prevent accidental UI edits. Installing Craft CMS with Project Config is our standard.
Why Use Vite with Craft CMS?
Vite delivers fast development with ES modules and Hot Module Replacement (HMR). Combined with the craft-vite plugin, you get optimized production bundles. Craft CMS with Vite reduces asset build time by 50% compared to Webpack, speeding up development iterations. Vite and Project Config are two key components of our approach.
Craft CMS with proper caching processes requests 3 times faster than without optimization. This gain comes from a combination of Redis, smart template caching, and HTTP cache tuning. Hosting cost savings from optimization can reach 30%. Our team has 7 years of experience with Craft CMS, backed by 50 successful projects.
Benefits of Professional Craft CMS Setup
- TTFB reduced to 200 ms.
- Core Web Vitals (LCP, CLS, INP) improved by 30–50%.
- Full environment sync via Git with Project Config.
- Seamless deployment with rollbacks via CI/CD.
Work Process
- Requirements analysis: discuss project type, loads, necessary integrations.
- Infrastructure deployment: prepare server or Docker environment.
- Installation and configuration: install via Composer, configure .env, database, configs.
- Integration with Vite and CI/CD: set up asset builds, automatic deployment.
- Testing and optimization: check Core Web Vitals, configure caching.
- Project handover: documentation, access, maintenance instructions.
Environment Comparison
| Parameter | Dev | Staging | Production |
|---|---|---|---|
| devMode | true | false | false |
| allowAdminChanges | true | true | false |
| allowUpdates | true | true | false |
| backupOnUpdate | true | true | false |
| Database | PostgreSQL 16 | PostgreSQL 16 | PostgreSQL 16 with replica |
| Cache | none | Redis | Redis + CDN |
DIY vs Professional Setup
| Criteria | DIY | Professional |
|---|---|---|
| Setup time | 3-7 days | 2-5 days |
| Error risk | high | minimal |
| Core Web Vitals optimization | not guaranteed | target metrics |
| Support | none | 1-month warranty |
What's Included
Includes: server analysis, Craft CMS installation and configuration, Project Config setup, Vite integration, CI/CD pipeline creation, maintenance documentation, team training (1-hour consultation), and warranty support for 1 month after delivery.
Timeline and Cost
Craft CMS installation and basic configuration takes 2 to 5 working days depending on complexity. Cost is calculated individually after requirements analysis. The investment pays off within the first month of development due to accelerated team workflow.
Common Mistakes Checklist
- PHP extensions not checked → installation errors.
- MySQL used instead of PostgreSQL (if the project requires geo-data or complex queries).
- allowAdminChanges enabled in production → risk of accidental structure changes.
- Backups not configured → data loss.
- Caching ignored → high TTFB and poor Core Web Vitals.
Order a turnkey Craft CMS installation — get a fully configured environment with Project Config, ready for development. Contact us for a consultation and project assessment. Our experience is backed by client testimonials and years of work with high-traffic projects.







