Changes for page Pricing

Last modified by Agnease on 2026/07/10 06:00

From version 1.18
edited by Agnease
on 2026/07/10 04:02
Change comment: There is no comment for this version
To version 1.3
edited by Agnease
on 2026/07/10 03:36
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,5 +1,6 @@
1 1  {{velocity}}
2 2  #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 +
3 3  #set ($contactURL = $xwiki.getURL('contact.WebHome'))
4 4  
5 5  #set ($startingPoints = [{
... ... @@ -6,23 +6,23 @@
6 6   'icon': 'search',
7 7   'title': 'Review & diagnose',
8 8   'price': 'From €290',
9 - 'description': 'For teams that need to understand risks, issues or the current XWiki state before making changes.',
10 + 'description': 'For teams that need to understand risks, issues or the current state before making changes.',
10 10   'items': [
11 - 'Health checks',
12 - 'Upgrade readiness reviews',
13 - 'Authentication reviews',
14 - 'Urgent troubleshooting'
12 + 'XWiki Health Check',
13 + 'Upgrade Readiness Review',
14 + 'Authentication Review',
15 + 'Urgent Troubleshooting'
15 15   ],
16 16   'cta': 'Start with a review'
17 17  },{
18 18   'icon': 'cogs',
19 - 'title': 'Implement changes',
20 + 'title': 'Implement & configure',
20 20   'price': 'From €490',
21 21   'description': 'For teams ready to make a specific XWiki change, upgrade or authentication improvement.',
22 22   'items': [
23 - 'XWiki LTS upgrades',
24 - 'MFA installation',
25 - 'OIDC / Entra ID setup',
24 + 'Standard XWiki LTS Upgrade',
25 + 'MFA Installation',
26 + 'OIDC / Microsoft Entra ID Setup',
26 26   'LDAP / Active Directory work'
27 27   ],
28 28   'cta': 'Request implementation quote'
... ... @@ -55,7 +55,7 @@
55 55  },{
56 56   'service': 'Urgent XWiki Troubleshooting',
57 57   'price': 'From €250',
58 - 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.'
59 + 'description': 'Live troubleshooting session for blocking issues, errors, failed upgrades or production problems.'
59 59  },{
60 60   'service': 'Standard XWiki LTS Upgrade',
61 61   'price': 'From €790',
... ... @@ -63,7 +63,7 @@
63 63  },{
64 64   'service': 'XWiki MFA Installation & Configuration',
65 65   'price': 'From €490',
66 - 'description': 'MFA installation for the standard XWiki login flow. In SSO environments, MFA may be better enforced by the identity provider.'
67 + 'description': 'MFA installation, login flow integration, basic configuration, testing and administrator guidance.'
67 67  },{
68 68   'service': 'OIDC / Microsoft Entra ID Setup',
69 69   'price': 'From €590',
... ... @@ -82,6 +82,28 @@
82 82   'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.'
83 83  }])
84 84  
86 +#set ($authRows = [{
87 + 'service': 'XWiki Authentication Review',
88 + 'price': '€290',
89 + 'bestFor': 'Understanding the current login flow, users, groups and access model.'
90 +},{
91 + 'service': 'OIDC / Microsoft Entra ID Setup',
92 + 'price': 'From €590',
93 + 'bestFor': 'SSO setup with Microsoft Entra ID, Keycloak or another compatible OIDC provider.'
94 +},{
95 + 'service': 'XWiki MFA Installation',
96 + 'price': 'From €490',
97 + 'bestFor': 'Adding MFA to the standard XWiki login flow.'
98 +},{
99 + 'service': 'LDAP / Active Directory Review',
100 + 'price': 'From €390',
101 + 'bestFor': 'LDAP or AD login, profile mapping, group mapping and synchronization questions.'
102 +},{
103 + 'service': 'Advanced Authentication Work',
104 + 'price': 'Quoted after review',
105 + 'bestFor': 'Custom authenticators, container authentication, special redirects or complex wiki farm scenarios.'
106 +}])
107 +
85 85  #set ($supportPlans = [{
86 86   'icon': 'leaf',
87 87   'title': 'Essential Support',
... ... @@ -122,23 +122,15 @@
122 122   'cta': 'Discuss extended support'
123 123  }])
124 124  
125 -#set ($complexProjects = [{
126 - 'icon': 'sitemap',
127 - 'title': 'Wiki farms',
128 - 'content': 'Restructuring, subwiki access models, internal and external collaboration areas.'
129 -},{
130 - 'icon': 'exchange',
131 - 'title': 'Migrations',
132 - 'content': 'Content, platform or documentation migrations into a cleaner XWiki structure.'
133 -},{
134 - 'icon': 'puzzle-piece',
135 - 'title': 'Custom applications',
136 - 'content': 'Workflow applications, structured data, dashboards and internal business tools.'
137 -},{
138 - 'icon': 'tachometer',
139 - 'title': 'Stability work',
140 - 'content': 'Performance, troubleshooting, upgrade cleanup and long-term maintainability improvements.'
141 -}])
148 +#set ($complexProjects = [
149 + 'Wiki farm restructuring',
150 + 'Major XWiki LTS upgrades',
151 + 'Microsoft Entra ID, OIDC, LDAP or SAML integrations',
152 + 'Custom workflow applications',
153 + 'Intranet and knowledge platform development',
154 + 'Performance and stability improvements',
155 + 'Content and platform migrations'
156 +])
142 142  
143 143  #set ($faqItems = [{
144 144   'question': 'Are these fixed prices?',
... ... @@ -162,201 +162,217 @@
162 162  
163 163  {{html clean="false"}}
164 164  
165 -<section class="hero hero-centered" aria-labelledby="pricing-title">
180 +<section class="resource-header" aria-labelledby="hero-title">
166 166   <div class="container">
167 - <div class="hero-inner">
182 + <div class="text-center">
168 168   <div class="hero-kicker">
169 169   <i class="fa fa-eur" aria-hidden="true"></i>
170 170   XWiki consulting, support and implementation
171 171   </div>
187 + </div>
172 172  
173 - <h1 id="pricing-title">XWiki Service Packages</h1>
189 + <h1 id="hero-title">XWiki Service Packages</h1>
174 174  
175 - <p class="lead">
176 - Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support.
177 - </p>
191 + <p class="resource-summary">
192 + Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support.
193 + Start with a review, request an implementation quote, or choose a support plan for ongoing XWiki help.
194 + </p>
178 178  
179 - <ul class="benefits">
180 - <li>Specialized XWiki consulting</li>
181 - <li>Practical starting prices</li>
182 - <li>Fixed quotes for complex work</li>
183 - </ul>
184 -
185 - <div id="hero-cta">
186 - <a class="btn btn-primary" href="$contactURL">Request a quote</a>
187 - </div>
196 + <div id="hero-cta">
197 + <a class="btn btn-primary" href="$contactURL">Request a quote</a>
198 + <a class="btn btn-secondary" href="#starting-points">Compare starting points</a>
188 188   </div>
189 189   </div>
190 190  </section>
191 191  
192 -<section id="starting-points" aria-labelledby="starting-points-title">
203 +<section class="resource-page">
193 193   <div class="container">
194 - <h2 id="starting-points-title">Choose your starting point</h2>
195 - <p class="section-intro">
196 - Most XWiki requests fit into one of three paths: review the current setup, implement a defined change,
197 - or set up ongoing support.
198 - </p>
205 + <div class="resource-layout">
206 + <article class="resource-content services">
199 199  
200 - <div class="pathways">
201 - #foreach ($entry in $startingPoints)
202 - <article class="pathway-card">
203 - <div class="card-heading">
204 - <div class="pathway-icon" aria-hidden="true">
205 - <i class="fa fa-$entry.icon"></i>
206 - </div>
207 - <h3>$entry.title</h3>
208 - </div>
208 + <div class="resource-note">
209 + <p>
210 + <strong>Pricing note:</strong> Prices are starting points and exclude VAT where applicable.
211 + Final pricing depends on the XWiki version, installed extensions, customizations, hosting setup,
212 + authentication configuration, wiki farm complexity and required testing.
213 + </p>
214 + </div>
209 209  
210 - <p><strong>$entry.price</strong></p>
211 - <p>$entry.description</p>
216 + <h2 id="starting-points">Choose your starting point</h2>
212 212  
213 - <ul>
214 - #foreach ($item in $entry.items)
215 - <li>$item</li>
216 - #end
217 - </ul>
218 + <p>
219 + Most XWiki requests fit into one of three paths: review the current setup, implement a defined change,
220 + or set up ongoing support. This keeps the first step clear without pretending that every XWiki environment
221 + has the same complexity.
222 + </p>
218 218  
219 - <div class="card-link">
220 - <a href="$contactURL">$entry.cta</a>
221 - </div>
222 - </article>
223 - #end
224 - </div>
225 - </div>
226 -</section>
224 + <div class="services-grid">
225 + #foreach ($entry in $startingPoints)
226 + <article class="service">
227 + <div class="service-icon" aria-hidden="true">
228 + <i class="fa fa-$entry.icon"></i>
229 + </div>
230 + <div class="service-body">
231 + <h4>$entry.title</h4>
232 + <p><strong>$entry.price</strong></p>
233 + <p>$entry.description</p>
234 + <ul>
235 + #foreach ($item in $entry.items)
236 + <li>$item</li>
237 + #end
238 + </ul>
239 + <p><a class="btn btn-primary" href="$contactURL">$entry.cta</a></p>
240 + </div>
241 + </article>
242 + #end
243 + </div>
227 227  
228 -<section aria-labelledby="pricing-note-title">
229 - <div class="container">
230 - <div class="industry-trust-panel">
231 - <h2 id="pricing-note-title">Simple starting prices, reviewed scope when needed</h2>
232 - <p class="section-intro">
233 - Prices are starting points and exclude VAT where applicable. Final pricing depends on the XWiki version,
234 - installed extensions, customizations, hosting setup, authentication configuration, wiki farm complexity
235 - and required testing.
236 - </p>
237 - </div>
238 - </div>
239 -</section>
245 + <h2 id="common-packages">Common starting packages</h2>
240 240  
241 -<section id="common-packages" aria-labelledby="common-packages-title">
242 - <div class="container">
243 - <h2 id="common-packages-title">Common starting packages</h2>
244 - <p class="section-intro">
245 - These are practical entry points for common XWiki needs. Some can start directly, while others require
246 - a quick review before confirming the final scope.
247 - </p>
247 + <p>
248 + These are practical entry points for common XWiki needs. Some can start directly, while others require
249 + a quick review before confirming the final scope.
250 + </p>
248 248  
249 - <table class="table table-bordered table-striped">
250 - <thead>
251 - <tr>
252 - <th>Service</th>
253 - <th>Starting price</th>
254 - <th>What it covers</th>
255 - </tr>
256 - </thead>
257 - <tbody>
258 - #foreach ($entry in $commonPackages)
259 - <tr>
260 - <td><strong>$entry.service</strong></td>
261 - <td>$entry.price</td>
262 - <td>$entry.description</td>
263 - </tr>
264 - #end
265 - </tbody>
266 - </table>
267 - </div>
268 -</section>
252 + <table class="table table-bordered table-striped">
253 + <thead>
254 + <tr>
255 + <th>Service</th>
256 + <th>Starting price</th>
257 + <th>What it covers</th>
258 + </tr>
259 + </thead>
260 + <tbody>
261 + #foreach ($entry in $commonPackages)
262 + <tr>
263 + <td><strong>$entry.service</strong></td>
264 + <td>$entry.price</td>
265 + <td>$entry.description</td>
266 + </tr>
267 + #end
268 + </tbody>
269 + </table>
269 269  
270 -<section id="upgrade-offer" aria-labelledby="upgrade-offer-title" class="industry-trust-section">
271 - <div class="container">
272 - <div class="industry-trust-panel">
273 - <h2 id="upgrade-offer-title">New customer upgrade offer</h2>
274 - <p class="section-intro">
275 - If the Upgrade Readiness Review leads to an upgrade project with Agnease, the review cost can be credited
276 - toward the upgrade implementation.
277 - </p>
278 - <a class="btn btn-primary" href="$contactURL">Plan an upgrade</a>
279 - </div>
280 - </div>
281 -</section>
271 + <div id="upgrade-offer" class="resource-note">
272 + <p>
273 + <strong>New customer upgrade offer:</strong> If the Upgrade Readiness Review leads to an upgrade
274 + project with Agnease, the review cost can be credited toward the upgrade implementation.
275 + </p>
276 + </div>
282 282  
283 -<section id="support" aria-labelledby="support-title">
284 - <div class="container">
285 - <h2 id="support-title">Monthly support plans</h2>
286 - <p class="section-intro">
287 - Support plans are designed for organizations that already use XWiki and want regular help with troubleshooting,
288 - maintenance, upgrades, configuration, authentication and small improvements.
289 - </p>
278 + <h2 id="authentication">Authentication & access control</h2>
290 290  
291 - <div class="pathways">
292 - #foreach ($entry in $supportPlans)
293 - <article class="pathway-card">
294 - <div class="card-heading">
295 - <div class="pathway-icon" aria-hidden="true">
296 - <i class="fa fa-$entry.icon"></i>
297 - </div>
298 - <h3>$entry.title</h3>
299 - </div>
280 + <p>
281 + XWiki authentication depends on the current login method, identity provider, user source,
282 + group mapping and access-control model. Agnease can help review, configure or improve standard
283 + XWiki login, LDAP, Active Directory, OpenID Connect, Microsoft Entra ID, MFA and more advanced
284 + authentication scenarios.
285 + </p>
300 300  
301 - <p><strong>$entry.price</strong></p>
302 - <p>$entry.description</p>
287 + <div class="resource-note">
288 + <p>
289 + <strong>MFA is treated separately:</strong> SSO, LDAP and OIDC define how users log in.
290 + MFA adds an additional verification layer. In some environments MFA belongs in XWiki, while in
291 + others it is better enforced by the external identity provider.
292 + </p>
293 + </div>
303 303  
304 - <ul>
305 - #foreach ($item in $entry.items)
306 - <li>$item</li>
295 + <table class="table table-bordered table-striped">
296 + <thead>
297 + <tr>
298 + <th>Authentication service</th>
299 + <th>Starting price</th>
300 + <th>Best for</th>
301 + </tr>
302 + </thead>
303 + <tbody>
304 + #foreach ($entry in $authRows)
305 + <tr>
306 + <td><strong>$entry.service</strong></td>
307 + <td>$entry.price</td>
308 + <td>$entry.bestFor</td>
309 + </tr>
307 307   #end
308 - </ul>
311 + </tbody>
312 + </table>
309 309  
310 - <div class="card-link">
311 - <a href="$contactURL">$entry.cta</a>
312 - </div>
313 - </article>
314 - #end
315 - </div>
314 + <div class="resource-cta">
315 + <h3>Need authentication changes?</h3>
316 + <p>
317 + Send a short description of your current login method, user source, identity provider and the
318 + authentication result you want to achieve.
319 + </p>
320 + <a class="btn btn-primary" href="$contactURL">Request authentication review</a>
321 + </div>
316 316  
317 - <p class="section-intro">
318 - Larger features, migrations, major customizations and complex projects are quoted separately.
319 - </p>
320 - </div>
321 -</section>
323 + <h2 id="support">Monthly support plans</h2>
322 322  
323 -<section id="complex-projects" aria-labelledby="complex-projects-title">
324 - <div class="container">
325 - <h2 id="complex-projects-title">Need something more complex?</h2>
326 - <p class="section-intro">
327 - Some XWiki projects cannot be priced responsibly before the environment is reviewed. For wiki farms,
328 - major upgrades, migrations, custom applications, authentication changes or infrastructure restructuring,
329 - Agnease first reviews the current setup and then provides a fixed project quote.
330 - </p>
325 + <p>
326 + Support plans are designed for organizations that already use XWiki and want regular help with
327 + troubleshooting, maintenance, upgrades, configuration, authentication and small improvements.
328 + </p>
331 331  
332 - <div class="widgets">
333 - #foreach ($entry in $complexProjects)
334 - <div class="widget">
335 - <div class="icon">
336 - <i class="fa fa-$entry.icon" aria-hidden="true"></i>
337 - <h4>$entry.title</h4>
338 - </div>
339 - <p>$entry.content</p>
330 + <div class="services-grid">
331 + #foreach ($entry in $supportPlans)
332 + <article class="service">
333 + <div class="service-icon" aria-hidden="true">
334 + <i class="fa fa-$entry.icon"></i>
335 + </div>
336 + <div class="service-body">
337 + <h4>$entry.title</h4>
338 + <p><strong>$entry.price</strong></p>
339 + <p>$entry.description</p>
340 + <ul>
341 + #foreach ($item in $entry.items)
342 + <li>$item</li>
343 + #end
344 + </ul>
345 + <p><a class="btn btn-primary" href="$contactURL">$entry.cta</a></p>
346 + </div>
347 + </article>
348 + #end
340 340   </div>
341 - #end
342 - </div>
343 343  
344 - <div id="hero-cta">
345 - <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
346 - </div>
347 - </div>
348 -</section>
351 + <div class="resource-note">
352 + <p>
353 + Larger features, migrations, major customizations and complex projects are quoted separately.
354 + </p>
355 + </div>
349 349  
350 -<section id="faq" aria-labelledby="faq-title">
351 - <div class="container">
352 - <h2 id="faq-title">FAQ</h2>
357 + <h2 id="complex-projects">Need something more complex?</h2>
353 353  
354 - #foreach ($entry in $faqItems)
355 - <details class="resource-faq-item" #if ($foreach.first)open#end>
356 - <summary>$entry.question</summary>
357 - <p>$entry.answer</p>
358 - </details>
359 - #end
359 + <p>
360 + Some XWiki projects cannot be priced responsibly before the environment is reviewed. For wiki farms,
361 + major upgrades, migrations, custom applications, authentication changes or infrastructure restructuring,
362 + Agnease first reviews the current setup and then provides a fixed project quote.
363 + </p>
364 +
365 + <ul class="resource-checklist">
366 + #foreach ($item in $complexProjects)
367 + <li>$item</li>
368 + #end
369 + </ul>
370 +
371 + <div class="resource-cta">
372 + <h3>Request a project quote</h3>
373 + <p>
374 + Send a short description of your XWiki environment, current version, hosting setup and what you
375 + are trying to achieve.
376 + </p>
377 + <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
378 + </div>
379 +
380 + <h2 id="faq">FAQ</h2>
381 +
382 + #foreach ($entry in $faqItems)
383 + <details class="resource-faq-item" #if ($foreach.first)open#end>
384 + <summary>$entry.question</summary>
385 + <p>$entry.answer</p>
386 + </details>
387 + #end
388 +
389 + </article>
390 + </div>
360 360   </div>
361 361  </section>
362 362