Skip to content

Releases

Forma 1.5.1

Choose a tag to compare

@waqarsyd waqarsyd released this 10 Nov 19:49

Three small things the audit left (10 November 2026)

A request for a column the data does not have is answered with what the data has instead of a redesign around nothing, Stop stops a translation, and the page reader speaks plainly.

Changed

  • OCR. The page reader’s dialog says what it does in plain words: “The text read from the page”, “Getting ready to read”, and a revision named “Read from the page”.

Fixed

  • Chat. Ask for a column the report’s data does not have and Forma says so, lists the fields it does have and asks which to use, rather than redesigning the whole report around a field that would print nothing.
  • Chat. Stop now stops a translation while it is being made.

Every release, with a feed: https://openforma.web.app/changelog

Forma 1.5.0

Choose a tag to compare

@waqarsyd waqarsyd released this 10 Nov 19:29

A chat that just does it, and a Forma that learns from every use (10 November 2026)

Ask the chat for something and it happens: a translation, an export, a redesign, a heavy job, with Undo after and no button to press first. Replies say what was made, not what ran behind the scenes. Forma now learns from the shape of the reports you make, with a switch to turn it off and another to share whole reports. Fields clicked into show no ring or dark edge, and a new version says so.

New

  • Workspace. Forma learns from every use. By default it keeps the shape of each report you make or change, never the text, a field name or a picture, and sends it to your account when you are signed in; a second switch, off until you turn it on, shares whole reports and what you asked for. Settings → Learning shows what was kept and deletes it; the privacy policy says it all.
  • Site. When a newer Forma is ready while you have a tab open, a small note offers Reload, as Gmail and Linear do, instead of the page reloading itself later.

Changed

  • Chat. A request is carried out at once, as Claude, ChatGPT and Gemini carry one out: “translate it into German”, “export it as a PDF”, “open it in the designer”, a change only a redesign can make, or three files dropped together all go ahead with Undo after, and nothing asks you to press a button first. A tool the AI brings on its own, which words inside a report could have told it to, is still offered rather than run.
  • Chat. Replies say what was made and what to look at. They no longer recite what ran behind the scenes, show a reply’s token count, or end every report with “the checks found nothing wrong”; the request count stays under Settings.

Fixed

  • Workspace. A field clicked into shows the caret, not a grey ring or a darker edge: the project search, every Settings field, the share and rename boxes. Keyboard users still get the ring on Tab. The same on the public forms, where the contact form and the Docs search no longer flash an orange ring on a click.
  • Site. The home page describes Forma as it is: a report from a picture, a PDF, a .repx or a description, the .repx first and the mockup and spec read off it.

Every release, with a feed: https://openforma.web.app/changelog

Forma 1.4.1

Choose a tag to compare

@waqarsyd waqarsyd released this 10 Nov 14:33

The Forma Designer download links its file (10 November 2026)

The download page’s link to Forma Designer pointed at a release that was never made, so it answered Not found. It links the release that carries the file now, and the daily check of the live site asks for the file.

Fixed

  • Site. The Forma Designer download on the download page linked a GitHub release that was never made (1.3.0 shipped inside 1.4.0), so it answered Not found. It links the release that carries the file now; a deploy stops when the file is not where the page says, and the daily check of the live site asks for it.

Every release, with a feed: https://openforma.web.app/changelog

Forma 1.4.0

Choose a tag to compare

@waqarsyd waqarsyd released this 10 Nov 14:12

Sharper reading, a free fallback, and a chat that knows your report (10 November 2026)

Forma reads a picture of a page with PaddleOCR, which finds far more of its text than before, writes reports with Google’s Gemini 3.x Flash models, moves to the next free AI you set up when one reaches its limit, and answers questions about your report and about Forma from the report and Forma’s own documentation.

