Wiki source code of XWiki Migrations

Version 12.1 by Alex Cotiuga on 2026/06/29 13:22

Hide last authors
Alex Cotiuga 1.2 1 {{velocity}}
2 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 {{html clean="false"}}
Alex Cotiuga 11.1 4
Alex Cotiuga 1.2 5 ## PAGE HEADER
Alex Cotiuga 9.1 6 <section class="hero hero-centered" aria-labelledby="hero-title">
Alex Cotiuga 1.2 7 <div class="container hero-inner">
8 <div class="hero-kicker">
9 <i class="fa fa-exchange" aria-hidden="true"></i>
10 XWiki migration services
11 </div>
Alex Cotiuga 11.1 12
Alex Cotiuga 1.2 13 <h1 id="hero-title">Migrate knowledge into XWiki with structure and continuity</h1>
Alex Cotiuga 11.1 14
Alex Cotiuga 1.2 15 <p class="lead">
16 Move content from Confluence, SharePoint, MediaWiki, file-based documentation or legacy systems into XWiki
Alex Cotiuga 8.2 17 while preserving hierarchy, attachments, links, permissions and long-term maintainability.
Alex Cotiuga 1.2 18 </p>
Alex Cotiuga 11.1 19
Alex Cotiuga 1.2 20 <div class="hero-actions">
21 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Discuss a migration</a>
22 <a class="btn btn-secondary" href="#migration-process">See the migration approach</a>
23 </div>
24 </div>
25 </section>
Alex Cotiuga 11.1 26
Alex Cotiuga 1.2 27 ## WHY MIGRATION NEEDS CARE
Alex Cotiuga 9.1 28 #set ($migrationReasonItems = [{
29 'title': 'Preserve structure',
30 'icon': 'sitemap',
Alex Cotiuga 11.1 31 'content': 'Keep spaces, hierarchies, navigation, page relationships and entry points understandable after the move.',
Alex Cotiuga 9.1 32 'items': [
33 'Space and page hierarchy mapping',
34 'Navigation and landing page planning',
Alex Cotiuga 11.1 35 'Search and findability considerations'
Alex Cotiuga 9.1 36 ]
37 },{
38 'title': 'Protect continuity',
39 'icon': 'link',
40 'content': 'Reduce disruption by handling links, attachments, redirects, permissions and known content dependencies.',
41 'items': [
42 'Attachment and link preservation',
43 'Redirect and URL transition planning',
44 'Permission model review'
45 ]
46 },{
47 'title': 'Improve maintainability',
48 'icon': 'database',
Alex Cotiuga 11.1 49 'content': 'Use the migration as an opportunity to clean up content, introduce metadata and redesign what should not be copied as-is.',
Alex Cotiuga 9.1 50 'items': [
51 'Templates and structured data',
52 'Metadata and tagging strategy',
Alex Cotiuga 11.1 53 'Manual cleanup recommendations'
Alex Cotiuga 9.1 54 ]
55 }])
Alex Cotiuga 11.1 56
Alex Cotiuga 1.2 57 <section aria-labelledby="why-migration-title">
58 <div class="container">
59 <h2 id="why-migration-title">A migration is more than moving pages</h2>
Alex Cotiuga 11.1 60
Alex Cotiuga 1.2 61 <p class="section-intro">
62 Documentation platforms usually contain years of accumulated knowledge, links, attachments, permissions,
Alex Cotiuga 11.1 63 templates, macros and habits. A successful migration should preserve what matters, reduce broken navigation
64 and improve how the knowledge is organized and maintained in XWiki.
Alex Cotiuga 1.2 65 </p>
Alex Cotiuga 11.1 66
Alex Cotiuga 1.2 67 <div class="pathways">
Alex Cotiuga 9.1 68 #foreach ($entry in $migrationReasonItems)
69 <article class="pathway-card">
70 <div class="card-heading">
71 <div class="pathway-icon">
72 <i class="fa fa-$entry.icon" aria-hidden="true"></i>
73 </div>
74 <h3>$entry.title</h3>
75 </div>
Alex Cotiuga 11.1 76
Alex Cotiuga 9.1 77 <p>$entry.content</p>
Alex Cotiuga 11.1 78
Alex Cotiuga 9.1 79 <ul>
80 #foreach ($item in $entry.items)
81 <li>$item</li>
82 #end
83 </ul>
84 </article>
85 #end
Alex Cotiuga 1.2 86 </div>
87 </div>
88 </section>
Alex Cotiuga 11.1 89
Alex Cotiuga 1.2 90 ## MIGRATION SOURCES
Alex Cotiuga 9.1 91 #set ($migrationSourceItems = [{
92 'title': 'Confluence to XWiki',
93 'icon': 'book',
94 'content': 'Migration of pages, spaces, attachments, links and content that may include macros or Confluence-specific formatting.'
95 },{
96 'title': 'SharePoint to XWiki',
97 'icon': 'windows',
98 'content': 'Migration planning for document libraries, wiki-like content, intranet pages and knowledge structures.'
99 },{
100 'title': 'MediaWiki to XWiki',
101 'icon': 'globe',
102 'content': 'Migration of wiki pages, links, categories, attachments and content that may require syntax or structure conversion.'
103 },{
104 'title': 'Files and folders',
105 'icon': 'folder-open',
106 'content': 'Migration from file shares, exported documentation, PDFs, Word files or folder-based knowledge repositories.'
107 },{
108 'title': 'Legacy knowledge systems',
109 'icon': 'archive',
110 'content': 'Extraction and restructuring of content from older internal tools, portals or custom documentation systems.'
111 },{
112 'title': 'Mixed-source migrations',
113 'icon': 'random',
114 'content': 'Consolidation of content from multiple sources into a more coherent XWiki knowledge platform.'
115 }])
Alex Cotiuga 11.1 116
Alex Cotiuga 1.2 117 <section class="services" aria-labelledby="migration-sources-title">
118 <div class="container">
119 <h2 id="migration-sources-title">Common migration sources</h2>
Alex Cotiuga 11.1 120
Alex Cotiuga 1.2 121 <p class="section-intro">
Alex Cotiuga 11.1 122 Each source system has different export formats, content models, permissions and limitations.
123 The migration approach depends on the quality of the source data, the expected XWiki structure
124 and the amount of conversion, cleanup or redesign needed.
Alex Cotiuga 1.2 125 </p>
Alex Cotiuga 11.1 126
Alex Cotiuga 1.2 127 <div class="services-grid">
Alex Cotiuga 9.1 128 #foreach ($entry in $migrationSourceItems)
129 <article class="service">
130 <div class="service-icon" aria-hidden="true">
131 <i class="fa fa-$entry.icon"></i>
132 </div>
Alex Cotiuga 11.1 133
Alex Cotiuga 9.1 134 <div class="service-body">
135 <h4>$entry.title</h4>
136 <p>$entry.content</p>
137 </div>
138 </article>
139 #end
Alex Cotiuga 1.2 140 </div>
141 </div>
142 </section>
Alex Cotiuga 11.1 143
Alex Cotiuga 1.2 144 ## MIGRATION PROCESS
Alex Cotiuga 9.1 145 #set ($migrationProcessItems = [{
146 'title': 'Assess the source content',
147 'content': 'Review structure, volume, attachments, links, permissions, formatting, macros, metadata and export options.'
148 },{
149 'title': 'Define the target XWiki structure',
150 'content': 'Decide spaces, page hierarchy, templates, metadata, permissions, naming rules and navigation strategy.'
151 },{
152 'title': 'Run a sample migration',
Alex Cotiuga 11.1 153 'content': 'Migrate a representative subset of content to identify formatting, macro, link, attachment and structure issues.'
Alex Cotiuga 9.1 154 },{
155 'title': 'Refine conversion and cleanup rules',
156 'content': 'Adjust mappings, formatting, link handling, attachments, macros, categories and content cleanup decisions.'
157 },{
158 'title': 'Execute and validate the migration',
Alex Cotiuga 11.1 159 'content': 'Run the migration, review key content areas, verify attachments, links, redirects and navigation, and document remaining follow-up work.'
Alex Cotiuga 9.1 160 }])
Alex Cotiuga 11.1 161
Alex Cotiuga 1.2 162 <section id="migration-process" class="split-section" aria-labelledby="process-title">
163 <div class="container">
164 <div class="split-grid">
165 <div class="split-copy">
166 <h2 id="process-title">A practical migration approach</h2>
Alex Cotiuga 11.1 167
Alex Cotiuga 1.2 168 <p>
169 A good migration starts with understanding how the source content is used today and how it should work
170 in XWiki after the move. The objective is not only to transfer data, but to create a usable knowledge
171 platform that people can navigate, search and maintain.
172 </p>
Alex Cotiuga 11.1 173
Alex Cotiuga 1.2 174 <p>
Alex Cotiuga 11.1 175 Migrations are best handled iteratively: assess the source, run a sample migration, validate links,
176 attachments, formatting and important spaces, adjust the conversion rules and then proceed with a controlled migration plan.
Alex Cotiuga 1.2 177 </p>
178 </div>
Alex Cotiuga 11.1 179
Alex Cotiuga 1.2 180 <ol class="process-list">
Alex Cotiuga 9.1 181 #foreach ($entry in $migrationProcessItems)
182 <li>
183 <strong>$entry.title</strong>
184 $entry.content
185 </li>
186 #end
Alex Cotiuga 1.2 187 </ol>
188 </div>
189 </div>
190 </section>
Alex Cotiuga 11.1 191
Alex Cotiuga 1.2 192 ## WHAT CAN BE INCLUDED
Alex Cotiuga 9.1 193 #set ($migrationIncludedItems = [{
194 'title': 'Content conversion',
195 'icon': 'file-text-o',
196 'content': 'Page content, syntax, formatting, links, images, attachments and other reusable knowledge assets.'
197 },{
198 'title': 'Structure mapping',
199 'icon': 'sitemap',
200 'content': 'Spaces, page hierarchy, navigation, naming rules, landing pages and organization of knowledge areas.'
201 },{
202 'title': 'Permissions review',
203 'icon': 'lock',
204 'content': 'Review and mapping of access rights where the source system contains meaningful permission rules.'
205 },{
Alex Cotiuga 11.1 206 'title': 'Cleanup and validation',
207 'icon': 'check-square-o',
208 'content': 'Post-migration review of important spaces, broken links, attachments, formatting issues and content needing manual cleanup.'
Alex Cotiuga 9.1 209 }])
Alex Cotiuga 11.1 210
Alex Cotiuga 1.2 211 <section aria-labelledby="included-title">
212 <div class="container">
213 <h2 id="included-title">What can be included</h2>
Alex Cotiuga 11.1 214
Alex Cotiuga 1.2 215 <p class="section-intro">
Alex Cotiuga 11.1 216 The exact migration scope depends on the source system and the quality of the exported content.
217 A migration engagement can include technical conversion, information architecture, permission review,
218 cleanup recommendations and post-migration validation.
Alex Cotiuga 1.2 219 </p>
Alex Cotiuga 11.1 220
Alex Cotiuga 1.2 221 <div class="widgets">
Alex Cotiuga 9.1 222 #foreach ($entry in $migrationIncludedItems)
223 <article class="widget">
224 <div class="icon" aria-hidden="true">
225 <i class="fa fa-$entry.icon"></i>
226 <h4>$entry.title</h4>
227 </div>
Alex Cotiuga 11.1 228
Alex Cotiuga 9.1 229 <p>$entry.content</p>
230 </article>
231 #end
Alex Cotiuga 1.2 232 </div>
233 </div>
234 </section>
Alex Cotiuga 11.1 235
Alex Cotiuga 1.2 236 ## RELATED SERVICES
Alex Cotiuga 9.1 237 #set ($relatedMigrationServiceItems = [{
238 'title': 'XWiki Development & Integrations',
239 'url': 'services.xwiki-development-integrations',
240 'content': 'Custom applications, workflows, dashboards, integrations and structured knowledge solutions built on top of XWiki.',
241 'linkLabel': 'View development services'
242 },{
243 'title': 'XWiki Support & Maintenance',
244 'url': 'services.xwiki-maintenance-support',
245 'content': 'Ongoing technical care for production environments after the migration is completed.',
246 'linkLabel': 'View support services'
247 }])
Alex Cotiuga 11.1 248
Alex Cotiuga 1.2 249 <section class="resource-strip" aria-labelledby="related-title">
250 <div class="container">
251 <h2 id="related-title">Related XWiki services</h2>
Alex Cotiuga 11.1 252
Alex Cotiuga 1.2 253 <p class="section-intro">
Alex Cotiuga 11.1 254 Migration work often connects with custom development, support and long-term platform maintenance.
Alex Cotiuga 1.2 255 </p>
Alex Cotiuga 11.1 256
Alex Cotiuga 1.2 257 <div class="resource-grid">
Alex Cotiuga 9.1 258 #foreach ($entry in $relatedMigrationServiceItems)
259 <article class="resource-card">
260 <h4>$entry.title</h4>
261 <p>$entry.content</p>
262 <a href="$xwiki.getURL($entry.url)">$entry.linkLabel</a>
263 </article>
264 #end
Alex Cotiuga 1.2 265 </div>
266 </div>
267 </section>
Alex Cotiuga 11.1 268
Alex Cotiuga 1.2 269 ## CTA
270 <section class="cta-section" aria-labelledby="cta-title">
271 <div class="container">
272 <div class="cta-panel">
273 <h2 id="cta-title">Planning a migration to XWiki?</h2>
Alex Cotiuga 11.1 274
Alex Cotiuga 1.2 275 <p>
Alex Cotiuga 11.1 276 Send a short description of the source system, approximate content volume, export options, expected timing
277 and the type of XWiki structure you want to achieve. A sample export or representative content area is often enough to start.
Alex Cotiuga 1.2 278 </p>
Alex Cotiuga 11.1 279
Alex Cotiuga 1.2 280 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Discuss a migration</a>
281 </div>
282 </div>
283 </section>
Alex Cotiuga 11.1 284
Alex Cotiuga 1.2 285 {{/html}}
286 {{/velocity}}