Skip to main content

Every Line of Business Logic. Extracted.

Migration doesn't start with building the new system. It starts with understanding the old one — completely. Our team extracted Onroute.io from 1,235 FileMaker scripts to a modern stack. We know what that takes.

Complete Extraction

Every script, calculation, relationship, value list, custom function, and privilege set — extracted from the DDR and translated into documented, reviewable specifications that your engineering team can build from.

Business Rule Documentation

The AI doesn't just extract structure — it interprets intent. Complex multi-step scripts become readable business rules. Cascading calculations become documented logic flows. Nothing gets lost in translation.

Architecture Mapping

Your FileMaker relationship graph becomes an entity-relationship diagram. Your privilege sets become RBAC policies. Your layouts become UI wireframes. Every architectural decision is preserved and mapped to modern equivalents.

Incremental Migration

You don't have to migrate everything at once. We extract modules independently so you can rebuild high-value features first while the FileMaker solution continues to run for everything else.

Zero Downtime Transition

Run the new system alongside FileMaker with data synchronisation between both. Migrate users gradually, validate business logic parity at every step, and cut over with confidence.

Before & After

From FileMaker to TypeScript — Onroute.io Extraction

FileMaker Script (XML)
<Step enable="True" name="Set Variable">
  <Name>$orgId</Name>
  <Value>
    GetValue(
      ExecuteSQL("SELECT org_id
        FROM OrgSharing
        WHERE user_id = ?"; ""; "";
        Get(AccountName)
      ); 1
    )
  </Value>
</Step>
<Step enable="True" name="If">
  <Calculation>
    $orgId ≠ "" and
    $$currentUser_isAdmin = 1
  </Calculation>
</Step>
TypeScript
async function getOrgSharing(
  userId: string
): Promise<OrgSharing | null> {
  const result = await db.orgSharing.findFirst({
    where: { userId },
    select: { orgId: true },
  });
  return result;
}

async function canModifySharing(
  user: AuthUser
): Promise<boolean> {
  return user.role === "admin"
    && user.orgId !== null;
}

Start your extraction

Our team extracted Onroute.io — 1,235 FileMaker scripts — to a modern stack with full fidelity. Send us a DDR export and we'll show you what your extraction looks like.