-
Markdown parser and serializer
Round-trip tested. Parse → AST → serialize → parse yields an identical AST across every supported block.
-
.flexstats bundle read/write
FileWrapper-backed bundle I/O, Quick Look thumbnail, DocumentGroup scene on macOS.
-
Markdown editing, live preview of prose
Headings, paragraphs, lists, tables. Chart, table, and KPI blocks show placeholders — parsed and preserved on save, rendered in v0.3+.
The pipeline,
stage by stage.
5 release groups, in the order they ship. v0.1 is the document skeleton — editing, saving, and a live preview of prose. v0.2 adds the data import pipeline. v0.3–v0.5 bring chart rendering online. v0.6–v0.8 make the output portable. v1.0 lands the intelligence layer and publishes the open file format.
Timelines are best-guesses, not commitments. Each release ships when its pipeline stage tests cleanly on a corpus of real, messy spreadsheets — not on the calendar. The order is the promise.
-
CSV + XLSX import
TabularData for CSV; CoreXLSX for Excel. Drag-drop onto the app, the window, or the empty state.
-
Detector framework
Header row, footnotes, subtotals, merged cells, multiple tables per sheet, currency columns, date columns, mixed-type columns — each reporting a confidence score.
-
Visual cleaning UI
A table view with highlighted issues, inline suggestions, and one-click accept/reject. Cleaned CSV lands in the bundle.
-
Chart DSL + Swift Charts renderers
bar, line, area, scatter first. Then pie, heatmap, waterfall, donut. 3D types land on macOS 26 via Chart3D.
-
Form-based chart editor
Non-technical users get pickers; power users can still edit the Markdown. The form edits the document; the document is the truth.
-
KPI cards, tables, grid layouts, themes
flexkpi, flextable, flexgrid blocks; eight themes and six palettes.
-
PDF export
Print-quality rendering with cover page, page breaks, headers and footers. Vector chart embedding where possible via CGPDFContext.
-
iOS viewer
Read-only `.flexstats` viewer on iPhone and iPad. Editing stays Mac-first until the native pipeline is finished.
-
Data refresh
"Refresh from original" re-runs the import pipeline and surfaces schema diffs when your source file changes shape.
-
On-device intelligence
Foundation Models powers "Suggest a chart," column label hints during import, and plain-language chart descriptions. Full opt-out in Settings.
-
Liquid Glass + Sample documents
Liquid Glass on macOS 26 surfaces, three sample `.flexstats` documents (sales, analytics, survey), and a progressive chart editor with DisclosureGroups for advanced options.
-
Open format spec
`FILE_FORMAT.md` published under CC BY 4.0. A `FlexStatsValidator` binary. Anyone can read, write, or convert `.flexstats` in any language.
What v1 deliberately doesn't do
Five things we said no to on purpose.
- Live database connections and real-time dashboards.
- Multi-user collaboration or team workspaces.
- Any cloud-hosted dashboards or accounts.
- A drag-to-pivot Excel replacement — we visualise, we don't wrangle.
- Windows, Linux, Android, or a web build. Apple-native on purpose.
Why the list is short
A roadmap is a promise about order, not volume.
The point isn't to sprint past v1.0. The point is to finish v1.0 with every pipeline stage tested, documented, and open-formatted. After that, live data sources, interactive dashboards, and dashboard-as-webpage export are on the v2 wishlist — but not committed, because committing things we haven't scoped is how software gets bloated.
The best way to shape the roadmap is to send us the spreadsheet.
The weird pivot. The footnote-laden quarterly. The survey export with six merged headers. The more messy real-world data we test against, the better the detectors get — and the sooner v0.2 lands with confidence.