Wiki source code of Public Web Site

Version 30.9 by Alex Cotiuga on 2026/07/21 12:53

Hide last authors
Alex Cotiuga 1.2 1 {{velocity}}
Alex Cotiuga 3.5 2 #macro (displayPublicContent)
Alex Cotiuga 3.4 3 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
4 {{html clean="false"}}
Alex Cotiuga 28.2 5 <section class="hero hero-saas" id="top">
Alex Cotiuga 28.3 6 <div class="container">
7 <div class="hero-layout">
8 <div class="hero-copy">
9 <h1>Professional XWiki consulting <span>and engineering</span></h1>
Alex Cotiuga 28.2 10
Alex Cotiuga 28.3 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>
Alex Cotiuga 28.2 14
Alex Cotiuga 28.3 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>
Alex Cotiuga 28.2 21
Alex Cotiuga 28.3 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>
Alex Cotiuga 25.40 28 </div>
Alex Cotiuga 28.2 29
Alex Cotiuga 28.3 30 <div class="hero-image-wrapper">
31 <img
32 class="hero-image"
Alex Cotiuga 28.4 33 src="$xwiki.getDocument('PublicWebSite.WebHome').getAttachmentURL('agnease-xwiki-hero.png')"
Alex Cotiuga 28.3 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 />
39 </div>
Alex Cotiuga 25.40 40 </div>
41 </div>
Alex Cotiuga 28.3 42 </section>
Alex Cotiuga 25.40 43 #*
Alex Cotiuga 20.1 44 <section class="hero hero-centered" aria-labelledby="hero-title">
Alex Cotiuga 5.1 45 <div class="container hero-inner">
Alex Cotiuga 12.25 46 <h1 id="hero-title">Professional XWiki consulting and engineering</h1>
Alex Cotiuga 6.27 47
48 <p class="lead">
Alex Cotiuga 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.
Alex Cotiuga 6.27 51 </p>
52
Alex Cotiuga 3.89 53 <ul class="benefits">
Alex Cotiuga 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>
Alex Cotiuga 3.89 58 </ul>
Alex Cotiuga 6.27 59
60 <div class="hero-actions">
Alex Cotiuga 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>
Alex Cotiuga 13.20 62 ##<a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a consultation</a>
Alex Cotiuga 6.27 63 <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
Alex Cotiuga 3.4 64 </div>
Alex Cotiuga 1.2 65 </div>
Alex Cotiuga 3.4 66 </section>
Alex Cotiuga 25.40 67 *#
Alex Cotiuga 6.27 68 <section class="trust-strip" aria-label="Agnease experience">
Alex Cotiuga 3.4 69 <div class="container">
Alex Cotiuga 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>
Alex Cotiuga 1.2 76 </div>
Alex Cotiuga 3.4 77 </section>
Alex Cotiuga 6.27 78
79 <section aria-labelledby="platform-title">
Alex Cotiuga 3.4 80 <div class="container">
Alex Cotiuga 12.20 81 <h2 id="platform-title">XWiki support for production knowledge platforms</h2>
Alex Cotiuga 6.27 82 <p class="section-intro">
Alex Cotiuga 12.20 83 XWiki often grows from a documentation space into a business-critical knowledge platform.
Alex Cotiuga 12.24 84 When it supports intranets, procedures, workflows, audits or integrations, it needs structured technical care
85 for upgrades, security, permissions and maintainability.
Alex Cotiuga 5.1 86 </p>
Alex Cotiuga 1.1 87
Alex Cotiuga 6.27 88 <div class="pathways">
89 <article class="pathway-card">
Alex Cotiuga 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>
Alex Cotiuga 6.27 95 </div>
96 <p>
Alex Cotiuga 12.20 97 Plan and execute XWiki LTS upgrades with compatibility checks, staging validation and rollback planning.
Alex Cotiuga 6.27 98 </p>
99 <ul>
100 <li>LTS upgrade planning</li>
101 <li>Extension and custom code review</li>
Alex Cotiuga 12.20 102 <li>Staging and production validation</li>
Alex Cotiuga 6.27 103 </ul>
104 <p class="card-link">
Alex Cotiuga 6.32 105 <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
Alex Cotiuga 6.27 106 </p>
107 </article>
Alex Cotiuga 5.1 108
Alex Cotiuga 6.27 109 <article class="pathway-card">
Alex Cotiuga 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>
Alex Cotiuga 6.27 115 </div>
116 <p>
Alex Cotiuga 12.20 117 Keep production XWiki instances stable with troubleshooting, maintenance planning, recovery support and security-aware care.
Alex Cotiuga 6.27 118 </p>
119 <ul>
120 <li>Troubleshooting and recovery</li>
121 <li>Performance and log analysis</li>
Alex Cotiuga 12.21 122 <li>Upgrade and maintenance planning</li>
Alex Cotiuga 6.27 123 </ul>
124 <p class="card-link">
Alex Cotiuga 6.32 125 <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
Alex Cotiuga 6.27 126 </p>
127 </article>
128
129 <article class="pathway-card">
Alex Cotiuga 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>
Alex Cotiuga 6.27 135 </div>
136 <p>
Alex Cotiuga 12.22 137 Build custom XWiki applications, workflows, dashboards and integrations around real business needs.
Alex Cotiuga 6.27 138 </p>
139 <ul>
140 <li>Custom XWiki applications</li>
141 <li>Workflows and approvals</li>
Alex Cotiuga 12.22 142 <li>APIs, SSO, LDAP and integrations</li>
Alex Cotiuga 6.27 143 </ul>
144 <p class="card-link">
Alex Cotiuga 6.32 145 <a href="$xwiki.getURL('services.xwiki-development-integrations')">View development services</a>
Alex Cotiuga 6.27 146 </p>
147 </article>
Alex Cotiuga 3.4 148 </div>
Alex Cotiuga 1.2 149 </div>
Alex Cotiuga 3.4 150 </section>
Alex Cotiuga 6.27 151
Alex Cotiuga 29.1 152 <section class="industry-trust-section" aria-labelledby="industry-trust-title">
153 <div class="container">
154 <div class="industry-trust-panel">
Alex Cotiuga 28.51 155 <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2>
Alex Cotiuga 20.2 156
Alex Cotiuga 28.51 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>
Alex Cotiuga 20.2 161
Alex Cotiuga 29.1 162 <div class="industry-tags" aria-label="Industries and environments supported">
Alex Cotiuga 28.51 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>
Alex Cotiuga 28.46 172
Alex Cotiuga 29.1 173 <p class="industry-support">
Alex Cotiuga 28.51 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.
177 </p>
Alex Cotiuga 20.2 178 </div>
Alex Cotiuga 29.1 179 </div>
180 </section>
Alex Cotiuga 20.2 181
Alex Cotiuga 6.27 182 <section class="split-section" aria-labelledby="why-title">
Alex Cotiuga 3.4 183 <div class="container">
Alex Cotiuga 6.27 184 <div class="split-grid">
185 <div class="split-copy">
Alex Cotiuga 12.22 186 <h2 id="why-title">Why work with an XWiki specialist</h2>
Alex Cotiuga 6.27 187 <p>
Alex Cotiuga 12.22 188 XWiki projects often involve more than pages. Production platforms may include custom code,
Alex Cotiuga 20.8 189 extensions, authentication, permissions, workflows, integrations, compliance documentation
190 and business-critical knowledge.
Alex Cotiuga 6.27 191 </p>
192 <p>
Alex Cotiuga 20.8 193 Agnease brings 11+ years of hands-on XWiki experience to help reduce risk, support long-term reliability
Alex Cotiuga 12.22 194 and leave the platform easier to maintain after the work is complete.
Alex Cotiuga 6.27 195 </p>
196 </div>
197
198 <ol class="process-list">
199 <li>
Alex Cotiuga 12.22 200 <strong>Review the XWiki environment</strong>
201 Version, extensions, infrastructure, authentication, permissions, custom code and critical features.
Alex Cotiuga 6.27 202 </li>
203 <li>
Alex Cotiuga 12.22 204 <strong>Define the safest next steps</strong>
205 Scope, risks, dependencies, effort, rollback options and validation requirements.
Alex Cotiuga 6.27 206 </li>
207 <li>
Alex Cotiuga 12.22 208 <strong>Implement, validate and document</strong>
209 Controlled changes, testing, production validation and notes for future maintenance.
Alex Cotiuga 6.27 210 </li>
211 </ol>
212 </div>
213 </div>
214 </section>
215
Alex Cotiuga 10.38 216 <section class="resource-strip homepage-resource-strip" aria-labelledby="resources-title">
Alex Cotiuga 6.27 217 <div class="container">
Alex Cotiuga 12.22 218 <h2 id="resources-title">XWiki resources for safer long-term maintenance</h2>
Alex Cotiuga 6.27 219 <p class="section-intro">
Alex Cotiuga 12.22 220 Practical articles about XWiki upgrades, customization and production platform care.
Alex Cotiuga 3.4 221 </p>
Alex Cotiuga 6.27 222
223 <div class="resource-grid">
224 <article class="resource-card">
225 <h4>Why upgrade your XWiki instance?</h4>
226 <p>
Alex Cotiuga 12.22 227 Learn why regular XWiki upgrades reduce security exposure, compatibility issues and long-term maintenance risk.
Alex Cotiuga 6.27 228 </p>
Alex Cotiuga 12.22 229 <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Read the article</a>
Alex Cotiuga 6.27 230 </article>
231
232 <article class="resource-card">
233 <h4>XWiki upgrade services</h4>
234 <p>
Alex Cotiuga 12.22 235 See how XWiki upgrades can be planned, tested and validated for production instances with customizations and integrations.
Alex Cotiuga 6.27 236 </p>
Alex Cotiuga 12.22 237 <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
Alex Cotiuga 6.27 238 </article>
239 </div>
Alex Cotiuga 3.4 240 </div>
241 </section>
Alex Cotiuga 3.16 242
Alex Cotiuga 6.27 243 <section class="cta-section" aria-labelledby="contact-title">
244 <div class="container">
245 <div class="cta-panel">
Alex Cotiuga 12.22 246 <h2 id="contact-title">Need XWiki consulting or support?</h2>
Alex Cotiuga 6.27 247 <p>
Alex Cotiuga 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.
Alex Cotiuga 6.27 250 </p>
251 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a>
Alex Cotiuga 30.6 252 <a class="btn btn-secondary" href="$xwiki.getURL('pricing.WebHome')">View service packages</a>
Alex Cotiuga 3.16 253 </div>
254 </div>
Alex Cotiuga 6.27 255 </section>
256
257 {{/html}}
Alex Cotiuga 3.16 258 #end
Alex Cotiuga 3.55 259
Alex Cotiuga 3.66 260 #macro (stripHTMLMacro $displayOutput)
Alex Cotiuga 3.77 261 $stringtool.removeEnd($stringtool.removeStart($displayOutput, '{{html clean="false" wiki="false"}}'), '{{/html}}').replace('Agnease.Code.Lead.LeadClass_0_', 'acl-')
Alex Cotiuga 3.66 262 #end
263
Alex Cotiuga 3.55 264 #macro (displayFormFromSheetCode)
Alex Cotiuga 3.61 265 #set ($editing = true)
Alex Cotiuga 3.55 266 ## The object to display.
Alex Cotiuga 3.65 267 #set ($xobject = $doc.newObject('Agnease.Code.Lead.LeadClass'))
Alex Cotiuga 3.55 268 ## The class that describes the object properties.
Alex Cotiuga 3.60 269 #set ($xclass = $xwiki.getClass('Agnease.Code.Lead.LeadClass'))
Alex Cotiuga 3.55 270 ## Make sure the following display* method calls use the right object.
271 #set ($discard = $doc.use($xobject))
272 ## Using the xform vertical form layout.
Alex Cotiuga 3.70 273 <div class="xform">
Alex Cotiuga 3.55 274 <dl>
275 #foreach ($property in $xclass.properties)
Alex Cotiuga 3.84 276 #if ($property.name != 'status')
277 <dt #if (!$editing)
278 class="editableProperty"
279 #set ($xobjectPropertyReference = $xobject.getPropertyReference($property.name))
280 data-property="$escapetool.xml($services.model.serialize($xobjectPropertyReference))"
281 data-property-type="object"#end>
282 ## This must match the id generated by the $doc.display() method below.
283 #set ($propertyId = "acl-$property.name")
284 <label#if ($editing) for="$escapetool.xml($propertyId)"#end>
285 $escapetool.xml($property.translatedPrettyName)
286 </label>
287 ## Support for specifying a translation key as hint in the property definition.
288 <span class="xHint">$!escapetool.xml($services.localization.render($property.hint))</span>
289 </dt>
290 #set ($displayOutput = $doc.display($property.name, 'edit'))
291 <dd>#stripHTMLMacro($displayOutput)</dd>
292 #end
Alex Cotiuga 3.55 293 #end
294 #if (!$xclass.properties || $xclass.properties.size() == 0)
295 ## Keep the empty definition term in order to have valid HTML.
296 <dt></dt>
297 <dd>$escapetool.xml($services.localization.render('xclass.defaultObjectSheet.noProperties'))</dd>
298 #end
299 </dl>
300 </div>
301 #end
Alex Cotiuga 1.2 302 {{/velocity}}