AWR Timor Leste 92.3 FM: from a WordPress site to a React site listeners can install on their phones

Industry context
AWR Timor Leste 92.3 FM is a radio station in Dili that, according to the Kona-ba (About) page on its website, belongs to the Seventh-day Adventist Church, Timor Leste Mission, and broadcasts 24 hours a day on 92.3 FM. The station sits under the Adventist World Radio network. AWR's official broadcast schedule lists Dili in Portuguese, English, Tetun, and Indonesian, 24 hours a day.
This is a real MarkasDev client project, and AWR Timor Leste has agreed to be named. Our role was limited: MarkasDev built the website that now runs at awrtimorleste.org. We do not manage the hosting or the content of this site. Day-to-day operation sits with the AWR team.
The question on this page is simple: is the current site actually easier for listeners to reach, and can it be installed on their devices, compared with the earlier WordPress version? We answer with measurements anyone can re-check, not with impact claims. The move from WordPress to the React site was carried out on Thursday, 1 October 2026. All numbers for the current site were taken on 3 October 2026 (WIB, UTC+7), two days after the move, and each one comes with how we measured it.
Problem
The earlier site ran on WordPress. From the Wayback Machine, the capture of 26 March 2025 shows WordPress 6.7.2 with Elementor 3.28.1, and the capture of 12 April 2026 shows WordPress 6.9.4 with Elementor 4.0.1. The last WordPress capture recorded in the archive is 14 April 2026. The move to the React site was carried out on Thursday, 1 October 2026, and the measurements of the current site on this page were taken on 3 October 2026, two days after the move.
Two problems were the starting point. First, the site had to be easier for listeners to reach: pages that arrive with few files, clear language and metadata, and a path to the broadcast in few steps. Second, the site had to be installable on listeners' devices as an app (a PWA), so the broadcast can be opened from the phone's home screen without going through an app store.
The archived WordPress versions show the distance to those two goals. The homepage captured in March 2025 references 96 JavaScript, CSS, and image files in its initial HTML. The April 2026 capture references 167. There is no PWA manifest link in the HTML of either capture, the page language attribute is en-US although the homepage text is in Tetun, and there are no hreflang hints.
Constraints
- Language: Tetun is the main language of the site with English alongside. The broadcast uses four languages, but the site has no Portuguese version
- Audio is delivered from a third-party streaming server (MediaCP). Broadcast availability on the site depends on that service, which is not part of our work
- We have no analytics data from the old site. So there are no traffic, listener, or install numbers before and after
- The old-site comparison comes only from the Wayback Machine archive: two homepage capture dates (26 March 2025 and 12 April 2026) with some files failing to download, so the old server's response time (TTFB) cannot be measured
- The last WordPress homepage capture we used (12 April 2026) is about five and a half months before the move on 1 October 2026, so the WordPress version right before the move may have differed
- Measurements of the current site were taken on 3 October 2026, two days after the move, so they are an early snapshot and show no trend
- Measurements of the current site were taken from outside Timor-Leste, not from a listener's phone and network in Dili
- The donation page points visitors to WhatsApp and email, with no online payment flow on the site, so there is no transaction to test
Approach
Diagnose
For this case study we built the comparison baseline from the Wayback Machine archive, not from the previous operator's internal data. We pulled the capture list from the Wayback Machine CDX API (524 records for awrtimorleste.org, dated 26 March 2025, 15 July 2025, and 12 to 14 April 2026), then downloaded the raw homepage HTML from two captures and every JavaScript, CSS, and image file it references.
On the old version we checked: number of referenced files, HTML size, JavaScript and CSS size, presence of an <h1>, meta description, language attribute, hreflang, manifest link, and sitemap. In the March 2025 capture there is no meta description and og:description contains menu text (“Pages Podcast Contacts About Privacy Policy ...”). In the April 2026 capture a meta description exists in Tetun, but lang is still en-US.
For the current site we used the same measurements plus Lighthouse 13.5.0 (three runs, mobile emulation), curl, and Chrome's installability check. Diagnose here means setting these measurements first, so that “better” has a number to compare against.
Deliver
Deliver is building the current site. This is the state of the running site on 3 October 2026 according to our technical measurements.
The site is built as a React application (React Router, built with Vite). HTML is rendered per route, so content and metadata are in the first response. The homepage loads one JavaScript file and one CSS file. There are two languages (Tetun on the main routes, English under /en/) with hreflang tet, en, and x-default. There is one <h1>, a canonical link, JSON-LD structured data, a sitemap.xml with 64 URLs (13 of them under /en/), a robots.txt, and RSS feeds for articles and the podcast.
For the PWA, the site has a manifest.webmanifest (name “AWR Radio”, standalone display, 192 and 512 pixel icons, a maskable icon, and shortcuts for “Rona rádiu” (listen live), Podcast, and Orasaun (prayer)) and a sw.js that caches the app shell and an offline page. On phones, the site shows an “Instala AWR Radio” prompt explaining that no APK or app store is needed.
The acceptance criteria we used can be checked by anyone: the manifest and service worker load (HTTP 200), the service worker registration is active, and Chrome reports zero installability errors. The results are in the Outcomes section. For similar work, see our web development and apps services, and Deliver for per-stage acceptance criteria.
Operate
This section describes how we think about the AWR team running the site. MarkasDev does not manage the hosting or the content of this site, and we do not claim to. What we offer is a list of things we think are worth watching, with baseline numbers from the measurements above.
First, make today's numbers the baseline. Mobile Lighthouse gives performance 78 to 79, accessibility 100, best practices 96, SEO 100. An LCP of about 4.1 seconds under slow-phone network emulation is a clear room for improvement, and the audit flags an estimated 143 KiB of unused JavaScript. Re-measure after every major change with the same tool and settings.
Second, the service worker is versioned (sw.js carries a version hash and removes old caches on activation). Every release should be checked so that listeners who already installed the app receive the new files and do not get stuck on an old version.
Third, the broadcast is the core function. It depends on a third-party streaming server, so regular listening checks are worth setting up, along with one owner who knows what to do when the stream on the site drops. Also keep a calendar of renewals for the domain, hosting, and HTTPS certificate.
Fourth, the technical follow-up list: no Content-Security-Policy yet (other basic security headers are present), the 404 page returns status 404 but with about 77 KB of HTML, and there is no Portuguese version yet. Our Operate and server maintenance frameworks help assign an owner, a schedule, and an action boundary for items like these.
High-level architecture
This diagram is our simplification of the technical measurements of the running site (HTML, manifest, sw.js, HTTP headers). Hosting, the domain, and the streaming server are outside MarkasDev's scope and we do not manage them. The site has no Portuguese version even though the broadcast includes Portuguese.
Typical outcomes
All numbers below were measured on 3 October 2026 (WIB), two days after the move on 1 October 2026, so this is an early snapshot and not a trend. The comparison uses files referenced by the homepage HTML, so it excludes files loaded later by JavaScript. Details of the method are in the How we measured section.
Files referenced by the initial homepage HTML: 96 on WordPress (archive of 26 March 2025), 167 on WordPress (archive of 12 April 2026), and 24 on the current site. JavaScript files fell from 42 and 102 to 1, and CSS files from 46 and 53 to 1.
JavaScript and CSS successfully fetched, uncompressed: 3,283,667 bytes (March 2025 archive), 7,763,035 bytes (April 2026 archive), and 590,559 bytes now. After gzip level 6 on our own machine (an estimate, applied the same way to all three): 644,739, 1,806,521, and 160,146 bytes. From the server, the current JavaScript and CSS are delivered at 198,416 and 17,227 bytes.
Homepage HTML, uncompressed: 228,862 bytes (March 2025), 325,474 bytes (April 2026), and 151,614 bytes now. Compressed, the current HTML is 62,877 bytes from the server, while the old HTML is 35,378 bytes (March 2025) and 46,730 bytes (April 2026) by gzip level 6 on our machine. The current HTML is larger because page content and data are already in it, a trade we accept for far fewer files.
Measurable SEO basics: the old homepage has no <h1> in either archive, lang is en-US, and there is no hreflang. The current homepage has one <h1>, lang is tet, and hreflang is tet, en, x-default. The WordPress sitemap on 12 April 2026 held 53 URLs (15 pages and 38 posts). The current sitemap holds 64 URLs, 13 of them English.
PWA: in the HTML of both archives there is no manifest link and no service worker registration. On the current site the manifest and sw.js load (HTTP 200), the service worker is active, and Chrome reports zero installability errors.
Speed of the current site (no comparison exists for the old version): curl five times gave TTFB of 0.228 to 0.296 seconds, HTTP 200 over HTTP/2. Mobile Lighthouse three times: performance 78, 79, 79, accessibility 100, best practices 96, SEO 100. FCP 2.7 seconds, LCP 4.0 to 4.1 seconds, TBT 90 to 110 ms, CLS 0, Speed Index 5.1 seconds, 22 requests, about 553 KiB.
Not measured: traffic, number of listeners or installs, performance from Timor-Leste or on a 3G network, and the old site's TTFB. We do not use AWR's internal claims as results.
Typical or expected outcomes, not claims about MarkasDev project results.About this case study
This is a MarkasDev client project for AWR Timor Leste 92.3 FM, and AWR has agreed to be named. MarkasDev built the site that runs now. We do not manage the site's hosting or content, and day-to-day operation sits with the AWR team. The move from WordPress to the React site was carried out on Thursday, 1 October 2026. All numbers for the current site were measured on 3 October 2026 (WIB), two days after the move, and come with how they were measured.
About AWR Timor Leste
According to the Kona-ba page, AWR Timor Leste 92.3 FM is a radio station owned by the Seventh-day Adventist Church, Timor Leste Mission, broadcasting 24 hours a day on 92.3 FM in Dili. The station sits under Adventist World Radio. The site offers the live broadcast (Rádiu), podcasts, articles, books, devotions, and a donation page. We do not use listener or impact claims from internal sources as results.
Timeline
- 26 March 2025: Wayback Machine capture, WordPress 6.7.2.
- 12 April 2026: Wayback Machine capture, WordPress 6.9.4 (the "before" comparison).
- 14 April 2026: last WordPress capture recorded in the archive.
- Thursday, 1 October 2026: the move from WordPress to the React site.
- 3 October 2026: measurements of the current site, two days after the move.
Measured comparison
The comparison uses the homepage HTML and the files it references (scripts, CSS, images). The first two columns come from Wayback Machine archives, the third from the running site.
| Measurement | WordPress (archive 26 Mar 2025) | WordPress (archive 12 Apr 2026) | React site (measured 3 Oct 2026, after the move on 1 Oct) |
|---|---|---|---|
| Platform detected | WordPress 6.7.2, Elementor 3.28.1 | WordPress 6.9.4, Elementor 4.0.1 | React and Vite, HTML rendered per route |
| Homepage HTML, uncompressed | 228,862 B | 325,474 B | 151,614 B |
| Files referenced by initial HTML (JS, CSS, images) | 96 | 167 | 24 |
| JavaScript files | 42 | 102 | 1 |
| CSS files | 46 | 53 | 1 |
| JS and CSS fetched, uncompressed | 3,283,667 B | 7,763,035 B | 590,559 B |
| Estimated JS and CSS, local gzip level 6 | 644,739 B | 1,806,521 B | 160,146 B |
| h1 elements on the homepage | 0 | 0 | 1 |
| Meta description | none | present (Tetun) | present (Tetun) |
| lang attribute on html | en-US | en-US | tet |
| hreflang | none | none | tet, en, x-default |
| Manifest link and service worker registration in HTML | none | none | present, active, zero installability errors |
Note: in the March 2025 archive, three files failed to download (one stats script, one Google Fonts CSS, one image), and in the April 2026 archive three failed (two local scripts and one stats script). The old totals are therefore slightly lower than the real figures. Third-party files (for example Google Tag Manager in the 2026 archive) are counted when they downloaded.
How we measured
Old site: the capture list from the Wayback Machine CDX API (web.archive.org/cdx), raw HTML from captures 20250326024248 and 20260412054550 (with the id_ suffix so Wayback does not alter it), then every script, stylesheet, and image it references downloaded from the same capture. Sizes are bytes after decompression. The gzip estimate was made on our machine with gzip level 6, the same for old and new. The 12 April 2026 sitemap and robots.txt were read from the archive.
Current site: curl on 3 October 2026 (HTML, size, headers, TTFB five times), download of the files referenced by the HTML, Lighthouse 13.5.0 in mobile mode with simulated throttling (three runs, headless Chrome 154), and manifest and installability checks with the Chrome DevTools Protocol. Measurements were run from our computer outside Timor-Leste.