New

  • Report design. When the AI you chose reaches its limit, the next one you have set up answers on its own (OpenRouter, then a local AI, after Gemini), for a report and in the chat alike, and the reply says which answered. A request to a local AI is never sent anywhere else, and when every AI gives out, Forma’s own draft is your report as before.
  • Workspace. Settings suggests a pair for Ollama on your computer, a model that writes reports and reads pictures and a page reader, glm-ocr, sized for 8 GB or 16 GB of memory, with the commands that fetch them and one button that fills them in.
  • OCR. A page reader on Ollama or LM Studio, such as glm-ocr, can read a picture’s text beside Forma’s own reading; the AI is told to check against the picture any word the two read differently.
  • Chat. Ask about the open report (which fields it prints, its totals, groups, bands, parameters or paper) and Forma answers from the file itself, with no AI and no request.
  • Chat. Ask how Forma works and the chat answers from Forma’s own documentation, naming the article, instead of guessing at a button that may not exist.
  • Chat. Ask for the report in another language ("translate it into German") and Forma offers a button that translates every typed caption and title in one request, leaving the layout as it is, as a revision beside the original.
  • Chat. Ask about the data (which row is highest, what the amounts add up to) and Forma first asks whether the rows the Preview prints may go to the AI, saying how many and which fields; nothing goes until you say so, and the reply says when they went.
  • Preview. Right-click a control and choose Describe for the AI to say in a sentence what it is for; the AI reads it with the report, so a request can name a control by what it does. The sentence is the control’s accessible description, which DevExpress’s own checks ask for.
  • Chat. Three files or more, or nine pages, get a plan first: tick the files, choose one report or one for each, see what it will cost, then start. Nothing is read or sent before.

Improved

  • Report design. Forma uses Gemini 3.x Flash (and Flash-Lite for quick answers) when it picks a model for your key, as Google retires Gemini 2.5 Flash on 1 December. It reads as well as Gemini 3 Pro on documents, on the free tier.
  • OCR. An English picture or scan is read by PaddleOCR in your browser: on real report pages it found 97% of the printed characters where the reader before found 61%, so Forma’s draft and the AI start from far more of the page. Other languages are read as before, and nothing you upload leaves your browser.
  • Report design. A picture of a page is read at high resolution, so small print and thin lines come through. A PDF is not, since its text is exact already.
  • Report design. After a report from a picture, Forma checks it kept the captions and titles it read on the page, asks the AI once more, naming them, when several are missing, and the REPX pane lists any still left out.
  • OCR. The words the new reader is unsure of are flagged for review at its own threshold, so the review lists the ones most likely to be wrong.
  • Report design. Forma’s own draft of a picture is read by a box reader trained again, on every layout of the company’s and on pages DevExpress printed: on real reports it finds footer totals three times as often, group headers and footers far more often, and builds a banded draft for more pages. Page numbers at the foot of a page are kept as page numbers.
  • Workspace. Settings says what a free OpenRouter model’s provider may do with what you send, and where your OpenRouter account decides which providers it may use; when those settings rule out a model, Forma says which setting to change instead of that the model does not exist.
  • Chat. The AI is told the report’s counts and names rather than counting them, and Forma will not bind or group a field the report’s data does not have; a reply that names one says it would print nothing.
  • Workspace. A batch is kept in your browser as it runs, so after a limit, a reload or the next day it carries on from where it stopped; a limit pauses it rather than failing file after file, and Clear removes it.
  • Report design. Forma’s own draft of a picture, the report you get when every AI has reached its limit, now draws a records region as a table, keeps the captions of totals lines such as Subtotal and Grand Total, and sizes its text as the page printed it rather than up to twice as large.

Fixed

  • Report design. A repair request that hits a limit keeps the report the AI already wrote, instead of falling back to Forma’s draft.
  • Report design. Forma no longer spends a request trying Gemini 2.0 Flash, which Google has shut down, when it first picks a model for your key.

Every release, with a feed: https://openforma.web.app/changelog

Forma 1.2.0

Choose a tag to compare

@waqarsyd waqarsyd released this 09 Nov 16:15

Your SQL Server database, in your reports (9 November 2026)

Run one read-only script in SSMS and drop its result in the box: Forma reads your database’s tables, views, keys and stored procedures without connecting to it, and a report reads your database by connection name, as DevExpress writes it, never with a password. The AI binds to your real columns when you share the layout, the Preview prints your sample rows as DevExpress would, a report is checked against a newer export, and on your own PC the companion reads the database itself.

