<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>TradeYoke — Engineering</title>
    <link>https://tradeyoke.net/blog/tag/engineering</link>
    <description>How TradeYoke is built — architecture, decisions and trade-offs.</description>
    <language>en-gb</language>
    <atom:link href="https://tradeyoke.net/blog/tag/engineering/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>One app, four platforms: how we ship to web, iOS, Android and Windows at once</title>
      <link>https://tradeyoke.net/blog/one-app-four-platforms</link>
      <guid>https://tradeyoke.net/blog/one-app-four-platforms</guid>
      <pubDate>Sat, 05 Sep 2026 21:15:11 GMT</pubDate>
      <description>TradeYoke's web app and native apps are the same code. Here's what that buys customers — and the rules we follow to keep it true.</description>
      <content:encoded><![CDATA[The rule
Everything a user sees lives in shared components. The web server, the browser and the native apps are thin shells that host those same components. A feature built for the web is therefore, automatically, the same feature everywhere.

What it means for you

 No "that's only on the desktop version" — the office and the van have the same capabilities.
 Fixes ship to every platform together.
 The native apps work offline; the web app is the always-online front door.

The discipline it takes
Platform differences — cameras, GPS, file pickers, notifications — go behind an interface with one implementation per platform. Nothing in the shared code may call a web-only or device-only API directly. We treat a missing implementation as a bug, because it would silently break one platform.

]]></content:encoded>
      <dc:creator>Carl Randall</dc:creator>
      <category>Engineering</category>
      <enclosure url="https://tradeyoke.net/media/media-seed-cover-one-app-four-platforms-jpg/cover-one-app-four-platforms.jpg?v=32yc2l1" type="image/jpeg" length="63197" />
      <media:content url="https://tradeyoke.net/media/media-seed-cover-one-app-four-platforms-jpg/cover-one-app-four-platforms.jpg?v=32yc2l1" medium="image" />
    </item>
  </channel>
</rss>