Carta

The map of your Visual FoxPro codebase.

Carta reads everything in a VFP 9 project — including the binary .scx / .vcx / .frx / .dbc artifacts ordinary tools can't open — with no VFP runtime needed. Search, go-to-definition, call graph, ERD, impact analysis, form previews. In VS Code and a browser cockpit. Understand a 30-year codebase in an afternoon.

runs entirely local · offline license keys · no cloud, no telemetry

Reads the binaries

.scx forms, .vcx classes, .frx reports, the .dbc — parsed directly as DBF containers.

Builds the map

Search everything, call graph, schema/ERD, per-routine complexity.

Lives where you live

A real VS Code language server plus a browser cockpit — and Open in VFP everywhere.

Answers "what breaks?"

Change-impact for any table or symbol: screens, references, FK ripple, caller blast radius.

Product tour

See it work on a real codebase.

Five moments from the fictional Meridian Trading Co. demo project — recorded live from the cockpit, nothing staged.

01 · Search

Search inside the binaries.

Typing custid finds 53 hits — including matches inside binary .scx forms — with previews, then one click to the editor or straight into VFP.

carta · search — custid
Animated: searching custid, 53 hits including inside a binary .scx, with preview and open actions
02 · Navigate

A language server for a language that never had one.

Hover GetNextID: signature, defining file:line, its own doc comment, and a ◂ 6 callers CodeLens — outline and breadcrumbs included.

carta · editor — hover & CodeLens
Animated: hovering GetNextID shows signature, doc comment, and 6 callers
03 · Understand

Follow a screen to its data.

frmOrderEntry (very-high risk, cx 38) → a live data-flow diagram to its 6 tables, with per-method behavior. Click any table to see every screen that touches it.

carta · atlas — frmOrderEntry data flow
Animated: frmOrderEntry data-flow diagram to its six tables
04 · Impact

"What breaks if I change this?"

Impact on orders: 5 screens, 117 code references (7 writes / 19 classified reads) across 14 files, 5 FK-related tables — one query.

carta · impact — orders
Animated: impact analysis of the orders table showing screens, references, and FK tables
05 · Preview

Render a form. VFP never runs.

Order Entry — 29 controls, grid, combos, bound totals — drawn straight from the .scx binary's control geometry. Textboxes show their ControlSource.

carta · form preview — frmOrderEntry.scx
Animated: the Order Entry form rendered statically from the .scx binary
Overview: an explain-this-app briefing with entry points and load-bearing code
Overview — "explain this app": entry points, startup trace, dead code, busiest tables.
Entity-relationship diagram parsed from the .dbc
Schema / ERD — every table, column, and FK relation, straight from the .dbc.
Complexity hotspots ranked per routine
Hotspots — complexity ranked per routine (CalcExtendedPrice cx 37).
Duplicate-code view listing clone groups, including a 29-line routine cloned across two programs
Duplicates — copy-pasted code, found: a 29-line aging routine cloned across two programs, plus 48 smaller clone groups.
Lint view showing a hard-coded path warning and leftover TODO and FIXME markers
Lint — static checks catch the hard-coded paths and leftover TODOs before they bite.

Why Carta

Nobody else reads FoxPro this way.

VFP has had no modern tooling since 2007 — and half of every FoxPro app is locked inside binary DBF artifacts. Carta was built for exactly that.

Static by design

Everything Carta knows comes from the project's artifacts alone — nothing here requires a running VFP. It works on any machine, and on projects VFP itself can't currently open (a locked .pjx included). Anything live is deliberately out of scope.

Reads the binaries

.scx / .vcx / .frx / .dbc are DBF containers; Carta parses them directly. That means form previews without opening VFP and method-level search inside binary forms — not just your .prg files.

No runtime, no install footprint

No VFP runtime, no cloud, no agent, no telemetry. Carta reads your project right on your machine — your source never leaves the building, which is exactly how confidential legacy code should be treated.

Answers the maintenance question

"What breaks if I change this?" Table → screens, classified read/write references, FK ripple. Symbol → transitive-caller blast radius. The question every legacy dev asks daily, answered in one query.

By the numbers

Measured, not promised.

Every figure below renders in the screenshots above — recorded from the Meridian demo project, never customer code.

~5 s

to map Meridian: 33 files, 10 tables, 9 binary forms, ~2,400 data rows.

~2–3 min

first full map of a 2,600-item production app — instant refreshes after that.

53 hits

for custid — including matches inside binary .scx forms.

117 refs

impact on orders: 5 screens, 7 writes / 19 classified reads across 14 files, 5 FK-related tables — one query.

29 controls

frmOrderEntry — grid, combos, bound totals — rendered straight from the .scx binary. VFP never runs.

cx 37

complexity hotspots ranked per routine (CalcExtendedPrice), with relative risk tiers per screen.

Get Carta

Carta is in private early access.

One edition, everything included. Tell us about your codebase and we'll set you up.

Everything Carta does

The full map, plus the bridge into a real, licensed VFP 9 IDE on your machine.

  • Search everything — full-text + regex across source and binaries
  • Go-to-definition, find-references, hover docs, call hierarchy, outline
  • Call graph, schema/ERD, complexity hotspots, dead-code view
  • Duplicate-code detection and lint — clones, hard-coded paths, leftover markers
  • Impact analysis — tables and symbols
  • Static form previews from the .scx
  • VS Code extension + browser cockpit
  • Open in VFP — any form, class, report, menu, or table jumps into its native designer
  • Save & Recompile — edit a method in Carta, write it back into the binary form (guarded, backed up), recompile in VFP
  • Live Console — a FoxPro REPL against a warm VFP session, plus compile-check and build APP/EXE
  • Priority support from the team that builds it
Contact us sales@pivoten.com · we read every message

FAQ

Fair questions, straight answers.

How does licensing work? Do I need to be online?

No. Carta uses offline, signed license keys — a self-contained statement of who bought what. There's no activation server and no phone-home. Your key covers every build released while it's current; when it lapses, those builds keep working forever — only newer builds ask you to renew.

Does any of my code leave my machine?

Never. Carta runs entirely on your machine — no cloud, no telemetry, nothing to sign in to. It's read-only by default, too: the only thing that ever writes to your project is the explicit, backed-up Save & Recompile action.

We're migrating away from VFP. Why would we buy tooling for it?

That's when you need the map most. Scoping a migration means knowing what's actually there: the ERD, the dead code, the dependency tangles, the complexity hotspots. Carta turns "we can't estimate what we can't see" into an assessment you can do in hours — and the map outlives the one developer who knew the system.

What platforms does it run on?

Windows x64 and Windows arm64. The bridge features drive a real VFP 9 IDE, which lives on Windows — so that's where Carta ships. The cockpit views run in any browser.

Do we have to leave FoxPro to use it?

No — Carta meets VFP developers where they live. Every view has Open in VFP: forms open in the Form Designer, classes in the Class Browser, tables in a Browse window. The real IDE stays for what it's uniquely good at; Carta adds everything it never had.