Wiki source code of Public Web Site

Version 11.18 by Agnease on 2026/05/22 10:00

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 6.27 5
Agnease 5.1 6 <section class="hero hero-centered" aria-labelledby="hero-title">
7 <div class="container hero-inner">
Agnease 11.10 8 <h1 id="hero-title">Professional XWiki engineering and support</h1>
Agnease 6.27 9
10 <p class="lead">
Agnease 11.8 11 Agnease helps organizations upgrade, maintain, secure and extend XWiki so production platforms stay stable,
12 up-to-date and adapted to real business processes.
Agnease 6.27 13 </p>
14
Agnease 3.89 15 <ul class="benefits">
Agnease 6.27 16 <li>Safe LTS upgrades</li>
17 <li>Support and recovery</li>
18 <li>Custom XWiki applications</li>
19 <li>Integrations and migrations</li>
Agnease 3.89 20 </ul>
Agnease 6.27 21
22 <div class="hero-actions">
23 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a consultation</a>
24 <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
Agnease 3.4 25 </div>
Agnease 1.2 26 </div>
Agnease 3.4 27 </section>
Agnease 6.27 28
29 <section class="trust-strip" aria-label="Agnease experience">
Agnease 3.4 30 <div class="container">
Agnease 6.27 31 <ul>
32 <li><i class="fa fa-check-circle" aria-hidden="true"></i> 11+ years of XWiki experience</li>
33 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Upgrades, support and custom development</li>
34 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Security-aware maintenance</li>
35 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Practical long-term collaboration</li>
36 </ul>
Agnease 1.2 37 </div>
Agnease 3.4 38 </section>
Agnease 6.27 39
40 <section aria-labelledby="platform-title">
Agnease 3.4 41 <div class="container">
Agnease 6.27 42 <h2 id="platform-title">When XWiki becomes business-critical, it needs professional care</h2>
43 <p class="section-intro">
44 Many organizations start with XWiki as a documentation platform. Over time, it becomes a knowledge base,
45 intranet, SOP portal, workflow system, audit trail or integration hub. At that point, upgrades, security,
46 performance, permissions and maintainability are no longer optional technical details.
Agnease 5.1 47 </p>
Agnease 1.1 48
Agnease 6.27 49 <div class="pathways">
50 <article class="pathway-card">
51 <div class="pathway-icon">
52 <i class="fa fa-refresh" aria-hidden="true"></i>
53 </div>
54 <h3>Keep XWiki current</h3>
55 <p>
56 Plan and execute safe upgrades to supported XWiki versions, with compatibility checks and rollback planning.
57 </p>
58 <ul>
59 <li>LTS upgrade planning</li>
60 <li>Extension and custom code review</li>
61 <li>Production rollout validation</li>
62 </ul>
63 <p class="card-link">
Agnease 6.32 64 <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
Agnease 6.27 65 </p>
66 </article>
Agnease 5.1 67
Agnease 6.27 68 <article class="pathway-card">
69 <div class="pathway-icon">
70 <i class="fa fa-life-ring" aria-hidden="true"></i>
71 </div>
72 <h3>Keep XWiki reliable</h3>
73 <p>
74 Get long-term technical care for instances that need to stay stable, secure and recoverable.
75 </p>
76 <ul>
77 <li>Troubleshooting and recovery</li>
78 <li>Performance and log analysis</li>
79 <li>Security-aware maintenance</li>
80 </ul>
81 <p class="card-link">
Agnease 6.32 82 <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
Agnease 6.27 83 </p>
84 </article>
85
86 <article class="pathway-card">
87 <div class="pathway-icon">
88 <i class="fa fa-cogs" aria-hidden="true"></i>
89 </div>
90 <h3>Adapt XWiki to your business</h3>
91 <p>
92 Build workflows, custom applications, dashboards, integrations and automation around your processes.
93 </p>
94 <ul>
95 <li>Custom XWiki applications</li>
96 <li>Workflows and approvals</li>
97 <li>SSO, LDAP, APIs and integrations</li>
98 </ul>
99 <p class="card-link">
Agnease 6.32 100 <a href="$xwiki.getURL('services.xwiki-development-integrations')">View development services</a>
Agnease 6.27 101 </p>
102 </article>
Agnease 3.4 103 </div>
Agnease 1.2 104 </div>
Agnease 3.4 105 </section>
Agnease 6.27 106
107 <section class="split-section" aria-labelledby="why-title">
Agnease 3.4 108 <div class="container">
Agnease 6.27 109 <div class="split-grid">
110 <div class="split-copy">
111 <h2 id="why-title">Why choose Agnease</h2>
112 <p>
113 Agnease brings more than 11 years of hands-on XWiki expertise to organizations that need reliable
114 knowledge platforms, secure upgrades, custom applications, integrations, migrations and long-term support.
115 </p>
116 <p>
117 The approach is practical and engineering-focused: understand the current system, reduce risk,
118 document the work and leave your XWiki easier to maintain.
119 </p>
120 </div>
121
122 <ol class="process-list">
123 <li>
124 <strong>Review the current situation</strong>
125 Version, extensions, infrastructure, authentication, custom code and business-critical features.
126 </li>
127 <li>
128 <strong>Define a safe path forward</strong>
129 Clear scope, expected effort, risks, rollback options and recommended next steps.
130 </li>
131 <li>
132 <strong>Deliver and document the work</strong>
133 Practical implementation, validation and documentation for future maintenance.
134 </li>
135 </ol>
136 </div>
137 </div>
138 </section>
139
Agnease 10.38 140 <section class="resource-strip homepage-resource-strip" aria-labelledby="resources-title">
Agnease 6.27 141 <div class="container">
142 <h2 id="resources-title">Useful XWiki resources</h2>
143 <p class="section-intro">
144 Practical guidance for organizations running XWiki in production.
Agnease 3.4 145 </p>
Agnease 6.27 146
147 <div class="resource-grid">
148 <article class="resource-card">
149 <h4>Why upgrade your XWiki instance?</h4>
150 <p>
151 A business-focused explanation of why regular LTS upgrades reduce security, compatibility and maintenance risk.
152 </p>
Agnease 7.7 153 <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Read the resource</a>
Agnease 6.27 154 </article>
155
156 <article class="resource-card">
157 <h4>XWiki upgrade services</h4>
158 <p>
159 How Agnease approaches safe XWiki upgrades for real production environments with customizations and integrations.
160 </p>
Agnease 7.9 161 <a href="$xwiki.getURL('services.xwiki-upgrades')">View the service</a>
Agnease 6.27 162 </article>
163 </div>
Agnease 3.4 164 </div>
165 </section>
Agnease 3.16 166
Agnease 6.27 167 <section class="cta-section" aria-labelledby="contact-title">
168 <div class="container">
169 <div class="cta-panel">
170 <h2 id="contact-title">Need help with XWiki?</h2>
171 <p>
172 Send your current XWiki version, the problem you are facing, or the type of project you want to build.
173 A short description is enough to start the conversation.
174 </p>
175 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a>
Agnease 3.16 176 </div>
177 </div>
Agnease 6.27 178 </section>
179
180 {{/html}}
Agnease 3.16 181 #end
Agnease 3.55 182
Agnease 3.66 183 #macro (stripHTMLMacro $displayOutput)
Agnease 3.77 184 $stringtool.removeEnd($stringtool.removeStart($displayOutput, '{{html clean="false" wiki="false"}}'), '{{/html}}').replace('Agnease.Code.Lead.LeadClass_0_', 'acl-')
Agnease 3.66 185 #end
186
Agnease 3.55 187 #macro (displayFormFromSheetCode)
Agnease 3.61 188 #set ($editing = true)
Agnease 3.55 189 ## The object to display.
Agnease 3.65 190 #set ($xobject = $doc.newObject('Agnease.Code.Lead.LeadClass'))
Agnease 3.55 191 ## The class that describes the object properties.
Agnease 3.60 192 #set ($xclass = $xwiki.getClass('Agnease.Code.Lead.LeadClass'))
Agnease 3.55 193 ## Make sure the following display* method calls use the right object.
194 #set ($discard = $doc.use($xobject))
195 ## Using the xform vertical form layout.
Agnease 3.70 196 <div class="xform">
Agnease 3.55 197 <dl>
198 #foreach ($property in $xclass.properties)
Agnease 3.84 199 #if ($property.name != 'status')
200 <dt #if (!$editing)
201 class="editableProperty"
202 #set ($xobjectPropertyReference = $xobject.getPropertyReference($property.name))
203 data-property="$escapetool.xml($services.model.serialize($xobjectPropertyReference))"
204 data-property-type="object"#end>
205 ## This must match the id generated by the $doc.display() method below.
206 #set ($propertyId = "acl-$property.name")
207 <label#if ($editing) for="$escapetool.xml($propertyId)"#end>
208 $escapetool.xml($property.translatedPrettyName)
209 </label>
210 ## Support for specifying a translation key as hint in the property definition.
211 <span class="xHint">$!escapetool.xml($services.localization.render($property.hint))</span>
212 </dt>
213 #set ($displayOutput = $doc.display($property.name, 'edit'))
214 <dd>#stripHTMLMacro($displayOutput)</dd>
215 #end
Agnease 3.55 216 #end
217 #if (!$xclass.properties || $xclass.properties.size() == 0)
218 ## Keep the empty definition term in order to have valid HTML.
219 <dt></dt>
220 <dd>$escapetool.xml($services.localization.render('xclass.defaultObjectSheet.noProperties'))</dd>
221 #end
222 </dl>
223 </div>
224 #end
Agnease 1.2 225 {{/velocity}}