Changes for page Pricing
Last modified by Alex Cotiuga on 2026/07/13 06:55
From version 2.11
edited by Alex Cotiuga
on 2026/07/10 04:30
on 2026/07/10 04:30
Change comment:
There is no comment for this version
To version 2.41
edited by Alex Cotiuga
on 2026/07/10 05:28
on 2026/07/10 05:28
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,6 +1,13 @@ 1 1 {{velocity}} 2 2 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 3 3 #set ($contactURL = $xwiki.getURL('contact.WebHome')) 4 +#set ($upgradeURL = $xwiki.getURL('services.xwiki-upgrades')) 5 +#set ($maintenanceURL = $xwiki.getURL('services.xwiki-maintenance-support')) 6 +#set ($authURL = $xwiki.getURL('services.xwiki-authentication-access-control')) 7 +#set ($mfaURL = $xwiki.getURL('products.xwiki-two-factor-authentication')) 8 +#set ($securityURL = $xwiki.getURL('services.xwiki-security-review')) 9 +#set ($migrationURL = $xwiki.getURL('services.xwiki-migrations')) 10 +#set ($developmentURL = $xwiki.getURL('services.xwiki-development-integrations')) 4 4 #set ($startingPoints = [{ 5 5 'icon': 'search', 6 6 'title': 'Review & diagnose', ... ... @@ -41,51 +41,63 @@ 41 41 #set ($commonPackages = [{ 42 42 'service': 'XWiki Health Check', 43 43 'price': '€390', 44 - 'description': 'Configuration, version, extension, security and stability review with written recommendations.' 51 + 'description': 'Configuration, version, extension, security and stability review with written recommendations.', 52 + 'url': $securityURL 45 45 },{ 46 46 'service': 'Upgrade Readiness Review', 47 47 'price': '€390', 48 - 'description': 'Upgrade path, compatibility risks, customizations and effort estimate before implementation.' 56 + 'description': 'Upgrade path, compatibility risks, customizations and effort estimate before implementation.', 57 + 'url': $upgradeURL 49 49 },{ 50 50 'service': 'XWiki Authentication Review', 51 51 'price': '€290', 52 - 'description': 'Review of login flow, users, groups, access control and authentication options.' 61 + 'description': 'Review of login flow, users, groups, access control and authentication options.', 62 + 'url': $authURL 53 53 },{ 54 54 'service': 'Urgent XWiki Troubleshooting', 55 55 'price': 'From €250/session', 56 - 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.' 66 + 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.', 67 + 'url': $maintenanceURL 57 57 },{ 58 58 'service': 'Standard XWiki LTS Upgrade', 59 59 'price': 'From €790', 60 - 'description': 'Upgrade preparation, execution, compatibility checks and post-upgrade validation.' 71 + 'description': 'Upgrade preparation, execution, compatibility checks and post-upgrade validation.', 72 + 'url': $upgradeURL 61 61 },{ 62 62 'service': 'XWiki MFA Installation & Configuration', 63 63 'price': 'From €490', 64 - 'description': 'MFA setup for the standard XWiki login flow, with configuration, testing and guidance.' 76 + 'description': 'MFA setup for the standard XWiki login flow, with configuration, testing and guidance.', 77 + 'url': $mfaURL 65 65 },{ 66 66 'service': 'OIDC / Microsoft Entra ID Setup', 67 67 'price': 'From €590', 68 - 'description': 'OpenID Connect setup, user mapping considerations, access review and validation.' 81 + 'description': 'OpenID Connect setup, user mapping considerations, access review and validation.', 82 + 'url': $authURL 69 69 },{ 70 70 'service': 'LDAP / Active Directory Review', 71 71 'price': 'From €390', 72 - 'description': 'LDAP or Active Directory configuration review, profile mapping and group mapping recommendations.' 86 + 'description': 'LDAP or Active Directory configuration review, profile mapping and group mapping recommendations.', 87 + 'url': $authURL 73 73 },{ 74 74 'service': 'Access Control Review', 75 75 'price': 'From €390', 76 - 'description': 'Review of groups, permissions, restricted areas, public access and subwiki access model.' 91 + 'description': 'Review of groups, permissions, restricted areas, public access and subwiki access model.', 92 + 'url': $authURL 77 77 },{ 78 78 'service': 'Advanced Authentication Work', 79 79 'price': 'Quoted', 80 - 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.' 96 + 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.', 97 + 'url': $authURL 81 81 },{ 82 82 'service': 'AWS Hosting Setup for XWiki', 83 83 'price': 'From €490', 84 - 'description': 'Initial AWS deployment setup, including server preparation, HTTPS and basic backup strategy.' 101 + 'description': 'Initial AWS hosting setup for an XWiki environment, including deployment preparation, HTTPS setup and basic backup strategy.', 102 + 'url': $maintenanceURL 85 85 },{ 86 - 'service': 'XWiki AWS Cloud Hosting', 87 - 'price': 'From €120/month', 88 - 'description': 'Single-instance AWS hosting for small XWiki environments with storage, basic backups and modest traffic.' 104 + 'service': 'XWiki Hosting on AWS', 105 + 'price': 'From €49/month', 106 + 'description': 'AWS-based hosting for XWiki environments. Small setups can start at this price, while larger or more demanding environments are quoted after review.', 107 + 'url': $maintenanceURL 89 89 }]) 90 90 #set ($supportPlans = [{ 91 91 'icon': 'leaf', ... ... @@ -131,19 +131,23 @@ 131 131 #set ($complexProjects = [{ 132 132 'icon': 'sitemap', 133 133 'title': 'Wiki farms', 134 - 'content': 'Restructuring, subwiki access models, internal and external collaboration areas.' 153 + 'content': 'Restructuring, subwiki access models, internal and external collaboration areas.', 154 + 'url': $authURL 135 135 },{ 136 136 'icon': 'exchange', 137 137 'title': 'Migrations', 138 - 'content': 'Content, platform or documentation migrations into a cleaner XWiki structure.' 158 + 'content': 'Content, platform or documentation migrations into a cleaner XWiki structure.', 159 + 'url': $migrationURL 139 139 },{ 140 140 'icon': 'puzzle-piece', 141 141 'title': 'Custom applications', 142 - 'content': 'Workflow applications, structured data, dashboards and internal business tools.' 163 + 'content': 'Workflow applications, structured data, dashboards and internal business tools.', 164 + 'url': $developmentURL 143 143 },{ 144 144 'icon': 'tachometer', 145 145 'title': 'Stability work', 146 - 'content': 'Performance, troubleshooting, upgrade cleanup and long-term maintainability improvements.' 168 + 'content': 'Performance, troubleshooting, upgrade cleanup and long-term maintainability improvements.', 169 + 'url': $maintenanceURL 147 147 }]) 148 148 #set ($faqItems = [{ 149 149 'question': 'Are these fixed prices?', ... ... @@ -177,7 +177,8 @@ 177 177 <h1 id="pricing-title">XWiki Service Packages</h1> 178 178 179 179 <p class="lead"> 180 - Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support. 203 + Clear starting points for independent XWiki consulting, upgrades, authentication configuration, 204 + AWS hosting setup, troubleshooting and long-term maintenance. 181 181 </p> 182 182 183 183 <ul class="benefits"> ... ... @@ -186,7 +186,7 @@ 186 186 <li>Fixed quotes for complex work</li> 187 187 </ul> 188 188 189 - <div id="hero-cta">213 + <div class="hero-actions"> 190 190 <a class="btn btn-primary" href="$contactURL">Request a quote</a> 191 191 <a class="btn btn-secondary" href="#support">View monthly support</a> 192 192 </div> ... ... @@ -198,8 +198,9 @@ 198 198 <div class="container"> 199 199 <h2 id="starting-points-title">Three common ways to start</h2> 200 200 <p class="section-intro"> 201 - Most XWiki requests fit into one of three paths: review the current setup, implement a defined change, 202 - or set up ongoing support. 225 + Agnease provides independent XWiki consulting, upgrade support, authentication configuration, 226 + AWS hosting setup, troubleshooting and long-term maintenance for existing XWiki installations. 227 + Most requests begin by reviewing the current setup, implementing a defined change, or setting up regular support. 203 203 </p> 204 204 205 205 <div class="pathways"> ... ... @@ -230,7 +230,7 @@ 230 230 </div> 231 231 </section> 232 232 233 -<section aria-labelledby="pricing-note-title"> 258 +<section class="industry-trust-section" aria-labelledby="pricing-note-title"> 234 234 <div class="container"> 235 235 <div class="industry-trust-panel"> 236 236 <h2 id="pricing-note-title">Simple starting prices, reviewed scope when needed</h2> ... ... @@ -251,24 +251,32 @@ 251 251 a quick review before confirming the final scope. 252 252 </p> 253 253 254 - <table class="table table-bordered table-striped"> 255 - <thead> 256 - <tr> 257 - <th>Service</th> 258 - <th>Starting price</th> 259 - <th>What it covers</th> 260 - </tr> 261 - </thead> 262 - <tbody> 263 - #foreach ($entry in $commonPackages) 279 + <div class="table-responsive"> 280 + <table class="table table-bordered table-striped"> 281 + <thead> 264 264 <tr> 265 - <t d><strong>$entry.service</strong></td>266 - <t d>$entry.price</td>267 - <t d>$entry.description</td>283 + <th>Service</th> 284 + <th>Starting price</th> 285 + <th>What it covers</th> 268 268 </tr> 269 - #end 270 - </tbody> 271 - </table> 287 + </thead> 288 + <tbody> 289 + #foreach ($entry in $commonPackages) 290 + <tr> 291 + <td> 292 + #if ("$!entry.url" != '') 293 + <strong><a href="$entry.url">$entry.service</a></strong> 294 + #else 295 + <strong>$entry.service</strong> 296 + #end 297 + </td> 298 + <td>$entry.price</td> 299 + <td>$entry.description</td> 300 + </tr> 301 + #end 302 + </tbody> 303 + </table> 304 + </div> 272 272 </div> 273 273 </section> 274 274 ... ... @@ -341,7 +341,13 @@ 341 341 <div class="widget"> 342 342 <div class="icon"> 343 343 <i class="fa fa-$entry.icon" aria-hidden="true"></i> 344 - <h4>$entry.title</h4> 377 + <h4> 378 + #if ("$!entry.url" != '') 379 + <a href="$entry.url">$entry.title</a> 380 + #else 381 + $entry.title 382 + #end 383 + </h4> 345 345 </div> 346 346 <p>$entry.content</p> 347 347 </div> ... ... @@ -348,7 +348,7 @@ 348 348 #end 349 349 </div> 350 350 351 - <div id="hero-cta">390 + <div class="hero-actions"> 352 352 <a class="btn btn-primary" href="$contactURL">Request a project quote</a> 353 353 </div> 354 354 </div> ... ... @@ -392,9 +392,117 @@ 392 392 }, 393 393 "serviceType": "XWiki consulting, support, upgrades, authentication and maintenance", 394 394 "areaServed": "International", 395 - "description": "XWiki service packages for upgrades, support, authentication, troubleshooting, maintenance and implementation." 434 + "description": "Independent XWiki consulting, support, upgrades, authentication configuration, AWS hosting setup, troubleshooting and long-term maintenance for existing XWiki installations.", 435 + "hasOfferCatalog": { 436 + "@type": "OfferCatalog", 437 + "name": "Agnease XWiki service packages", 438 + "itemListElement": [{ 439 + "@type": "Offer", 440 + "name": "XWiki Health Check", 441 + "price": "390", 442 + "priceCurrency": "EUR", 443 + "description": "Configuration, version, extension, security and stability review with written recommendations." 444 + },{ 445 + "@type": "Offer", 446 + "name": "Upgrade Readiness Review", 447 + "price": "390", 448 + "priceCurrency": "EUR", 449 + "description": "Upgrade path, compatibility risks, customizations and effort estimate before implementation." 450 + },{ 451 + "@type": "Offer", 452 + "name": "XWiki Authentication Review", 453 + "price": "290", 454 + "priceCurrency": "EUR", 455 + "description": "Review of login flow, users, groups, access control and authentication options." 456 + },{ 457 + "@type": "Offer", 458 + "name": "Urgent XWiki Troubleshooting", 459 + "price": "250", 460 + "priceCurrency": "EUR", 461 + "description": "Starting price per session for live XWiki troubleshooting." 462 + },{ 463 + "@type": "Offer", 464 + "name": "Standard XWiki LTS Upgrade", 465 + "price": "790", 466 + "priceCurrency": "EUR", 467 + "description": "Starting price for XWiki LTS upgrade preparation, execution and validation." 468 + },{ 469 + "@type": "Offer", 470 + "name": "XWiki MFA Installation & Configuration", 471 + "price": "490", 472 + "priceCurrency": "EUR", 473 + "description": "Starting price for MFA setup for the standard XWiki login flow." 474 + },{ 475 + "@type": "Offer", 476 + "name": "OIDC / Microsoft Entra ID Setup", 477 + "price": "590", 478 + "priceCurrency": "EUR", 479 + "description": "Starting price for OpenID Connect setup and validation for XWiki." 480 + },{ 481 + "@type": "Offer", 482 + "name": "AWS Hosting Setup for XWiki", 483 + "price": "490", 484 + "priceCurrency": "EUR", 485 + "description": "Starting price for initial AWS deployment setup for XWiki." 486 + },{ 487 + "@type": "Offer", 488 + "name": "XWiki Hosting on AWS", 489 + "price": "49", 490 + "priceCurrency": "EUR", 491 + "description": "Starting monthly price for small single-instance AWS hosting for XWiki." 492 + }] 493 + } 396 396 } 397 397 </script> 398 398 497 +<script type="application/ld+json"> 498 +{ 499 + "@context": "https://schema.org", 500 + "@type": "FAQPage", 501 + "mainEntity": [{ 502 + "@type": "Question", 503 + "name": "Are these fixed prices?", 504 + "acceptedAnswer": { 505 + "@type": "Answer", 506 + "text": "Some services have fixed starting prices. Larger or more complex projects are reviewed first and quoted separately, so the scope, risks and required testing are clear before implementation starts." 507 + } 508 + },{ 509 + "@type": "Question", 510 + "name": "Do you charge hourly?", 511 + "acceptedAnswer": { 512 + "@type": "Answer", 513 + "text": "For support plans, time allocation is used to manage monthly work. For projects, Agnease aims to provide clear service packages or fixed quotes whenever the scope can be defined." 514 + } 515 + },{ 516 + "@type": "Question", 517 + "name": "Can you work on existing XWiki installations?", 518 + "acceptedAnswer": { 519 + "@type": "Answer", 520 + "text": "Yes. Agnease works with existing XWiki instances, including upgrades, troubleshooting, authentication, customizations, extensions and long-term maintenance." 521 + } 522 + },{ 523 + "@type": "Question", 524 + "name": "What happens if my XWiki instance is more complex?", 525 + "acceptedAnswer": { 526 + "@type": "Answer", 527 + "text": "Agnease first reviews the current setup, identifies risks and dependencies, and then provides a quote based on the actual scope." 528 + } 529 + },{ 530 + "@type": "Question", 531 + "name": "Can I book a call directly?", 532 + "acceptedAnswer": { 533 + "@type": "Answer", 534 + "text": "Yes. The contact form includes a call booking option, but sending a short description first helps Agnease understand the context before the discussion." 535 + } 536 + },{ 537 + "@type": "Question", 538 + "name": "Do prices include external costs?", 539 + "acceptedAnswer": { 540 + "@type": "Answer", 541 + "text": "The prices on this page cover Agnease services. External hosting, infrastructure or third-party costs are discussed separately when relevant." 542 + } 543 + }] 544 +} 545 +</script> 399 399 {{/html}} 400 400 {{/velocity}}