New

  • Data. A database’s layout, from Forma’s read-only script or an SSMS “Generate Scripts” file, attached in the box or pasted on the Data tab: tables, views, keys, and each stored procedure’s parameters, defaults and result columns, read without running it, with the reason when a procedure cannot be described. Kept in this browser, never in the cloud.
  • Data. Sample rows from the tables you pick, by a second read-only script, so the AI can match a printed column to the right field by what it holds.
  • Data. The Data tab browses the database: find a table, view, procedure or column, see each one’s types and keys, choose what the report reads (a table with the joins its foreign keys suggest, a stored procedure, or a checked SELECT of your own) with its filter, sort and limit, and bind a field to the control you last selected on the Preview.
  • Data. Write into the report: the query becomes DevExpress’s own SQL data source, connected by name as your application’s config knows it, never with a password, with its report parameters (defaults, several values, a lookup list and one that depends on another), master-detail bands and calculated fields. The report opens in the designer with its fields listed and no connection needed, and the Spec shows the config entry and the code that runs it.
  • Report design. Share a database with the AI (Send names and sample values to the AI on the Data tab, on when you attach its layout) and a report designed from a picture or a description binds to its real columns: the AI says which table, view or procedure it read, Forma checks every name against the layout and writes the data source itself.
  • Chat. With a database shared, the chat changes what the report reads in place: “bind it to dbo.usp_Sales”, “add the customer’s phone”, “filter by a region parameter”, and “group by Region”, which adds a group band with a total when asked. Each can be undone.
  • Data. Custom SQL from a sentence on the Data tab, and any custom SQL checked against your database’s layout: a table or column it does not have is refused, not run.
  • Preview. Sample rows in the Preview: with your database’s sample rows, it fills from them in one click, with no request. Each field prints as DevExpress prints it from SQL Server (a decimal at its scale, money at four places, a code with its leading zeros), the query’s joins and filter apply, and each record’s detail lines print under it.
  • Data. The Data tab shows a report’s own SQL data source, its connection, queries, fields and parameters, and can browse the layout it uses as the database.
  • Data. A report checked against a newer export of your database: a renamed column, a changed type, a stored procedure’s changed parameters or a table the export lacks, each with its fix in one click. A query naming a column the database no longer has stops DevExpress printing the report at all.
  • Site. A Docs article on your SQL Server data: the scripts, the steps, the connection name and running the report in your application. Features and Compare say what Forma does with a database, and that it never connects to one.
  • Data. Read from my SQL Server: with Forma running on your own PC and its companion (RepxDesigner.exe --serve), the Data tab reads your database’s layout and sample rows straight from it, with no script to copy. Connections are added in the companion, and a login’s password stays there, encrypted for your Windows user.
  • Preview. Live rows: on your own PC the Preview prints the report from your database with the parameter values you type. A stored procedure runs only when you press the button that names it.

Improved

  • Data. The column mapping says how sure each match is, by heading and by the values the column shows, and offers the likeliest field in one click; on a bound report, a field your database lacks is renamed to the right one in one click.
  • Preview. The Preview asks for each parameter by its type: a number, a date, Yes or No, a choice from the report’s lookup list (one list depending on another), or a box for each value when it takes several.
  • Preview. AI test data for a report on a database comes as the database holds it, and is typed from its columns.
  • Data. Open in designer gives the designer the report’s connection from your PC, so its preview works at once, and saving still writes only the connection’s name.

Changed

  • Site. The privacy policy says what of your database goes to the AI and when (only what you share), and that no connection string, login or password is ever asked for, stored or sent.

Fixed

  • Data. Binding one label no longer hides the Data tab’s table mapping behind a message about a table nobody had bound.
  • Data. A parameter that only the report’s SQL query uses is no longer reported as unused.
  • Preview. A detail report under a filtered report no longer prints another record’s lines.
  • Report design. A redesign keeps the report’s data source and the parameters its queries use, which the AI could drop.
  • Data. Writing a data source over another removes the parameters only the old one used, and writing one again no longer gives a parameter a second lookup list, which DevExpress refused to open.
  • Chat. After you add your key and press Check key, the model menu in the chat box lists the models your key can use straight away, instead of only after the page is reloaded.
  • Report design. A report restyled in your house style no longer loses its styles when DevExpress opens it. Two of its parts could share an internal number, and DevExpress then dropped the whole style sheet without a word.
  • Report design. A report with a detail band no longer warns that its Mockup and its file disagree on the number of sections.

