Docent now answers inside Help: type a question in Help's search box ("how do I invite someone") and the best answer from Help shows above the results, with the article it came from. Search also finds articles for questions in plain words.
The Ask Docent button is put away until Docent can do more than Help search.
Docent's close and back buttons look like Help's, and Docent is as wide as Help.
Version 0.17.1
Bug fixes and code cleanup.
Version 0.17.0
Meet Docent, your guide to Forms. Choose Ask Docent just left of Help in the top bar (or press Ctrl+J, ⌘J on a Mac) and ask how to do something. Docent answers from Forms Help, shows which article the answer came from, and suggests others worth a look. Nothing you type leaves your browser. Guests don't see it.
Version 0.16.0
The side menu folds to a narrow strip of icons, so pages get more room. Use Collapse menu at the bottom of the menu, or press Ctrl+B (⌘B on a Mac). On smaller laptop screens it starts folded until you choose, and your choice is remembered. In the strip, each icon's name shows beside it when you point at it, and new counts show as a dot.
Version 0.15.1
Bug fixes and code cleanup.
Version 0.15.0
Forms now has the same header, sidebar, account menu and sign-in card as Gestalt System PM and the other Gestalt System apps, so you find things in the same places in each.
On a phone, the sections are in a menu that opens from the left, the same as in PM, rather than in a row under the header.
On Gestalt's own Forms, the header has the Gestalt apps button, beside Help.
Every page and the sign-in card end with a small "Gestalt System Forms by Phantomnaut" line, and keyboard users get a Skip to content link first.
Version 0.14.0
New PM project: a new place to send answers. Each answer becomes a client request in Gestalt System PM's Requests inbox, with its files, where someone accepts it as a new project from a template or declines it. Match questions to project details (name, description, client, due date, tags); Forms makes a first guess. It uses an intake key from PM that can only add requests.
Client request form: a new starter form on Home with the questions a design team asks a client.
A form sends at most 25 new requests a day to PM by default; past that, answers wait and go later.
Important fix: answers to dropdown questions are kept now. Before, Forms dropped them when the form was sent, and a required dropdown said it still needed an answer. Answers sent before this update don't have their dropdown answers.
When adding PM or UXR, a note now says to choose Find projects and pick a project before Add can be used.
Tasks and comments Forms adds in PM now show in your PM notifications, named "Gestalt System Forms".
Version 0.13.0
One web address. When Forms moves to a new address, visits to the old one open the same page on the new one, form links included, so links people saved or shared keep working. Nothing changes until an Admin sets it up: add the new address in the hosting, set CANONICAL_HOST to it and PUBLIC_URL to https:// plus the same address, and redeploy. People sign in again once on the new address.
Version 0.12.0
Release notes: the account menu has a new Release notes item, under About, that shows what changed in each version. It lists the six newest versions; View more shows every version, with a search box at the top.
When a new version is ready, the update card has a Release notes link on its left, so Admins can see what's new before they refresh.
After an update with new features, a "What's new" card shows once in the bottom-left corner.
Version 0.11.1
Bug fixes and code cleanup.
Version 0.11.0
Answers reach PM and UXR once. Every answer sent to Gestalt System PM or UXR carries its own reference, so sending it again (a retry, or Try again) finds the task, comment or note made the first time instead of adding another. If PM made the task but the comment didn't arrive, the next try adds only the comment; before, the answers could be lost. Needs PM 0.63 and UXR 0.9.
Every copy links to its own answer. PM tasks (as their link), PM comments, UXR notes, Syllabary rows, Slack, Teams and webhooks now link to that one answer in Forms (?answer=<id>#answers), which opens Answers with it marked. A link to an answer that was deleted says so.
A connection stops when its person leaves. PM and UXR are sent with the token of the person who added them. Once that person is turned off in Forms, nothing more is sent with their token, and the answer says to add the place again.
Testing the links on the real sites:docs/live-links-test.md and scripts/live-links-check.mjs.
Version 0.10.1
Bug fixes and code cleanup.
Version 0.10.0
About in the account menu opens the About card, like the Gestalt Studio apps: the Forms icon, name and purpose, “by Phantomnaut”, the version and build, “Part of Gestalt System” (the logo is a placeholder for now), who made it, and the License, Privacy and Terms links. Who makes it and the suite come from one file, src/brand.ts.
Version 0.9.0
Phase 3, part 3: how a form looks, and saving for later.
How the form looks (a form's Settings): Your branding, the default, uses Settings, Branding (including a look copied from the Design System); Gestalt look uses the plain Gestalt colors and type.
One question at a time: each question gets its own step with a progress bar, which suits phones. Headings stay with the question after them, and the logic works as before. The builder's preview shows it too.
Save and come back later (off unless turned on): what someone fills in is kept on their device as they go, with a Welcome back note and Start over when they return. Save and come back later gives a private link that works for 30 days on any device; files aren't kept. The saved copy is deleted when the form is sent.
Where answers go: above Send, people see that their answers go to the workspace, and which places get copies.
Phone and tablet pass on the builder, Settings and the public form.
Version 0.8.0
Phase 3, part 2: answers go to Gestalt System PM and UXR.
PM: each answer becomes a task in the project you pick, named after the first typed answer, the form and the answer's number, with the answers added as a comment on the project (that can be turned off). Sending an answer again finds its task instead of adding another.
UXR: each answer becomes a research note in the project you pick, or in the unfiled notes, with a link back to Forms. UXR's “Let connected apps add notes” must be on.
Both go through each app's agent door with your own token from that app's Account page, so PM and UXR still decide what you may do. Find projects lists the ones your token can add to, and Check the connection makes sure it still can, without adding anything.
Version 0.7.0
Phase 3, part 1: answers go to Slack, Teams and webhooks.
Send answers elsewhere (a form's Settings): add up to five places. Each new answer is posted to a Slack channel (its incoming webhook), a Teams channel (a Workflows webhook) or a webhook for your own tools. Slack and Teams messages can leave the answers out and only say that a new one came in, with a link.
Webhooks get the answer as JSON, signed with a secret shown once, so the receiver can check it came from Forms. See docs/webhooks.md.
Send a test posts a sample answer. Each place can be turned off, and Send earlier answers copies the ones from before.
The same delivery as Syllabary: answers are kept in Forms first, a place that's down is tried again for a day, and each answer shows where it went, with Try again on any that didn't arrive.
Addresses are kept encrypted and Forms only posts to public web addresses.
Version 0.6.0
Phase 2, part 2: answers go into Syllabary.
Send answers to Syllabary (a form's Settings): paste the connection code from a Syllabary database (Answers from Forms…, then Let Forms add rows) and every new answer arrives there as a row. Questions fill the properties with the same name and a fitting type, and you can change which question fills which property, or which answer becomes the row's title. Every answer is also written into the row's page, so a question with no property is never lost. A Status property starts at New, and a Form property gets the form's name.
Delivery you can trust: answers are always kept in Forms first. If Syllabary can't be reached, Forms tries again after 1, 5 and 15 minutes, then hourly for a day. Each answer shows In Syllabary, Waiting or Not in Syllabary (with why and Try again), and Settings counts them. Send earlier answers copies the answers from before the form was connected. Sending the same answer twice never makes a second row.
Make a form from a Syllabary database: Syllabary's Make a form opens Forms with a new form already made, one question for each property a person can fill in, and already connected.
Signing in now returns you to the page you were sent to, instead of the home page.
The connection code is kept encrypted, Forms only sends to public web addresses, and the code can't read anything in Syllabary but the database's property names.
Version 0.5.0
Phase 2, part 1: show-and-skip logic.
Logic on questions: show a question only when an earlier answer matches, written as a sentence in the builder (“What do you need?” is “A fix to a design”). Choices compare by option, numbers, ratings and scales by more or less, dates by before or after, and words by is or contains; any question can also check whether an earlier one was answered. Hidden fields from the link can steer the form too.
Logic on page breaks: show the next page only when an answer matches, or end the form there with its own thank-you text.
The server follows the same rules: a question that wasn't shown is never required, and anything sent for it is dropped. Question numbers follow what is shown, so skipped questions leave no gaps.
A rule that no longer makes sense (its question was removed or moved below it) says Needs a look in the builder.
Version 0.4.0
Phase 1, part 3: read answers at a glance, take them away, and hear about new ones.
Summary on Answers: one card per question. Choices, yes or no, ratings and scales show bars with each count and share written beside them; ratings and scales also show the average; numbers show the average, smallest, largest and total; typed answers show the latest five. Each answer keeps the full list.
Download CSV: every answer as a spreadsheet, oldest first, with the time sent (UTC) and one column per question. Text someone typed is never run as a spreadsheet formula, and accented letters open correctly in Excel.
Emails about new answers (form Settings): Off, an email for each answer (with the answers in it), or a daily summary on days with new answers, to the team members you pick. New forms send their maker a daily summary. Guests and people who have been turned off never get these emails. The server sends the summaries every hour it runs; on Vercel, once a day at 13:00 UTC (set CRON_SECRET).
Version 0.3.0
Phase 1, part 2: spam check, schedule, embed, QR code and file uploads.
File uploads, the 16th answer type: one file up to 4 MB, any kind, pictures only, or documents only (PDF, Word, Excel, PowerPoint, text, CSV). The server checks a file really is what it says. Files upload as soon as they're chosen, are kept with the answer, and are only ever downloaded from Answers (never opened in the app). Files nobody sent are cleared after a day.
Spam check on forms: an Admin can turn on Cloudflare Turnstile in Admin, Configuration by pasting its two keys (or the site sets TURNSTILE_SITE_KEY and TURNSTILE_SECRET_KEY). Every public form then shows it above Send. If Cloudflare can't be reached, answers are still kept and marked as unchecked.
Schedule and limit on Share: a time the form opens, a time it closes, and a number of answers after which it stops. The public page says when a form opens, or that it has closed or has all the answers it needs.
Embed on a web page: code to paste into any site. The form shows without the header, with a see-through background, and grows to fit as people move through it.
QR code of the link on Share, to download as PNG or SVG.
Safer by default: only public forms can be shown inside another site; the team's own screens refuse to be framed.
Version 0.2.0
Phase 1, part 1: build a form, share its link, read the answers.
Forms on Home: every form in the workspace with its status (Draft, Open, Closed), how many answers it has, and New form.
The builder: 15 answer types (short and long answers, email, phone, link, number, one choice, several choices, dropdown, yes or no, rating with stars or numbers, scale with labels, date, date and time, hidden fields), headings and notes, and page breaks. Move, duplicate and remove questions; choices can have an Other box. Changes save as you go, with the save status beside the title, and a change someone else saved first is never written over.
Preview: the form exactly as people see it, with its answer checks, without sending anything.
Share: open the form, close it, or put it back to draft; copy its link or make a new one (the old one stops working). Hidden fields fill from the link, like ?source=newsletter.
The public form at /f/<code>: no account needed, the workspace's branding, one page at a time with a progress bar, and problems in words beside each question and in a list at the top that screen readers announce (WCAG 2.2 AA). Works on phones.
Answers are checked again on the server against the saved form. Bots are turned away by a hidden box, a minimum time on the page and per-address limits, and are told all went well so they learn nothing.
Answers: each answer in words, newest first, with delete.
Settings: the thank-you message and the Send button's words; delete a form.
Version 0.1.0
Phase 0: the start of Gestalt System Forms.
The foundation, from Gestalt System PM Base: first-run setup, sign-in with email and password, Okta, Google, Microsoft or an email link, wrong-try limits with Admin unlock, invites and password links, and the four user levels (Admin, Manager, Contributor, Guest) with View only.
Admin: Settings (workspace name and platform title), Configuration (web address, welcome page, update notice, sign-in methods, email), Branding for the pages people outside the team see, and People.
Your account: name, password and picture, Theme Mode (Light, Dark, System) in the account menu, and Help.
Its own look: the orange Gestalt app icon with a white clipboard (assignment), a welcome page about forms, and a Home that says forms arrive in the next update.