Results on the current site
Mobile Lighthouse: performance 78, 79, 79, accessibility 100, best practices 96, SEO 100. FCP 2.7 seconds, LCP 4.0 to 4.1 seconds, TBT 90 to 110 ms, CLS 0. From curl: TTFB 0.228 to 0.296 seconds, HTTP 200 over HTTP/2. There is no Lighthouse for the old site, because that WordPress site no longer serves pages and the archive cannot be measured like a live site.
Diagnose, Deliver, Operate
Diagnose: setting the comparison measurements from the Wayback Machine archive. Deliver: a React site with a PWA, two languages, and basic metadata that can be checked. Operate: how we think about operation by the AWR team, with a baseline and a follow-up list. MarkasDev does not manage the hosting or the content of this site.
What we did not measure or do not know
- Traffic, number of listeners, PWA installs, or ministry impact.
- TTFB and Lighthouse scores of the old WordPress site.
- Performance from Timor-Leste or on a 3G network, and a full accessibility audit (WCAG) with a screen reader.
- The hosting provider, who owns the hosting and domain accounts, backups, and monitoring.
Start with Diagnose
If your organisation's site or app needs a baseline that can be checked before it is changed, start with Diagnose.
Sources
Accessed 3 October 2026 (WIB).
- AWR Timor Leste, Kona-ba.
- Seventh-day Adventist Church, Timor Leste Mission, AWR Timor Leste.
- Adventist World Radio, AWR broadcast schedule B25 (PDF) (entry Timór-Leste, Dili, 92.3 FM).
- Internet Archive, Wayback Machine capture of 26 March 2025 and 12 April 2026.
- awrtimorleste.org, homepage HTML, manifest.webmanifest, sw.js, robots.txt, sitemap.xml (measured 3 October 2026).