Security

  • Data. A report that arrives carrying a database login or password leaves Forma with the connection by name only, and the REPX checks say so.
  • Data. Signing out removes the database layouts and sample rows kept on the device, as it does your uploads.

Every release, with a feed: https://openforma.web.app/changelog

Forma 1.1.1

Choose a tag to compare

@waqarsyd waqarsyd released this 08 Nov 18:27

A check that requests come from Forma (8 November 2026)

Requests to Forma’s database now carry a check from Google reCAPTCHA, through Firebase App Check, that they come from Forma’s own pages. It runs only once you sign in or open a shared report.

Security

  • Workspace. Requests to Forma’s database carry a token from Google reCAPTCHA, through Firebase App Check, showing they come from Forma’s own pages. It runs only once you sign in or open a shared report, never while you read a public page, and the privacy policy names it.

Every release, with a feed: https://openforma.web.app/changelog

Forma 1.1.0

Choose a tag to compare

@waqarsyd waqarsyd released this 08 Nov 15:54

A chat that keeps its word (7 November 2026)

What the chat changes now shows everywhere at once, Try again starts from where your message did, and a reply’s Undo and Redo survive a reload. The chat follows what you asked it to remember, and a new report gets a project of its own.

New

  • Preview. Mark an area: a tool at the right of the Preview, or the M key, lets you drag a box over the report to select every control in it, ready to ask the chat about or to change with the selection toolbar. V goes back to selecting one at a time.
  • Workspace. The message box has a Tools menu, opened with its / button or by typing / in an empty box: add a total, group the records, add a calculated column, change the paper or restyle the headings, each a sentence to finish and send. A palette switch beside it turns your house style on or off for the next request.
  • Site. Seven new pages: Pricing (Forma is free, and what each AI costs), Examples (six reports to open in the workspace with one click), Security, a comparison with DevExpress’s own AI and how to bring Crystal Reports and SSRS reports across, About with a press kit, running Forma yourself, and a FAQ of its own. Security reports have a security.txt at the address scanners look for.
  • Workspace. Settings, under General, downloads every project you have saved as one .zip and shows which version of Forma you are using. A new Forma tab gets your key from one already open, a part of the workspace that fails no longer takes the rest with it, and its Report this problem opens an issue with the details filled in.
  • Site. The Docs page covers the whole workspace: choosing your AI, a tour of the workspace, data and binding, sharing, memory and the report library, what the checks find, and every keyboard shortcut. Its search now reads every article, and "Did this answer your question?" opens an issue on GitHub with what you typed.
  • Site. Forma can be installed as an app from the browser, with its own icon on the home screen.
  • Workspace. A code block in a reply or the Spec has its own Copy, and dragging files over the workspace shows “Drop to attach”.
  • Chat. Asking for a different report while one is open starts a new project for it, and keeps the one you had.
  • Chat. The chat can now duplicate a control, change a band’s height, add borders, lines and page numbers, set a number format, bind a control to a field, and style a whole table row or column, each in seconds rather than a redesign.
  • Chat. Ask the chat to “undo that”, and it takes back the last change.
  • Workspace. Forma says when you are offline, and what you write waits for the connection rather than failing.

