-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcomparison.html
More file actions
657 lines (631 loc) · 50.5 KB
/
Copy pathcomparison.html
File metadata and controls
657 lines (631 loc) · 50.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>MessageFoundry vs Mirth, Rhapsody, Corepoint & Cloverleaf</title>
<meta name="description" content="A fair, sourced, head-to-head comparison of MessageFoundry vs the leading HL7 interface engines — Mirth, Cloverleaf, Rhapsody, Corepoint and Ensemble.">
<link rel="canonical" href="https://messagefoundry.org/comparison.html">
<link rel="icon" href="/assets/img/favicon.svg" type="image/svg+xml">
<meta name="theme-color" content="#0b1220">
<meta property="og:type" content="website">
<meta property="og:site_name" content="MessageFoundry">
<meta property="og:title" content="MessageFoundry vs the leading HL7 interface engines">
<meta property="og:description" content="A fair, sourced comparison against Mirth Connect, Cloverleaf, Rhapsody, Corepoint, and Ensemble / HealthShare Health Connect. Choose a competitor for the head-to-head.">
<meta property="og:url" content="https://messagefoundry.org/comparison.html">
<meta property="og:image" content="https://messagefoundry.org/assets/img/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:type" content="image/png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://messagefoundry.org/assets/img/og.png">
<link rel="stylesheet" href="/assets/css/styles.css">
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<div class="eabar" role="region" aria-label="Project status">
<div class="container">
<p><strong>Early Access · beta.</strong> We're building toward 1.0 — and we want people involved now, while it can still be shaped. <a href="/status.html">Where the project stands →</a></p>
</div>
</div>
<header class="site-header">
<div class="container header-inner">
<a class="brand" href="/" aria-label="MessageFoundry home">
<img class="brand-mark" src="/assets/img/logo.svg" alt="" width="28" height="28">
<span class="brand-name">Message<span class="brand-accent">Foundry</span><span class="brand-tm">™</span></span>
</a>
<button class="nav-toggle" aria-expanded="false" aria-controls="site-nav" aria-label="Toggle navigation"><span></span><span></span><span></span></button>
<nav class="site-nav" id="site-nav">
<div class="nav-group">
<button type="button" class="nav-group__btn" aria-expanded="false" aria-haspopup="true" aria-controls="nav-product">Product</button>
<div class="nav-group__menu" id="nav-product">
<a href="/overview.html">Overview</a>
<a href="/features.html">Features</a>
<a href="/features-table.html">Feature list</a>
<a href="/architecture.html">Architecture</a>
<a href="/reliability.html">Reliability (CI)</a>
<a href="/tools.html">Tools</a>
<a href="/editor.html">Editor</a>
<a href="/console.html">Console</a>
<a href="/ai.html">AI assist</a>
</div>
</div>
<a href="/security.html">Security</a>
<a href="/comparison.html" class="active" aria-current="page">Comparison</a>
<div class="nav-group">
<button type="button" class="nav-group__btn" aria-expanded="false" aria-haspopup="true" aria-controls="nav-getstarted">Get started</button>
<div class="nav-group__menu" id="nav-getstarted">
<a href="/getting-started.html">Quickstart</a>
<a href="/guides/">Guides</a>
<a href="/documents.html">Documents</a>
</div>
</div>
<div class="nav-group">
<button type="button" class="nav-group__btn" aria-expanded="false" aria-haspopup="true" aria-controls="nav-company">About Us</button>
<div class="nav-group__menu" id="nav-company">
<a href="/about.html">About</a>
<a href="/status.html">Project status</a>
<a href="/licensing.html">Licensing</a>
<a href="/contact.html">Contact</a>
<a href="/sponsor.html">Sponsor</a>
</div>
</div>
<a class="btn btn-ghost" href="/pypi.html">PyPI<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3l8 4.5l0 9l-8 4.5l-8 -4.5l0 -9l8 -4.5"/><path d="M12 12l8 -4.5"/><path d="M12 12l0 9"/><path d="M12 12l-8 -4.5"/><path d="M16 5.25l-8 4.5"/></svg></a>
<a class="btn btn-ghost" href="https://github.com/MEFORORG/MessageFoundry" target="_blank" rel="noopener">GitHub ↗</a>
</nav>
</div>
</header>
<main id="main">
<!-- intro / the wedge -->
<section class="section section--dark section--tight">
<div class="container center">
<span class="eyebrow">Comparison</span>
<h1 style="max-width:24ch;margin-inline:auto">A modern, open alternative to the legacy interface engines</h1>
<p class="lead">MessageFoundry is a new open-source healthcare interface engine — built for teams that want control, modern tooling, and no vendor lock-in. Set up interfaces with guided wizards, or extend them in Python; either way nothing is locked inside a vendor's runtime or contract. The commercial engines are consolidating under private equity, closing their source, and steering buyers toward subscription contracts. This is a deliberately fair look at where MessageFoundry sits next to five established but legacy products, and where each is genuinely stronger than we are today.</p>
<div class="callout callout--on-dark" style="margin-top:22px;background:rgba(245,158,11,.07);border-color:rgba(245,158,11,.28);color:var(--muted-dk)">
<p><strong style="color:var(--accent)">How to read this.</strong> Every competitor here is a capable, established product. Competitor facts are <a href="#sources" style="color:var(--accent)">sourced</a>; pricing is described as the vendors disclose it (most don't publish prices). MessageFoundry is described at its <b>Early Access</b> feature set — it's a new project, started May 2026 (<a href="/status.html" style="color:var(--accent)">project status</a>) — and where it's still behind, we say so. Current as of June 2026; verify specifics before a purchase decision.</p>
</div>
</div>
</section>
<!-- why now -->
<section class="section">
<div class="container">
<div class="center" style="margin-bottom:40px">
<span class="eyebrow">Why now</span>
<h2>The market shifted — and the buying calculus with it</h2>
</div>
<div class="grid grid-3">
<div class="card">
<h3>Mirth left open source</h3>
<p>For 15+ years Mirth Connect was the free, open-source default. <b>v4.5.2 (Sept 2024) was the last open-source (MPL 2.0) release; v4.6 (March 2025) moved to a closed-source, paid model</b> — with no further security patches to the open line. The community answered with two forks, the Open Integration Engine and BridgeLink.</p>
</div>
<div class="card">
<h3>Premium engines consolidated</h3>
<p>Rhapsody and Corepoint are now one company. Hg Capital acquired Rhapsody (2018), then absorbed Corepoint, NextGate, and CareCom, rebranding to <b>Rhapsody Health Solutions</b> in 2023. The portfolio is genuinely strong — its Corepoint engine has been Best in KLAS for 16 straight years — but it's sold through custom, undisclosed enterprise pricing and multi-year contracts, with no free tier.</p>
</div>
<div class="card">
<h3>The rest carry heavy lock-in</h3>
<p>Cloverleaf (Infor / Koch) is scripted in <b>Tcl</b> — a small, costly talent pool. InterSystems <b>Ensemble is legacy</b>; its engine role is now HealthShare Health Connect inside IRIS for Health, and Ensemble maintenance ends around <b>Q1 2027</b> — tying you to a proprietary language <em>and</em> database.</p>
</div>
</div>
<div class="callout" style="margin-top:26px">
<p><strong>A balanced read.</strong> Consolidation and Mirth's relicensing have thinned the open, low-cost options — but the market is still competitive. Our point isn't that the incumbents are bad; it's that <b>a modern, open alternative fits this moment</b>, and most buyers no longer have one.</p>
</div>
</div>
</section>
<!-- matrix -->
<section class="section section--alt">
<div class="container">
<div class="center" style="margin-bottom:34px">
<span class="eyebrow">At a glance</span>
<h2>Differentiator matrix</h2>
</div>
<div class="table-wrap">
<table class="cmp cmp-wide">
<thead>
<tr>
<th scope="col"> </th>
<th scope="col" class="us">MessageFoundry<small>open source</small></th>
<th scope="col">Mirth <small>NextGen</small></th>
<th scope="col">Cloverleaf <small>Infor</small></th>
<th scope="col">Rhapsody <small>Hg</small></th>
<th scope="col">Corepoint <small>Rhapsody</small></th>
<th scope="col">Ensemble<small>InterSystems *</small></th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">License</th>
<td class="us">AGPL — open source</td>
<td>Commercial since v4.6 (was MPL ≤4.5.2)</td>
<td>Proprietary</td><td>Proprietary</td><td>Proprietary</td><td>Proprietary</td>
</tr>
<tr>
<th scope="row">Cost posture</th>
<td class="us">Free core + optional services</td>
<td>Paid tiers (undisclosed)</td>
<td>Enterprise / custom, high TCO</td>
<td>Premium / custom, multi-yr</td>
<td>Premium / custom</td>
<td>Core-based, expensive</td>
</tr>
<tr>
<th scope="row">Source available</th>
<td class="us">Yes — fork it</td>
<td>Closed since 4.6</td>
<td>No</td><td>No</td><td>No</td><td>No</td>
</tr>
<tr>
<th scope="row">Language / model</th>
<td class="us">Python, no DSL</td>
<td>Rhino JS / Groovy</td>
<td>Tcl</td>
<td>JS + visual</td>
<td>No-code / low-code</td>
<td>ObjectScript</td>
</tr>
<tr>
<th scope="row">Talent pool</th>
<td class="us">Python (vast)</td>
<td>JS (large)</td>
<td>Tcl (scarce)</td>
<td>JS + product-specific</td>
<td>Product-specific</td>
<td>ObjectScript (scarce)</td>
</tr>
<tr>
<th scope="row">Config as code / git</th>
<td class="us">Plain Python in your repo</td>
<td>XML-in-DB (exportable)</td>
<td>Proprietary</td>
<td>Proprietary</td>
<td>Proprietary GUI</td>
<td>Classes in IRIS</td>
</tr>
<tr>
<th scope="row">Lock-in</th>
<td class="us">None (open, standard DBs)</td>
<td>Moderate</td>
<td>Moderate–high</td>
<td>Moderate–high (contract)</td>
<td>Moderate–high</td>
<td>High (language + Caché)</td>
</tr>
<tr>
<th scope="row">Modern tooling</th>
<td class="us">VS Code, git, CI gate</td>
<td>Proprietary console</td>
<td>Proprietary IDE</td>
<td>Proprietary</td>
<td>Proprietary GUI</td>
<td>Studio / VS Code ext</td>
</tr>
<tr>
<th scope="row">CI/CD</th>
<td class="us">Native — git PRs, pipeline gate, headless tests</td>
<td>Export-based, limited</td>
<td>Vendor / GUI-driven</td>
<td>Vendor / GUI-driven</td>
<td>No-code GUI</td>
<td>Studio / source hooks</td>
</tr>
<tr>
<th scope="row">Native AI assist</th>
<td class="us">Governed and PHI-safe by construction — code-only, never message bodies; RBAC-gated with a central policy</td>
<td>No</td><td>No</td><td>No</td>
<td>“Axon” (new)</td>
<td>No</td>
</tr>
<tr>
<th scope="row">Reliability</th>
<td class="us">Durable; active-passive HA</td>
<td>Mature (proven scale)</td>
<td>Mature (proven scale)</td>
<td>Mature (KLAS #2, '25)</td>
<td>Mature (Best in KLAS)</td>
<td>Mature (high perf)</td>
</tr>
<tr>
<th scope="row">Test tooling</th>
<td class="us">Full harness included</td>
<td>Separate</td><td>Separate</td><td>Separate</td><td>Separate</td><td>Separate</td>
</tr>
<tr>
<th scope="row">Connectivity <small style="display:block;color:var(--muted);font-weight:600">transports ≈ parity</small></th>
<td class="us">MLLP, TCP, X12/EDI, HTTP/REST, SOAP, DB, files (local + SFTP/FTP/FTPS) — + Python for the rest</td>
<td>Core transports + extensible</td>
<td>Broad transports + many standards</td>
<td>Broad (adds JMS/Kafka)</td>
<td>Comparable transports</td>
<td>Broad + deep standards</td>
</tr>
<tr>
<th scope="row">Maturity <small style="display:block;color:var(--muted);font-weight:600">our gap</small></th>
<td class="us">New (Early Access)</td>
<td>15+ yrs</td>
<td>30+ yrs</td>
<td>Mature</td><td>Mature</td><td>30+ yrs</td>
</tr>
<tr>
<th scope="row">Support & consulting</th>
<td class="us">Maintainer + GitHub issues (<a href="/status.html">no support org yet</a>)</td>
<td>Large community</td>
<td>Enterprise</td>
<td>Strong (KLAS #2)</td>
<td>Best in KLAS · 16 yrs</td>
<td>Enterprise</td>
</tr>
</tbody>
</table>
</div>
<p style="color:var(--muted);font-size:.86rem;margin-top:16px;max-width:90ch">* <b>Ensemble column = InterSystems' interface engine</b>: Ensemble (legacy, maintenance ending ~Q1 2027) → HealthShare Health Connect (current). It rates the engine slice, <b>not</b> the full IRIS for Health platform. “Native AI assist” means AI help <em>authoring/porting integration code</em> (Corepoint's Axon, MessageFoundry's assistant) — not IRIS's in-database ML, a separate platform capability. This is a fair high-level orientation, not a feature-by-feature audit; capabilities, licensing, and editions change — verify against each vendor's current documentation.</p>
</div>
</section>
<!-- head-to-head selector -->
<section class="section">
<div class="container">
<div class="center" style="margin-bottom:34px">
<span class="eyebrow">HL7 interface engine vendors</span>
<h2>Compare Message<span class="wordmark-accent">Foundry</span> against the top HL7 interface engines</h2>
<p class="lead center">A shortlist of the leading HL7 interface engine vendors — Mirth Connect, Cloverleaf, Rhapsody, Corepoint, and InterSystems Ensemble — each compared the same honest way: their genuine strength, the shift, the MessageFoundry advantage, and where they still win today.</p>
</div>
<div class="vs">
<input type="radio" name="vs" id="r-mirth" checked>
<input type="radio" name="vs" id="r-clover">
<input type="radio" name="vs" id="r-rhap">
<input type="radio" name="vs" id="r-core">
<input type="radio" name="vs" id="r-ens">
<div class="vs-tabs" role="tablist" aria-label="Choose a competitor to compare against MessageFoundry">
<label class="vs-tab" for="r-mirth">Mirth Connect <small>NextGen</small></label>
<label class="vs-tab" for="r-clover">Cloverleaf <small>Infor</small></label>
<label class="vs-tab" for="r-rhap">Rhapsody <small>Hg Capital</small></label>
<label class="vs-tab" for="r-core">Corepoint <small>Rhapsody</small></label>
<label class="vs-tab" for="r-ens">Ensemble / Health Connect <small>InterSystems</small></label>
</div>
<div class="vs-panels">
<article class="vs-panel" id="panel-mirth" aria-label="MessageFoundry versus Mirth Connect">
<h3>Message<span class="wordmark-accent">Foundry</span> <b>vs</b> Mirth Connect (NextGen)</h3>
<div class="vs-row"><span class="vs-lbl vs-lbl--str">Their strength</span><p>The most widely adopted engine of the last decade — a huge community, deep documentation, broad extensibility via JavaScript/Java transformers, and a battle-tested channel architecture on a cross-platform JVM.</p></div>
<div class="vs-row"><span class="vs-lbl vs-lbl--shift">The shift</span><p>Open source ended at v4.5.2; v4.6+ is closed and paid, with no security patches to the free line.</p></div>
<div class="vs-row vs-row--wedge"><span class="vs-lbl vs-lbl--wedge">MessageFoundry advantage</span><p>Open source <em>by license</em> (AGPL) — the property Mirth users came for — on a modern foundation: <b>Python</b> instead of aging Rhino JavaScript, integration logic as plain code in your git repo instead of XML in a database, and a real VS Code experience. Because migration is AI-assisted, porting your channels to Python can be far less work than re-platforming onto another engine. <a href="/migrate/mirth/">See the step-by-step switch-from-Mirth guide →</a></p></div>
<div class="vs-row vs-row--win"><span class="vs-lbl vs-lbl--win">Where Mirth still wins today</span><p>Community size, ecosystem depth, and years of production hardening. MessageFoundry's transports are at rough parity, but it hasn't built up a comparable pre-built-adapter ecosystem yet.</p></div>
</article>
<article class="vs-panel" id="panel-clover" aria-label="MessageFoundry versus Infor Cloverleaf">
<h3>Message<span class="wordmark-accent">Foundry</span> <b>vs</b> Infor Cloverleaf</h3>
<div class="vs-row"><span class="vs-lbl vs-lbl--str">Their strength</span><p>30+ years of enterprise maturity, an extensive library of healthcare adapters, and a reputation for reliability at scale in large integrated delivery networks.</p></div>
<div class="vs-row"><span class="vs-lbl vs-lbl--shift">The shift</span><p>Owned by Infor / Koch Industries; scripted in <b>Tcl</b>, where hiring is hard and consultants are expensive; enterprise-grade total cost of ownership.</p></div>
<div class="vs-row vs-row--wedge"><span class="vs-lbl vs-lbl--wedge">MessageFoundry advantage</span><p><b>Python instead of Tcl</b> — you can staff a Python team almost anywhere — open source instead of enterprise licensing, modern DevOps tooling instead of a dated console, and no lock-in.</p></div>
<div class="vs-row vs-row--win"><span class="vs-lbl vs-lbl--win">Where Cloverleaf still wins today</span><p>Very large, legacy-heavy IDNs that need its proven adapters and decades of operational track record right now.</p></div>
</article>
<article class="vs-panel" id="panel-rhap" aria-label="MessageFoundry versus Rhapsody">
<h3>Message<span class="wordmark-accent">Foundry</span> <b>vs</b> Rhapsody</h3>
<div class="vs-row"><span class="vs-lbl vs-lbl--str">Their strength</span><p>A mature, top-rated platform — strong support and reliability, robust governance, broad standards coverage (HL7, FHIR, X12, and more), and a mature cloud offering. Its engine placed <b>second</b> among integration engines in the 2025 Best in KLAS report — highly rated, though never #1.</p></div>
<div class="vs-row"><span class="vs-lbl vs-lbl--shift">The shift</span><p>A private-equity-owned (Hg Capital) suite built through consolidation, sold via custom, undisclosed pricing and multi-year contracts, with no open-source or free tier.</p></div>
<div class="vs-row vs-row--wedge"><span class="vs-lbl vs-lbl--wedge">MessageFoundry advantage</span><p><b>Open source, no contract lock-in, and plain Python</b> against a premium proprietary platform — your integration logic lives in your repository, not inside a vendor's runtime or commercial agreement.</p></div>
<div class="vs-row vs-row--win"><span class="vs-lbl vs-lbl--win">Where Rhapsody still wins today</span><p>Support quality, enterprise governance, FHIR/EMPI breadth, and proven scale. For a large health system that wants a vendor-managed, top-rated platform, Rhapsody is a strong choice.</p></div>
</article>
<article class="vs-panel" id="panel-core" aria-label="MessageFoundry versus Corepoint">
<h3>Message<span class="wordmark-accent">Foundry</span> <b>vs</b> Corepoint</h3>
<div class="vs-row"><span class="vs-lbl vs-lbl--str">Their strength</span><p>The <b>Best in KLAS</b> interface engine — ranked #1 for 16 consecutive years (95.2 in 2025) — a guided, no-code/low-code experience renowned for ease of use and support that lets non-programmer teams stand up interfaces quickly.</p></div>
<div class="vs-row"><span class="vs-lbl vs-lbl--shift">The shift</span><p>Now part of the Rhapsody/Hg portfolio; proprietary and Windows-based on-premises; premium pricing; a new AI assistant (“Axon”) whose track record is still early.</p></div>
<div class="vs-row vs-row--wedge"><span class="vs-lbl vs-lbl--wedge">MessageFoundry advantage</span><p><b>Full control with no no-code ceiling</b>, made approachable by setup wizards and a PHI-safe AI assistant — so you get Corepoint-style guided authoring <em>and</em> the ability to express arbitrarily complex logic, on an open platform, with no lock-in.</p></div>
<div class="vs-row vs-row--win"><span class="vs-lbl vs-lbl--win">Where Corepoint still wins today</span><p>For a team that wants <em>pure</em> no-code with no developers at all, Corepoint is easier out of the box. MessageFoundry's wizards and AI make setup approachable, and what they generate is readable, reviewable configuration you can grow into.</p></div>
</article>
<article class="vs-panel" id="panel-ens" aria-label="MessageFoundry versus InterSystems Ensemble and HealthShare Health Connect">
<h3>Message<span class="wordmark-accent">Foundry</span> <b>vs</b> InterSystems Ensemble / HealthShare Health Connect</h3>
<div class="vs-row"><span class="vs-lbl vs-lbl--str">Their strength</span><p>Very high performance and scale, and — at the platform level (IRIS for Health) — a unified stack combining a database, interoperability, analytics, in-database ML, and HealthShare's HIE/EMPI capabilities.</p></div>
<div class="vs-row"><span class="vs-lbl vs-lbl--shift">The shift</span><p>Ensemble is <b>legacy</b> (maintenance ending ~Q1 2027); its successor as an engine is HealthShare Health Connect, the integration slice of the IRIS for Health platform. The stack ties you to <b>ObjectScript</b> <em>and</em> a proprietary Caché/IRIS database.</p></div>
<div class="vs-row vs-row--wedge"><span class="vs-lbl vs-lbl--wedge">MessageFoundry advantage</span><p>If you are an Ensemble customer, you face a migration regardless — so migrate the <em>integration function</em> to an open, Python, no-lock-in engine on standard databases, rather than deeper into a proprietary platform. <b>You shouldn't have to adopt a proprietary data platform and a niche language just to move HL7 messages.</b></p></div>
<div class="vs-row vs-row--win"><span class="vs-lbl vs-lbl--win">Where InterSystems still wins today</span><p>If a buyer genuinely wants one unified platform — DBMS + analytics + in-database ML + HIE/EMPI at massive scale — IRIS for Health delivers that. We are a focused interface engine and do <b>not</b> claim to replace its database, analytics, or HIE products.</p></div>
</article>
</div>
</div>
</div>
</section>
<!-- why teams leave -->
<section class="section section--alt" id="why-leave">
<div class="container">
<div class="center" style="margin-bottom:34px">
<span class="eyebrow">Why teams leave</span>
<h2>The complaints we hear most about legacy engines</h2>
<p class="lead center">Across KLAS Research, G2, and community forums, the same frustrations with legacy interface engines come up again and again. They're real and recurring — and they're what MessageFoundry was designed to answer. Quotes below are representative and anonymized; where we're not there yet, we say so.</p>
</div>
<div class="grid grid-3" style="margin-bottom:14px">
<div class="card">
<p style="font-size:1.06rem;font-style:italic;color:var(--text)">“I wouldn't buy it again — it's cost prohibitive. We pay for every little thing.”</p>
<p style="color:var(--muted);font-size:.84rem;margin:0">— KLAS Research reviewer</p>
</div>
<div class="card">
<p style="font-size:1.06rem;font-style:italic;color:var(--text)">“Channels stop silently without crashing the engine. We don't know until clinicians escalate.”</p>
<p style="color:var(--muted);font-size:.84rem;margin:0">— Community forum</p>
</div>
<div class="card">
<p style="font-size:1.06rem;font-style:italic;color:var(--text)">“We're so entrenched now that a shift to another solution would be an enormous undertaking.”</p>
<p style="color:var(--muted);font-size:.84rem;margin:0">— KLAS Research reviewer</p>
</div>
</div>
<p class="center" style="color:var(--muted);font-size:.84rem;max-width:80ch;margin:0 auto 34px">Representative of public feedback across KLAS Research, G2, and community forums — anonymized, with competitor names removed. See <a href="#sources">sources & notes</a>.</p>
<div class="grid grid-3">
<div class="card">
<h3>Priced to punish growth</h3>
<p>Per-connection fees, per-transaction charges, and a separate bill for web services, FHIR, and alerting. As your interface count climbs, the license grows with it — automatically.</p>
<p style="margin-top:12px;padding-top:12px;border-top:1px solid var(--border)"><b style="color:var(--accent-ink)">MessageFoundry —</b> Open source under the AGPL: no per-interface, per-connection, or per-transaction fees, and nothing held back as a paid add-on. Web services, REST, FHIR, and alerting are part of the open engine — never a separate license.</p>
</div>
<div class="card">
<h3>Tools — and talent — from a different era</h3>
<p>Obsolete scripting languages you can't hire for, version-locked desktop clients, and paid vendor certifications before anyone is productive.</p>
<p style="margin-top:12px;padding-top:12px;border-top:1px solid var(--border)"><b style="color:var(--accent-ink)">MessageFoundry —</b> Set up interfaces with guided wizards, or use plain Python — one of the most widely known languages, no proprietary DSL to staff for — in VS Code with a PHI-safe AI assistant. No costly certification, and no version-locked desktop client to install.</p>
</div>
<div class="card">
<h3>Version control as an afterthought</h3>
<p>No native Git, configuration locked inside the engine's internal database, and manual, error-prone promotion between environments with no automated testing.</p>
<p style="margin-top:12px;padding-top:12px;border-top:1px solid var(--border)"><b style="color:var(--accent-ink)">MessageFoundry —</b> Your integration is plain Python in your own Git repo — every change a reviewable pull request. A <code>check</code> build-gate dry-runs messages and fails CI on a broken route, and reviewed, tested changes promote DEV → PROD with no config drift.</p>
</div>
<div class="card">
<h3>You find out when a clinician calls</h3>
<p>Rudimentary monitoring and channels that stop silently — with recovery that can mean hours of failover while the engine re-verifies every stored message.</p>
<p style="margin-top:12px;padding-top:12px;border-top:1px solid var(--border)"><b style="color:var(--accent-ink)">MessageFoundry —</b> A live console — connection dashboard, message search, delivery and audit trail, one-click replay — plus a count-and-log invariant: every message is a recorded outcome, so a stalled channel surfaces instead of vanishing. Recovery is replay from the durable store, not a multi-hour integrity scan.</p>
</div>
<div class="card">
<h3>Critical CVEs, slow patches</h3>
<p>Exploited, unauthenticated RCE vulnerabilities, multi-step patch paths, and updates that have silently deleted security configuration on install.</p>
<p style="margin-top:12px;padding-top:12px;border-top:1px solid var(--border)"><b style="color:var(--accent-ink)">MessageFoundry —</b> Open source you can audit line by line and patch on your own schedule. Built through a secure development lifecycle (NIST SSDF) with SAST, dependency, and secret scanning on every build, and secure by default — RBAC, a hash-chained audit trail, and AES-256-GCM encryption at rest. Config lives in Git, so an update can't silently erase it.</p>
</div>
<div class="card">
<h3>Locked in while the vendor changes hands</h3>
<p>Proprietary languages and internal config databases make migration prohibitively expensive — while the engine itself gets passed between owners and rebrands, with support drifting after each deal.</p>
<p style="margin-top:12px;padding-top:12px;border-top:1px solid var(--border)"><b style="color:var(--accent-ink)">MessageFoundry —</b> Your configuration is yours — generated by wizards or written in Python, versioned in your own repo — and your messages live in standard databases; no proprietary language or config database to escape. And as an open-source, non-profit project, it can't be acquired or relicensed out from under you; worst case, you still have the code.</p>
</div>
</div>
<div class="callout" style="margin-top:28px">
<p><strong>Where we're not there yet, we say so.</strong> The incumbents still lead on connector breadth and proven scale, and a few capabilities — inbound REST/SOAP/FHIR listeners and SMART on FHIR — are on our roadmap, not in Early Access. See the gaps we own <a href="#honest-gaps">below</a> and the roadmap on the <a href="/features.html">features page</a>.</p>
</div>
</div>
</section>
<!-- honest gaps -->
<section class="section section--dark" id="honest-gaps">
<div class="container">
<div class="center" style="margin-bottom:34px">
<span class="eyebrow">Honest about the gaps</span>
<h2>Where the incumbents are genuinely stronger</h2>
<p class="lead center">A fair review names them.</p>
</div>
<div class="grid grid-2" style="align-items:start">
<ul class="feature-list">
<li><b>Pre-built adapter ecosystem & maturity</b> — our transports (MLLP, TCP, X12/EDI, HTTP/REST, SOAP, FHIR REST, <a href="/dicom.html">DICOM</a>, database, and local/remote files) sit at rough parity with the incumbents, but they bring decades of field-hardened deployments and far larger pre-built-adapter and partner ecosystems. (The widely-cited Mirth "800+" is NextGen's EHR-API integration-route count, not a count of engine connectors.)</li>
<li><b>Proven scale and maturity</b> — the incumbents have 15–30 years and thousands of production sites. MessageFoundry is new.</li>
<li><b>Third-party ecosystem & certifications</b> — Corepoint is the Best in KLAS integration engine (16 straight years) and Rhapsody rates highly too; large independent consulting ecosystems and formal certifications exist for all five.</li>
</ul>
<ul class="feature-list">
<li><b>Pure no-code for non-developers</b> — Corepoint's no-code UI is genuinely easier for a team with no developers at all; our guided wizards lower the barrier, but full power is in code.</li>
<li><b>Platform breadth</b> — IRIS for Health's full data platform (DBMS + analytics + in-database ML + FHIR repository) and HealthShare's HIE/EMPI, plus Rhapsody's EMPI/semantic capabilities, go well beyond what an interface engine does. We don't try to replace them.</li>
</ul>
</div>
<div class="callout callout--on-dark" style="margin-top:28px;background:rgba(245,158,11,.07);border-color:rgba(245,158,11,.28);color:var(--muted-dk)">
<p><strong style="color:var(--accent)">The AGPL nuance, stated plainly.</strong> AGPL-3.0 is a strong copyleft license — it guarantees the freedom and no-lock-in we lead with, but some enterprises maintain AGPL review policies. For organizations that need different terms, a commercial / dual license is available. We'd rather you know that up front than discover it in procurement.</p>
</div>
</div>
</section>
<!-- which to choose -->
<section class="section section--alt">
<div class="container">
<div class="center" style="margin-bottom:38px">
<span class="eyebrow">Honest guidance</span>
<h2>Which one should you reach for?</h2>
</div>
<div class="grid grid-3">
<div class="card">
<h3>Choose Message<span class="wordmark-accent">Foundry</span> when…</h3>
<ul class="feature-list" style="margin-top:12px">
<li>You want guided setup with the option of full code and Git-based change control.</li>
<li>You want a handful of reliable HL7 interfaces without a heavyweight platform.</li>
<li>You need configuration diffable and reviewable in PRs — and no vendor lock-in.</li>
<li>You're facing a Mirth or Ensemble migration and want an open, modern target — <a href="/migrate/">see the migration playbook</a>.</li>
</ul>
</div>
<div class="card">
<h3>Consider the premium suites when…</h3>
<ul class="feature-list" style="margin-top:12px">
<li>You need a large library of prebuilt connectors today (Mirth, Cloverleaf).</li>
<li>You want a vendor-managed platform with deep governance and broad standards coverage (Rhapsody).</li>
<li>Non-developers will build interfaces in a Best-in-KLAS no-code UI (Corepoint).</li>
</ul>
</div>
<div class="card">
<h3>Consider a unified platform when…</h3>
<ul class="feature-list" style="margin-top:12px">
<li>You want DBMS + analytics + in-database ML + HIE/EMPI in one stack (IRIS for Health).</li>
<li>You're standardizing a whole health system on a single vendor's data platform.</li>
<li>Massive-scale, mission-critical throughput is the primary requirement.</li>
</ul>
</div>
</div>
</div>
</section>
<!-- faq -->
<section class="section">
<div class="container">
<div class="center" style="margin-bottom:28px"><span class="eyebrow">FAQ</span><h2>Frequently asked questions</h2></div>
<div class="faq">
<div class="faq-item"><h3>Is MessageFoundry a Mirth Connect alternative?</h3><p>Yes. MessageFoundry is an open-source healthcare interface engine you can run in place of Mirth Connect. The key difference is that it is Python-native rather than a Java/JavaScript channel model — you write routing, transformation, and validation in plain Python, version-controlled like any codebase.</p></div>
<div class="faq-item"><h3>Is MessageFoundry open source, and what license does it use?</h3><p>Yes. The MessageFoundry engine is open source under AGPL-3.0-or-later, with the source on GitHub and the package on PyPI. A low-cost commercial license is also available from the non-profit for organizations that can't adopt copyleft terms.</p></div>
<div class="faq-item"><h3>How is MessageFoundry different from Mirth, Rhapsody, and Corepoint?</h3><p>MessageFoundry is self-hosted and Python-native: interfaces are plain Python code under version control, PHI stays on your infrastructure, and there is no per-interface licensing. Legacy engines are typically proprietary, GUI- and channel-driven, and licensed per server or communication point.</p></div>
<div class="faq-item"><h3>What does MessageFoundry cost?</h3><p>The open-source engine is free to download and self-host under AGPL-3.0, with no per-interface or per-message fees. A low-cost commercial license is available from the non-profit for organizations that can't use copyleft terms, with fees reinvested in the project.</p></div>
<div class="faq-item"><h3>Is MessageFoundry a Cloverleaf alternative?</h3><p>Yes. MessageFoundry is an open-source, self-hosted alternative to Infor Cloverleaf. You build interfaces in Python instead of Tcl — a far larger talent pool — with no enterprise licensing or lock-in. Cloverleaf still leads for very large, legacy-heavy IDNs that need its proven adapter library today.</p></div>
<div class="faq-item"><h3>Is MessageFoundry a Rhapsody alternative?</h3><p>Yes. MessageFoundry is an open-source alternative to Rhapsody: your integration logic lives in your own git repository as plain Python, with no multi-year contract or undisclosed pricing. Rhapsody still leads on vendor-managed support, governance, and FHIR/EMPI breadth at scale.</p></div>
<div class="faq-item"><h3>Is MessageFoundry a Corepoint alternative?</h3><p>Yes. MessageFoundry is an open-source alternative to Corepoint, with setup wizards and a PHI-safe AI assistant for guided authoring — plus full control and no no-code ceiling. Corepoint (Best in KLAS) is easier out of the box for pure no-code teams with no developers.</p></div>
<div class="faq-item"><h3>Is MessageFoundry an Ensemble or Health Connect alternative?</h3><p>Yes. With InterSystems Ensemble reaching end-of-maintenance around Q1 2027, MessageFoundry lets you migrate the integration function to an open Python engine on standard databases — instead of deeper into ObjectScript and a proprietary IRIS database. InterSystems still wins if you want one unified DBMS, analytics and HIE platform at scale.</p></div>
</div>
</div>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Is MessageFoundry a Mirth Connect alternative?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. MessageFoundry is an open-source healthcare interface engine you can run in place of Mirth Connect. The key difference is that it is Python-native rather than a Java/JavaScript channel model — you write routing, transformation, and validation in plain Python, version-controlled like any codebase."
}
},
{
"@type": "Question",
"name": "Is MessageFoundry open source, and what license does it use?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. The MessageFoundry engine is open source under AGPL-3.0-or-later, with the source on GitHub and the package on PyPI. A low-cost commercial license is also available from the non-profit for organizations that can't adopt copyleft terms."
}
},
{
"@type": "Question",
"name": "How is MessageFoundry different from Mirth, Rhapsody, and Corepoint?",
"acceptedAnswer": {
"@type": "Answer",
"text": "MessageFoundry is self-hosted and Python-native: interfaces are plain Python code under version control, PHI stays on your infrastructure, and there is no per-interface licensing. Legacy engines are typically proprietary, GUI- and channel-driven, and licensed per server or communication point."
}
},
{
"@type": "Question",
"name": "What does MessageFoundry cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The open-source engine is free to download and self-host under AGPL-3.0, with no per-interface or per-message fees. A low-cost commercial license is available from the non-profit for organizations that can't use copyleft terms, with fees reinvested in the project."
}
},
{
"@type": "Question",
"name": "Is MessageFoundry a Cloverleaf alternative?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. MessageFoundry is an open-source, self-hosted alternative to Infor Cloverleaf. You build interfaces in Python instead of Tcl — a far larger talent pool — with no enterprise licensing or lock-in. Cloverleaf still leads for very large, legacy-heavy IDNs that need its proven adapter library today."
}
},
{
"@type": "Question",
"name": "Is MessageFoundry a Rhapsody alternative?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. MessageFoundry is an open-source alternative to Rhapsody: your integration logic lives in your own git repository as plain Python, with no multi-year contract or undisclosed pricing. Rhapsody still leads on vendor-managed support, governance, and FHIR/EMPI breadth at scale."
}
},
{
"@type": "Question",
"name": "Is MessageFoundry a Corepoint alternative?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. MessageFoundry is an open-source alternative to Corepoint, with setup wizards and a PHI-safe AI assistant for guided authoring — plus full control and no no-code ceiling. Corepoint (Best in KLAS) is easier out of the box for pure no-code teams with no developers."
}
},
{
"@type": "Question",
"name": "Is MessageFoundry an Ensemble or Health Connect alternative?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. With InterSystems Ensemble reaching end-of-maintenance around Q1 2027, MessageFoundry lets you migrate the integration function to an open Python engine on standard databases — instead of deeper into ObjectScript and a proprietary IRIS database. InterSystems still wins if you want one unified DBMS, analytics and HIE platform at scale."
}
}
]
}
</script>
<!-- sources -->
<section class="section section--tight">
<div class="container" id="sources" style="max-width:920px">
<h2 style="font-size:1.4rem">Sources & notes</h2>
<details class="sources">
<summary>Show sources (14)</summary>
<ol>
<li>NextGen Healthcare — <em>A new era for Mirth Connect by NextGen Healthcare</em> — <a href="https://www.nextgen.com/blog/industry-news/a-new-era-for-mirth-connect-by-nextgen-healthcare" target="_blank" rel="noopener">nextgen.com</a></li>
<li>Meditecs — <em>Mirth Connect license change</em> — <a href="https://www.meditecs.com/kb/mirth-connect-license-change/" target="_blank" rel="noopener">meditecs.com</a></li>
<li>Saga IT — <em>Mirth Connect alternatives (2026): OIE, BridgeLink & more</em> — <a href="https://saga-it.com/blog/mirth-connect-alternatives" target="_blank" rel="noopener">saga-it.com</a>; Nirmitee — <em>Mirth Connect alternatives 2026 after the licensing change</em> — <a href="https://nirmitee.io/blog/mirth-connect-alternatives-2026-after-licensing-change/" target="_blank" rel="noopener">nirmitee.io</a></li>
<li>PRNewswire — <em>Rhapsody Named Top Integration Engine in 2025 Best in KLAS Report</em> — <a href="https://www.prnewswire.com/news-releases/rhapsody-named-top-integration-engine-in-2025-best-in-klas-report-302368313.html" target="_blank" rel="noopener">prnewswire.com</a> <span style="color:var(--muted)">— note: the #1-ranked integration engine is <b>Corepoint</b> (a Rhapsody Health Solutions product) at 95.2, its 16th consecutive year; the Rhapsody-branded engine placed second.</span></li>
<li>KLAS Research — Rhapsody / Corepoint listing — <a href="https://klasresearch.com/review/rhapsody-corepoint/1296" target="_blank" rel="noopener">klasresearch.com</a></li>
<li>Bio-IT World — <em>Global interoperability leader Lyniate rebrands as Rhapsody</em> (2023) — <a href="https://www.bio-itworld.com/pressreleases/2023/04/04/global-interoperability-leader-lyniate-rebrands-as-rhapsody" target="_blank" rel="noopener">bio-itworld.com</a></li>
<li>PRNewswire — <em>Orion Health finalizes investment deal with Hg</em> (2018) — <a href="https://www.prnewswire.com/news-releases/orion-health-finalizes-investment-deal-with-hg-300740993.html" target="_blank" rel="noopener">prnewswire.com</a></li>
<li>BusinessWire — <em>Lyniate and NextGate announce merger</em> (2022) — <a href="https://www.businesswire.com/news/home/20220315005333/en/Lyniate-and-NextGate-Announce-Merger-Agreement-Advancing-Healthcare-Interoperability-Leadership" target="_blank" rel="noopener">businesswire.com</a></li>
<li>Rhapsody — <em>Rhapsody and Corepoint merge to advance interoperability in healthcare</em> — <a href="https://rhapsody.health/blog/rhapsody-and-corepoint-merge-to-advance-interoperability-in-healthcare/" target="_blank" rel="noopener">rhapsody.health</a></li>
<li>Rhapsody — Corepoint Integration Engine — <a href="https://rhapsody.health/solutions/corepoint/" target="_blank" rel="noopener">rhapsody.health</a></li>
<li>Infor — <em>Koch Industries completes Infor acquisition</em> (2020) — <a href="https://www.infor.com/news/koch-industries-completes-infor-acquisition" target="_blank" rel="noopener">infor.com</a></li>
<li>Infor — Cloverleaf product page — <a href="https://www.infor.com/products/cloverleaf" target="_blank" rel="noopener">infor.com</a></li>
<li>InterSystems — IRIS for Health product page — <a href="https://www.intersystems.com/products/intersystems-iris-for-health/" target="_blank" rel="noopener">intersystems.com</a></li>
<li>InterSystems — minimum supported version / maintenance policy — <a href="https://www.intersystems.com/support/minimum-supported-version/" target="_blank" rel="noopener">intersystems.com</a></li>
</ol>
</details>
<p style="color:var(--muted);font-size:.84rem;margin-top:16px">Competitor pricing is described as publicly disclosed by each vendor; most do not publish prices, and third-party figures are estimates. Verify current terms directly with vendors. Trademarks belong to their respective owners. This is MessageFoundry's positioning, prepared in good faith from the sources above.</p>
<p style="color:var(--muted);font-size:.84rem;margin-top:10px"><b>MessageFoundry's own capabilities</b> describe the <b>Early Access</b> feature set as of June 2026 — the connections, message formats, reliability, high availability, and security listed on the <a href="/features.html">features page</a>; anything beyond Early Access is marked as roadmap. Early Access has not yet had an external code review or penetration test. These are the project's own claims, not third-party-sourced.</p>
</div>
</section>
<section class="section section--tight">
<div class="container">
<div class="cta-band">
<h2>Prefer your interfaces as code?</h2>
<p class="lead center" style="color:var(--muted-dk)">That's exactly what MessageFoundry is for — open, Python, no lock-in.</p>
<div class="btn-row center">
<a class="btn btn-primary" href="/getting-started.html">Get started</a>
<a class="btn btn-ghost" href="/features.html">Browse features →</a>
</div>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="container">
<div class="footer-grid">
<div class="footer-brand">
<a class="brand" href="/" aria-label="MessageFoundry home">
<img class="brand-mark" src="/assets/img/logo.svg" alt="" width="28" height="28">
<span class="brand-name">Message<span class="brand-accent">Foundry</span><span class="brand-tm">™</span></span>
</a>
<p class="footer-tagline"><b>More</b> Than an HL7 Interface Engine</p>
<p>Open-source healthcare interface engine — secure by default, built to recognized standards, connecting a wide range of protocols and message types.</p>
<div class="badge-row" style="margin-top:16px">
<span class="badge">Open source</span>
<span class="badge">No lock-in</span>
<span class="badge">Self-hosted</span>
</div>
</div>
<div class="footer-col">
<h4>Product</h4>
<a href="/overview.html">Overview</a>
<a href="/features.html">Features</a>
<a href="/architecture.html">Architecture</a>
<a href="/reliability.html">Reliability</a>
<a href="/dicom.html">DICOM</a>
<a href="/security.html">Security & PHI</a>
<a href="/documents.html">Documents</a>
</div>
<div class="footer-col">
<h4>Tools</h4>
<a href="/tools.html">Tools</a>
<a href="/editor.html">Editor</a>
<a href="/console.html">Console</a>
<a href="/ai.html">AI assist</a>
</div>
<div class="footer-col">
<h4>Get started</h4>
<a href="/getting-started.html">Quickstart</a>
<a href="/guides/">Guides</a>
<a href="/comparison.html">Comparison</a>
</div>
<div class="footer-col">
<h4>Project</h4>
<a href="/status.html">Project status</a>
<a href="https://github.com/MEFORORG/MessageFoundry" target="_blank" rel="noopener">GitHub</a>
<a href="https://github.com/MEFORORG/MessageFoundry/issues" target="_blank" rel="noopener">Issues</a>
<a href="/contact.html">Contact</a>
<a href="/licensing.html">License</a>
<a href="/about.html">About</a>
<a href="/sponsor.html">Sponsor</a>
</div>
</div>
<div class="footer-bottom">
<span>© 2026 MEFOR-ORG, a non-profit — this website and its content, all rights reserved. The MessageFoundry engine is separately open source, licensed under AGPL-3.0-or-later.</span>
<span>MessageFoundry and the MessageFoundry word mark are trademarks of MEFOR-ORG. Mirth Connect, Cloverleaf, Rhapsody, Corepoint, and Ensemble are trademarks of their respective owners; MessageFoundry is independent and unaffiliated.</span>
</div>
</div>
</footer>
<script src="/assets/js/nav.js" defer></script>
</body>
</html>