Wiki source code of Public Web Site

Version 26.3 by Agnease on 2026/07/01 17:06

Hide last authors
Agnease 1.2 1 {{velocity}}
Agnease 3.5 2 #macro (displayPublicContent)
Agnease 3.4 3 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
4 {{html clean="false"}}
Agnease 25.40 5 <section class="hero hero-saas" id="top">
6 <div class="container">
7 <div class="hero-layout">
8 <div class="hero-copy">
9 <h1>Professional XWiki consulting <span>and engineering</span></h1>
Agnease 25.62 10
Agnease 25.40 11 <p class="lead">
12 Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical engineering support, custom development, integrations and long-term care.
13 </p>
Agnease 25.62 14
Agnease 25.40 15 <ul class="benefits">
16 <li>XWiki LTS upgrades</li>
17 <li>Maintenance and support</li>
18 <li>Custom XWiki development</li>
19 <li>Migrations and integrations</li>
20 </ul>
Agnease 25.62 21
Agnease 25.40 22 <div class="hero-actions" id="hero-cta">
23 <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06">
24 Book a free discussion
25 </a>
26 <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
27 </div>
28 </div>
Agnease 25.62 29
30 <div class="hero-image-wrapper">
31 <img
32 class="hero-image"
33 src="$doc.getAttachmentURL('agnease-xwiki-hero.png')"
34 alt="Illustration of a professional XWiki platform dashboard with upgrade, security and maintenance elements"
35 width="1200"
36 height="900"
37 loading="eager"
38 />
Agnease 25.40 39 </div>
40 </div>
41 </div>
42 </section>
43 #*
Agnease 20.1 44 <section class="hero hero-centered" aria-labelledby="hero-title">
Agnease 5.1 45 <div class="container hero-inner">
Agnease 12.25 46 <h1 id="hero-title">Professional XWiki consulting and engineering</h1>
Agnease 6.27 47
48 <p class="lead">
Agnease 12.20 49 Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical
50 engineering support, custom development, integrations and long-term care.
Agnease 6.27 51 </p>
52
Agnease 3.89 53 <ul class="benefits">
Agnease 12.20 54 <li>XWiki LTS upgrades</li>
55 <li>Maintenance and support</li>
56 <li>Custom XWiki development</li>
57 <li>Migrations and integrations</li>
Agnease 3.89 58 </ul>
Agnease 6.27 59
60 <div class="hero-actions">
Agnease 20.1 61 <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06">Book a free discussion</a>
Agnease 13.20 62 ##<a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a consultation</a>
Agnease 6.27 63 <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
Agnease 3.4 64 </div>
Agnease 1.2 65 </div>
Agnease 3.4 66 </section>
Agnease 25.40 67 *#
Agnease 6.27 68 <section class="trust-strip" aria-label="Agnease experience">
Agnease 3.4 69 <div class="container">
Agnease 6.27 70 <ul>
71 <li><i class="fa fa-check-circle" aria-hidden="true"></i> 11+ years of XWiki experience</li>
72 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Upgrades, support and custom development</li>
73 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Security-aware maintenance</li>
74 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Practical long-term collaboration</li>
75 </ul>
Agnease 1.2 76 </div>
Agnease 3.4 77 </section>
Agnease 6.27 78
79 <section aria-labelledby="platform-title">
Agnease 3.4 80 <div class="container">
Agnease 12.20 81 <h2 id="platform-title">XWiki support for production knowledge platforms</h2>
Agnease 6.27 82 <p class="section-intro">
Agnease 12.20 83 XWiki often grows from a documentation space into a business-critical knowledge platform.
Agnease 12.24 84 When it supports intranets, procedures, workflows, audits or integrations, it needs structured technical care
85 for upgrades, security, permissions and maintainability.
Agnease 5.1 86 </p>
Agnease 1.1 87
Agnease 6.27 88 <div class="pathways">
89 <article class="pathway-card">
Agnease 13.2 90 <div class="card-heading">
91 <div class="pathway-icon">
92 <i class="fa fa-refresh" aria-hidden="true"></i>
93 </div>
94 <h3>Upgrade XWiki safely</h3>
Agnease 6.27 95 </div>
96 <p>
Agnease 12.20 97 Plan and execute XWiki LTS upgrades with compatibility checks, staging validation and rollback planning.
Agnease 6.27 98 </p>
99 <ul>
100 <li>LTS upgrade planning</li>
101 <li>Extension and custom code review</li>
Agnease 12.20 102 <li>Staging and production validation</li>
Agnease 6.27 103 </ul>
104 <p class="card-link">
Agnease 6.32 105 <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
Agnease 6.27 106 </p>
107 </article>
Agnease 5.1 108
Agnease 6.27 109 <article class="pathway-card">
Agnease 13.2 110 <div class="card-heading">
111 <div class="pathway-icon">
112 <i class="fa fa-life-ring" aria-hidden="true"></i>
113 </div>
114 <h3>Maintain XWiki reliably</h3>
Agnease 6.27 115 </div>
116 <p>
Agnease 12.20 117 Keep production XWiki instances stable with troubleshooting, maintenance planning, recovery support and security-aware care.
Agnease 6.27 118 </p>
119 <ul>
120 <li>Troubleshooting and recovery</li>
121 <li>Performance and log analysis</li>
Agnease 12.21 122 <li>Upgrade and maintenance planning</li>
Agnease 6.27 123 </ul>
124 <p class="card-link">
Agnease 6.32 125 <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
Agnease 6.27 126 </p>
127 </article>
128
129 <article class="pathway-card">
Agnease 13.2 130 <div class="card-heading">
131 <div class="pathway-icon">
132 <i class="fa fa-cogs" aria-hidden="true"></i>
133 </div>
134 <h3>Extend XWiki for your processes</h3>
Agnease 6.27 135 </div>
136 <p>
Agnease 12.22 137 Build custom XWiki applications, workflows, dashboards and integrations around real business needs.
Agnease 6.27 138 </p>
139 <ul>
140 <li>Custom XWiki applications</li>
141 <li>Workflows and approvals</li>
Agnease 12.22 142 <li>APIs, SSO, LDAP and integrations</li>
Agnease 6.27 143 </ul>
144 <p class="card-link">
Agnease 6.32 145 <a href="$xwiki.getURL('services.xwiki-development-integrations')">View development services</a>
Agnease 6.27 146 </p>
147 </article>
Agnease 3.4 148 </div>
Agnease 1.2 149 </div>
Agnease 3.4 150 </section>
Agnease 6.27 151
Agnease 20.2 152 <section class="industry-trust-section" aria-labelledby="industry-trust-title">
153 <div class="container">
Agnease 20.3 154 <div class="industry-trust-panel">
Agnease 20.5 155 <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2>
Agnease 20.2 156
Agnease 20.3 157 <p class="section-intro">
158 Experience supporting XWiki platforms used in healthcare, financial services, scientific research,
159 government institutions, transportation, software development, compliance programs and regulated environments.
160 </p>
Agnease 20.2 161
Agnease 20.3 162 <div class="industry-tags" aria-label="Industries and environments supported">
163 <span>Healthcare</span>
164 <span>Financial services</span>
165 <span>Scientific research</span>
166 <span>Government institutions</span>
167 <span>Transportation</span>
168 <span>Software development</span>
169 <span>Compliance programs</span>
170 <span>Regulated environments</span>
171 </div>
172
173 <p class="industry-support">
Agnease 20.5 174 Organizations rely on these platforms to manage documentation, workflows, compliance processes,
175 research knowledge and critical business information. From upgrades and authentication integrations
176 to workflow systems and long-term maintenance, Agnease helps keep XWiki secure, stable and ready for the future.
Agnease 20.3 177 </p>
Agnease 20.2 178 </div>
179 </div>
180 </section>
181
Agnease 6.27 182 <section class="split-section" aria-labelledby="why-title">
Agnease 3.4 183 <div class="container">
Agnease 6.27 184 <div class="split-grid">
185 <div class="split-copy">
Agnease 12.22 186 <h2 id="why-title">Why work with an XWiki specialist</h2>
Agnease 6.27 187 <p>
Agnease 12.22 188 XWiki projects often involve more than pages. Production platforms may include custom code,
Agnease 20.8 189 extensions, authentication, permissions, workflows, integrations, compliance documentation
190 and business-critical knowledge.
Agnease 6.27 191 </p>
192 <p>
Agnease 20.8 193 Agnease brings 11+ years of hands-on XWiki experience to help reduce risk, support long-term reliability
Agnease 12.22 194 and leave the platform easier to maintain after the work is complete.
Agnease 6.27 195 </p>
196 </div>
197
198 <ol class="process-list">
199 <li>
Agnease 12.22 200 <strong>Review the XWiki environment</strong>
201 Version, extensions, infrastructure, authentication, permissions, custom code and critical features.
Agnease 6.27 202 </li>
203 <li>
Agnease 12.22 204 <strong>Define the safest next steps</strong>
205 Scope, risks, dependencies, effort, rollback options and validation requirements.
Agnease 6.27 206 </li>
207 <li>
Agnease 12.22 208 <strong>Implement, validate and document</strong>
209 Controlled changes, testing, production validation and notes for future maintenance.
Agnease 6.27 210 </li>
211 </ol>
212 </div>
213 </div>
214 </section>
215
Agnease 10.38 216 <section class="resource-strip homepage-resource-strip" aria-labelledby="resources-title">
Agnease 6.27 217 <div class="container">
Agnease 12.22 218 <h2 id="resources-title">XWiki resources for safer long-term maintenance</h2>
Agnease 6.27 219 <p class="section-intro">
Agnease 12.22 220 Practical articles about XWiki upgrades, customization and production platform care.
Agnease 3.4 221 </p>
Agnease 6.27 222
223 <div class="resource-grid">
224 <article class="resource-card">
225 <h4>Why upgrade your XWiki instance?</h4>
226 <p>
Agnease 12.22 227 Learn why regular XWiki upgrades reduce security exposure, compatibility issues and long-term maintenance risk.
Agnease 6.27 228 </p>
Agnease 12.22 229 <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Read the article</a>
Agnease 6.27 230 </article>
231
232 <article class="resource-card">
233 <h4>XWiki upgrade services</h4>
234 <p>
Agnease 12.22 235 See how XWiki upgrades can be planned, tested and validated for production instances with customizations and integrations.
Agnease 6.27 236 </p>
Agnease 12.22 237 <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
Agnease 6.27 238 </article>
239 </div>
Agnease 3.4 240 </div>
241 </section>
Agnease 3.16 242
Agnease 6.27 243 <section class="cta-section" aria-labelledby="contact-title">
244 <div class="container">
245 <div class="cta-panel">
Agnease 12.22 246 <h2 id="contact-title">Need XWiki consulting or support?</h2>
Agnease 6.27 247 <p>
Agnease 12.22 248 Send your current XWiki version, the issue you are facing, or the type of project you want to build.
249 A short description is enough to define practical next steps.
Agnease 6.27 250 </p>
251 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a>
Agnease 3.16 252 </div>
253 </div>
Agnease 6.27 254 </section>
255
256 {{/html}}
Agnease 3.16 257 #end
Agnease 3.55 258
Agnease 3.66 259 #macro (stripHTMLMacro $displayOutput)
Agnease 3.77 260 $stringtool.removeEnd($stringtool.removeStart($displayOutput, '{{html clean="false" wiki="false"}}'), '{{/html}}').replace('Agnease.Code.Lead.LeadClass_0_', 'acl-')
Agnease 3.66 261 #end
262
Agnease 3.55 263 #macro (displayFormFromSheetCode)
Agnease 3.61 264 #set ($editing = true)
Agnease 3.55 265 ## The object to display.
Agnease 3.65 266 #set ($xobject = $doc.newObject('Agnease.Code.Lead.LeadClass'))
Agnease 3.55 267 ## The class that describes the object properties.
Agnease 3.60 268 #set ($xclass = $xwiki.getClass('Agnease.Code.Lead.LeadClass'))
Agnease 3.55 269 ## Make sure the following display* method calls use the right object.
270 #set ($discard = $doc.use($xobject))
271 ## Using the xform vertical form layout.
Agnease 3.70 272 <div class="xform">
Agnease 3.55 273 <dl>
274 #foreach ($property in $xclass.properties)
Agnease 3.84 275 #if ($property.name != 'status')
276 <dt #if (!$editing)
277 class="editableProperty"
278 #set ($xobjectPropertyReference = $xobject.getPropertyReference($property.name))
279 data-property="$escapetool.xml($services.model.serialize($xobjectPropertyReference))"
280 data-property-type="object"#end>
281 ## This must match the id generated by the $doc.display() method below.
282 #set ($propertyId = "acl-$property.name")
283 <label#if ($editing) for="$escapetool.xml($propertyId)"#end>
284 $escapetool.xml($property.translatedPrettyName)
285 </label>
286 ## Support for specifying a translation key as hint in the property definition.
287 <span class="xHint">$!escapetool.xml($services.localization.render($property.hint))</span>
288 </dt>
289 #set ($displayOutput = $doc.display($property.name, 'edit'))
290 <dd>#stripHTMLMacro($displayOutput)</dd>
291 #end
Agnease 3.55 292 #end
293 #if (!$xclass.properties || $xclass.properties.size() == 0)
294 ## Keep the empty definition term in order to have valid HTML.
295 <dt></dt>
296 <dd>$escapetool.xml($services.localization.render('xclass.defaultObjectSheet.noProperties'))</dd>
297 #end
298 </dl>
299 </div>
300 #end
Agnease 1.2 301 {{/velocity}}