Improved

  • Workspace. The model menu names the Gemini model behind every choice, Auto included, once your key has made its first request.
  • Site. Forma has version numbers again: this release is 1.1.0, Settings shows the version you are using, and every release is published on GitHub with its notes, so watching the repository’s releases tells you when a new one is out. The roadmap and where to get help are linked from the README.
  • Workspace. Signed in, your projects list loads its names alone and fetches a project when you open it, instead of downloading every project in full; an autosave no longer sends the whole project to your other open tabs.
  • Site. Sharing a report needs a verified email address, and an account can share up to 100 reports at once. New passwords are at least eight characters, and the Docs explain how to end a session somewhere else. On the website the workspace no longer reaches for the designer companion on your computer, which some browsers asked permission for.
  • Site. The home page and the other public pages load about a quarter less code: the workspace now loads only when you open it. Pages you have visited open again without a connection, and a notice says when you are offline and when you are back.
  • Site. The public pages are easier to read and to use without a mouse: the orange text and buttons meet WCAG contrast in both themes, every page has a skip link, the phone menu and the account menu behave as a dialog and a menu should, and the footer links GitHub, Discussions, issue forms and the licence.
  • Site. The terms now say which law governs them: the laws of India, keeping the protections your own law gives you that no agreement can set aside.
  • Site. The privacy policy and terms describe everything Forma stores and sends, including OpenRouter, a local AI, dictation and autosave, with your rights, how long things are kept and what the free Gemini tier does with requests. There is an accessibility statement, a list of the open-source code Forma ships, and the contact form says when a message did not go through.
  • Site. Every page has its own title, description and link preview, so a shared link to the docs or the changelog says what it is.
  • Site. The public pages can be read without JavaScript and are listed for search engines; the workspace, sign-in and shared reports are kept out of search results.
  • Site. Reading a picture starts sooner on a later visit: the text reader and Forma’s models are kept by the browser until they change.
  • Chat. A long conversation keeps its newest messages in full and still remembers what you asked at the start, and a long pasted schema no longer crowds out the rest.
  • Chat. Edits made in the chat are quicker on a large report: each version of it is read once rather than three or four times.
  • Workspace. On a phone the message box stays at the foot of the screen and the reply card is a sheet over the report, so the report keeps its room.
  • Workspace. A screen reader now hears when Forma starts, and what came of a request when it ends: a reply, a report ready, a question or a failure.
  • Workspace. The keyboard stays where you are: after Stop, queueing, an edit or a withdrawal it is back in the box, and Forma’s questions move it from one to the next.
  • Workspace. A tab in the background says when a question is waiting for you or a request failed, not only when something is ready.
  • Workspace. With Local AI or OpenRouter the box shows which model answers, and opens Settings to change it.
  • Workspace. Each project keeps its own unsent message, as a chat app keeps a draft per chat, and messages waiting in the queue survive a reload.
  • Workspace. When it was sent, the versions, Edit and Withdraw sit under your message, no longer hidden behind its arrow.
  • Workspace. The conversation’s Markdown export now includes Forma’s questions and what became of a redesign it asked about.
  • Chat. The chat, its questions and the labels it adds follow what you asked Forma to remember, not only a new report.
  • Chat. A redesign is given everything you asked for in the conversation, and the controls you selected, not only your last message.
  • Chat. A question asked while Forma’s questions are waiting is answered, and they stay open; “Create a report” with nothing about what it shows is asked about first.
  • Chat. The chat sees each control’s colours, borders, number format, totals and expressions, and says when something is not in what it can see.
  • Site. Every page loads faster: the first script a visitor downloads is 112 kB smaller.
  • Chat. When an edit cannot be made, or brings a problem the checks find, the chat takes one more pass at it before offering a redesign.
  • Chat. A chat reply shows what it cost beside its time, and a report’s count includes every answer it took.
  • Chat. A picture sent while a report is open is read with your message: the chat can answer about it or change the report to match, rather than always redesigning it.
  • Chat. Steer changes the request under way rather than replacing it, Escape in the box stops Forma, and Ctrl+K can stop it or open the request log.
  • Chat. A reply’s Undo is the same step as the Undo in the corner, with a Redo beside it, and both are still there after a reload.

Changed

  • Workspace. Projects, Revisions, Batch and the report library open as the conversation does, a floating panel over the report in its place, closed with the same Collapse button, so the report no longer moves aside when one opens.
  • Workspace. The conversation panel opens and closes as Google Stitch’s does: Forma’s mark at its top left, Collapse at its top right, and folded, a small square with the mark that turns to Expand when you point at it.
  • Workspace. Every option in the workspace has one place now: projects and Settings in the sidebar, Share and Export in the bar, the project’s Rename, Duplicate, Archive and Delete behind the button before its name, and help, What’s new, the command menu and the shortcuts in the ? at the corner, which links the docs, the FAQ, Discussions and the privacy notice too.
  • Workspace. The conversation is one thread in a panel down the left of the report, as Google Stitch now has it: every request with its replies, the message you are reading pinned at the top, and the message box at the panel’s foot. Search and download are in the panel’s header, an eye on a message shows on the Preview what it changed, and folding the panel gives the report the whole width.
  • Workspace. An empty canvas says “No report yet”, and the reply card folds with a clear minimise mark instead of two dots that looked like someone typing.
  • Chat. Only a message that starts “Remember” or “From now on” is kept as a memory. “Always…” or “Never mind…” now goes to the chat, which acts on it.
  • Chat. Stop pauses the messages waiting in the queue, with Resume to send them on; a question from Forma or a failed request pauses them too.

