Changes for page Pricing

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

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

Summary

Details

Page properties
Content
... ... @@ -1,6 +1,5 @@
1 1  {{velocity}}
2 2  #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 -
4 4  #set ($contactURL = $xwiki.getURL('contact.WebHome'))
5 5  
6 6  #set ($startingPoints = [{
... ... @@ -7,23 +7,23 @@
7 7   'icon': 'search',
8 8   'title': 'Review & diagnose',
9 9   'price': 'From €290',
10 - 'description': 'For teams that need to understand risks, issues or the current state before making changes.',
9 + 'description': 'For teams that need to understand risks, issues or the current XWiki state before making changes.',
11 11   'items': [
12 - 'XWiki Health Check',
13 - 'Upgrade Readiness Review',
14 - 'Authentication Review',
15 - 'Urgent Troubleshooting'
11 + 'Health checks',
12 + 'Upgrade readiness reviews',
13 + 'Authentication reviews',
14 + 'Urgent troubleshooting'
16 16   ],
17 17   'cta': 'Start with a review'
18 18  },{
19 19   'icon': 'cogs',
20 - 'title': 'Implement & configure',
19 + 'title': 'Implement changes',
21 21   'price': 'From €490',
22 22   'description': 'For teams ready to make a specific XWiki change, upgrade or authentication improvement.',
23 23   'items': [
24 - 'Standard XWiki LTS Upgrade',
25 - 'MFA Installation',
26 - 'OIDC / Microsoft Entra ID Setup',
23 + 'XWiki LTS upgrades',
24 + 'MFA installation',
25 + 'OIDC / Entra ID setup',
27 27   'LDAP / Active Directory work'
28 28   ],
29 29   'cta': 'Request implementation quote'
... ... @@ -56,7 +56,7 @@
56 56  },{
57 57   'service': 'Urgent XWiki Troubleshooting',
58 58   'price': 'From €250',
59 - 'description': 'Live troubleshooting session for blocking issues, errors, failed upgrades or production problems.'
58 + 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.'
60 60  },{
61 61   'service': 'Standard XWiki LTS Upgrade',
62 62   'price': 'From €790',
... ... @@ -64,7 +64,7 @@
64 64  },{
65 65   'service': 'XWiki MFA Installation & Configuration',
66 66   'price': 'From €490',
67 - 'description': 'MFA installation, login flow integration, basic configuration, testing and administrator guidance.'
66 + 'description': 'MFA installation for the standard XWiki login flow. In SSO environments, MFA may be better enforced by the identity provider.'
68 68  },{
69 69   'service': 'OIDC / Microsoft Entra ID Setup',
70 70   'price': 'From €590',
... ... @@ -83,28 +83,6 @@
83 83   'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.'
84 84  }])
85 85  
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 -
108 108  #set ($supportPlans = [{
109 109   'icon': 'leaf',
110 110   'title': 'Essential Support',
... ... @@ -145,15 +145,23 @@
145 145   'cta': 'Discuss extended support'
146 146  }])
147 147  
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 -])
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 +}])
157 157  
158 158  #set ($faqItems = [{
159 159   'question': 'Are these fixed prices?',
... ... @@ -177,217 +177,201 @@
177 177  
178 178  {{html clean="false"}}
179 179  
180 -<section class="resource-header" aria-labelledby="hero-title">
165 +<section class="hero hero-centered" aria-labelledby="pricing-title">
181 181   <div class="container">
182 - <div class="text-center">
167 + <div class="hero-inner">
183 183   <div class="hero-kicker">
184 184   <i class="fa fa-eur" aria-hidden="true"></i>
185 185   XWiki consulting, support and implementation
186 186   </div>
187 - </div>
188 188  
189 - <h1 id="hero-title">XWiki Service Packages</h1>
173 + <h1 id="pricing-title">XWiki Service Packages</h1>
190 190  
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>
175 + <p class="lead">
176 + Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support.
177 + </p>
195 195  
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>
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>
199 199   </div>
200 200   </div>
201 201  </section>
202 202  
203 -<section class="resource-page">
192 +<section id="starting-points" aria-labelledby="starting-points-title">
204 204   <div class="container">
205 - <div class="resource-layout">
206 - <article class="resource-content services">
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>
207 207  
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>
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>
215 215  
216 - <h2 id="starting-points">Choose your starting point</h2>
210 + <p><strong>$entry.price</strong></p>
211 + <p>$entry.description</p>
217 217  
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>
213 + <ul>
214 + #foreach ($item in $entry.items)
215 + <li>$item</li>
216 + #end
217 + </ul>
223 223  
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>
219 + <div class="card-link">
220 + <a href="$contactURL">$entry.cta</a>
221 + </div>
222 + </article>
223 + #end
224 + </div>
225 + </div>
226 +</section>
244 244  
245 - <h2 id="common-packages">Common starting packages</h2>
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>
246 246  
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>
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>
251 251  
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>
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>
270 270  
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>
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>
277 277  
278 - <h2 id="authentication">Authentication & access control</h2>
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>
279 279  
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>
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>
286 286  
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>
301 + <p><strong>$entry.price</strong></p>
302 + <p>$entry.description</p>
294 294  
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>
304 + <ul>
305 + #foreach ($item in $entry.items)
306 + <li>$item</li>
310 310   #end
311 - </tbody>
312 - </table>
308 + </ul>
313 313  
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>
310 + <div class="card-link">
311 + <a href="$contactURL">$entry.cta</a>
312 + </div>
313 + </article>
314 + #end
315 + </div>
322 322  
323 - <h2 id="support">Monthly support plans</h2>
317 + <p class="section-intro">
318 + Larger features, migrations, major customizations and complex projects are quoted separately.
319 + </p>
320 + </div>
321 +</section>
324 324  
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>
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>
329 329  
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
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>
349 349   </div>
341 + #end
342 + </div>
350 350  
351 - <div class="resource-note">
352 - <p>
353 - Larger features, migrations, major customizations and complex projects are quoted separately.
354 - </p>
355 - </div>
344 + <div id="hero-cta">
345 + <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
346 + </div>
347 + </div>
348 +</section>
356 356  
357 - <h2 id="complex-projects">Need something more complex?</h2>
350 +<section id="faq" aria-labelledby="faq-title">
351 + <div class="container">
352 + <h2 id="faq-title">FAQ</h2>
358 358  
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>
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
391 391   </div>
392 392  </section>
393 393