Weekend project · no account

Collect any data,
instantly.

A poll, a quiz, a job application — describe it and share the link.

New patient intake

Draft

First name

Maya

Last name

Okoye

Email

maya@clinic.io

Insurance card

Drop a photo or PDF

Continue

What you can create

Polls, quizzes, the whole mix.

Color lives in the answers — live votes, ratings, lettered choices — not in a pile of identical form fields.

Live polls

One question, tap to vote, share the tally. Built to look good in a tweet.

Where should we host the offsite?

Live
Lisbon48%
Austin31%
Stay remote21%

Quizzes

Lettered answers, auto score, then a results card.

Q1 · 10 pts

typeof null returns…

Anull
Bobject
Cundefined

Surveys

Ratings, scales, follow-ups that only show when they should.

Recommend us to a colleague?

1
2
3
4
5
Not likelyVery likely

Applications & intake

The boring-but-important stuff — jobs, patients, events — with branching that hides fields until they matter.

ActiveConditionalFile upload
RoleFrontend
GitHub URLShown
System design essayHidden

Or just describe something else

Job ApplicationsPatient Intake FormsEvent RegistrationScholarship ApplicationsHR OnboardingCustomer FeedbackContact FormsOrder FormsResearch SurveysInsurance ClaimsLoan ApplicationsVolunteer SignupsBug ReportsAppointment BookingJob ApplicationsPatient Intake FormsEvent RegistrationScholarship ApplicationsHR OnboardingCustomer FeedbackContact FormsOrder FormsResearch SurveysInsurance ClaimsLoan ApplicationsVolunteer SignupsBug ReportsAppointment Booking

How it works

Prompt in, something you can share.

Four steps. No arrows. Same loop whether it's a poll or a job application.

01

Describe it

A sentence is enough. Polls, quizzes, intake — same box.

Team poll: Lisbon, Austin, or remote?
02

Get a schema

Fields, types, and the bits that only show when they should.

{
type: "radio",
showIf: "role === frontend"
}
03

Share it

A collect link for answers, a results link for the tally.

Lisbon48%
CollectResults
04

Ask the data

Rank applicants, spot a trend — still just a prompt.

Sarah Chen95
Marcus Johnson88

Features

The bits that actually change the form.

Click through the loop below. Then the three things this project actually cares about.

formgpt-playground
// Natural language input:
"I need a job application form with:
• Personal details (name, email, phone)
• Work experience section
• Skills checkboxes
• Resume upload
• Cover letter textarea
• Show salary field only if 'experienced' is selected"
→Processing with GPT-4o...

Shown or hidden

GitHub URL if they pick frontend. Essay if they don't. Wired from the prompt.

GitHub URLShown
System design essayHidden

Collect and results

One link to fill it in. One link to watch the votes come in. Copy either into a tweet.

/p/offsite-pollCollect
/p/offsite-poll/resultsResults

Ask, don't filter

Rank the applicants. Find who said they'd relocate. Same prompt box, different job.

Sarah Chen95
Marcus Johnson88

Example ranking — not live data

For the curious

How you'd call it, if this were a package.

Sketch of the API. The playground is the real thing — no key, no install.

form-generator.ts
import { FormGPT } from '@formgpt/sdk'
const formgpt = new FormGPT({
apiKey: 'your-api-key',
model: 'gpt-4o'
})
// Generate from a sentence
const schema = await formgpt.generate(
"A poll: Lisbon, Austin, or stay remote?"
)
// Render it
return <FormRenderer schema={schema} onSubmit={handleSubmit} />
// Then ask the submissions something
const insights = await formgpt.analyze(submissions,
"Who voted remote, and why?"
)

If this were on npm

# not published — just the idea
npm install @formgpt/sdk

Use the demo instead. The code above is how I'd want the API to feel.

Skip the SDK

The playground is the product. No signup, no key.