Fixed

  • Site. The home, Features and Docs pages describe Forma as it is today: settings worked out for you, OCR for scans and photos, the Preview and its exports, the chat editing in place, Batch run...
Read more

Forma 1.0.0

Choose a tag to compare

@waqarsyd waqarsyd released this 28 Oct 12:42

Forma turns a screenshot, a PDF or an existing report into a real DevExpress .repx. You attach the source, Gemini reads it, and you get three things in one response: a written spec, an in-browser mockup, and XtraReportsLayoutSerializer XML that downloads as a report file and opens in the DevExpress designer.

This is the first numbered release. The app has been live at https://openforma.web.app since 2026-09-08; 1.0.0 is the point where the version number catches up with what is already serving.

What it does

Intake. Images, PDFs and .repx files. PDFs are rasterised and have their text layer extracted, so exact strings survive. A folder of legacy reports can be queued and comes back as one .zip, one report per source file.

Generation. One structured response carries the spec, the layout JSON and the REPX, parsed against a response schema rather than hoped for. Streaming progress with pause and stop. A chat column for refining the result, with retry on overload and a plain statement of when to try again on a rate limit.

The REPX it writes. A real band skeleton: ReportHeader, PageHeader, a one-row Detail, ReportFooter, PageFooter. Data binding against a pasted schema (JSON row, CSV, CREATE TABLE or a list of names), using the data's own field names. Grouping with subtotals, sorting, typed parameters, calculated columns, conditional formatting, charts, gauges, cross-band rules, checkboxes, panels, shapes, a document map and a DRAFT watermark. Repeated appearances are hoisted to a style sheet. A margin the model drew as whitespace is declared as a real page margin. Every piece of syntax was measured against the DevExpress 20.1 serializer rather than written from the API docs.

Checks on the output. Ref values are made unique and ItemN restarts per collection, because either defect makes the designer drop content with no error. A REPX the model stopped writing part-way is detected at the parse and rebuilt from the layout. A REPX audit runs after every repair and reports what is still wrong in the status bar.

Seeing the result. Mockup drawn from the layout. Preview drawn from the downloaded REPX itself, paginated as it prints, with PDF export and drag-to-move, resize and retype directly on the page. A Revisions panel with a structural diff by control name. Eight DevExpress versions in the picker, 20.1 to 26.1, written into SerializerVersion.

Accounts. Sign in to save reports and their history to Firestore. Signed out, everything stays in the browser. Deleting an account removes the key vault with it, and the rules suite proves it.

Windows companion. tools/RepxDesigner opens a generated report in the real DevExpress designer from an Open in designer button, over a loopback listener. tools/RepxProbe asks DevExpress what a .repx really contains.

Security model

The app owns no Gemini key. Each user supplies their own at runtime, held in session storage and never written to disk; it can be encrypted into Firestore with AES-GCM under a passphrase. The browser calls Google directly, and a Content-Security-Policy with a strict connect-src is what makes a stolen key worthless to injected script. The deployed site serves no inline script except one hashed theme script, no third-party fonts and no analytics. Generation is deliberately not moved server-side.

Known limitations

  • The report library (retrieval of house style from reports already written) is built and wired but has not been evaluated, and stays a proposal in docs/proposals/rag.md.
  • RTL layout, stored-procedure names and the data-binding schema are supported in the pipeline but not yet exposed in the UI.
  • The designer companion is Windows-only and needs a DevExpress 20.1 licence to build.
  • Batch processes one file at a time, by design, to stay inside the user's Gemini quota.
  • Preview cannot lay out every report the REPX can describe, and says so when it cannot.

Requirements

Node 20, 22 or 24 or later (21 and 23 are outside the supported range). A Gemini API key of your own. Java 21 only if you want to run the Firestore rules suite.

Licence

Apache-2.0.