[HN Gopher] Show HN: Typeform alternative, turns Markdown to forms
       ___________________________________________________________________
        
       Show HN: Typeform alternative, turns Markdown to forms
        
       Author : darkhorse13
       Score  : 97 points
       Date   : 2024-08-31 11:19 UTC (11 hours ago)
        
 (HTM) web link (blocks.md)
 (TXT) w3m dump (blocks.md)
        
       | bberenberg wrote:
       | I feel like this falls into an uncanny valley between requiring
       | the skill to cognitively model forms in your mind as text, which
       | is fairly close to coding and using a form builder UI.
        
         | tenkabuto wrote:
         | Yeah, it'd be great if over time they/a community provided a
         | system for visualizing the form logic and a form builder GUI so
         | you can go full-circle with this (building via code and GUI and
         | saving/versioning/forking forms via source).
        
           | mx20 wrote:
           | SurveyJS already has all that and uses JSON. It's also MIT
           | licensed, instead of this non commercial license.
        
       | anon1094 wrote:
       | It looks interesting. Do you not have a free plan or even a
       | trial?
        
         | cpb wrote:
         | It's free for local use from npm.
        
       | mmastrac wrote:
       | This style of form is aggravating to fill out, but kudos on
       | making it beautiful.
       | 
       | If you want to be kind to your users, allow them to scroll
       | through the entire form, see it on one screen and ideally skip
       | ahead without filling out required options but block submission.
        
         | diggan wrote:
         | > This style of form is aggravating to fill out,
         | 
         | In what sense?
         | 
         | I suppose for me it kind of matters how many questions are
         | being asked. I'm fine with this UX if it's a specific question
         | or two, but for a whole questionnaire with 14 questions or
         | more, then I'd also prefer to be able to get an overview first.
        
         | Terretta wrote:
         | It's been studied that fewer people _start_ the big form than a
         | multi-stage form of uncertain size but more people _finish_ it.
        
       | rafram wrote:
       | This is more like a DSL with Markdown embedded for the textual
       | parts, but still cool.
       | 
       | An actual Markdown syntax extension for forms would be
       | interesting. [_____] for text fields?
        
         | tenkabuto wrote:
         | Yeah, is anyone familiar with other DSLs for form/survey
         | building and logic?
         | 
         | For my work, where we produce lots of surveys and reuse parts
         | of them/run near duplicates monthly, I've been curious to see
         | if there's any dual code and GUI options out there to allow for
         | survey programming to be version controlled and forked, etc.
        
           | diggan wrote:
           | > Yeah, is anyone familiar with other DSLs for form/survey
           | building and logic?
           | 
           | This would be one:
           | https://github.com/leemeichin/ask_awesomely
           | 
           | That's a client library for interacting with now defunct
           | Typeform I/O, so it won't work anymore. But maybe the DSL
           | itself could be an inspiration, or you could wrangle a fork
           | of the library to create the forms locally.
        
         | lukasb wrote:
         | Yeah I'm curious if the Markdown form syntax here is totally
         | new or if other people have done something similar. I'm
         | building an app that extends Markdown with Excel-like formulas
         | (think function calls, not arithmetic) and have considered
         | having formulas that instantiate form elements.
        
         | verdverm wrote:
         | MDX is great for this, you can intermix JS/TS, JSX, and
         | Markdown
         | 
         | https://mdxjs.com/
         | 
         | You can write any components normally and pass them in to be
         | available in MDX. You can make forms and much more
        
       | mg wrote:
       | It looks like it could be made leaner.
       | 
       | This:                   name* = TextInput(             | question
       | = What is your name?             | description =
       | Let's get started with the survey. First, please tell
       | us your full legal name according to your passport.         )
       | 
       | Could be just this:                   name* = TextInput
       | # What is your name?             Let's get started with the
       | survey. First, please tell             us your full legal name
       | according to your passport.
        
         | steve_adams_86 wrote:
         | But then how would you support choices or conditions for
         | example?
        
           | notpushkin wrote:
           | Maybe something like this for choices?
           | fruits = MultiChoiceInput             # What are your
           | favourite fruits?             - [ ] Apples             - [ ]
           | Oranges             - [ ] Bananas
           | 
           | Personally I'd prefer good old MDX though:
           | <MultiChoiceInput             name="fruits"
           | hideIf={name.value !== "FruitLover"}
           | options={["Apples", "Oranges", "Bananas]}         />
        
           | mg wrote:
           | Well, you can define the syntax however you like in a new
           | DSL, right?
           | 
           | I like the syntax notpushkin proposed and would extend it a
           | bit like this:                   fruits* = MultiChoiceInput
           | # Pick two out of three fruits             Fruits are
           | healthy, so let's pick two fruits             you will eat
           | every morning for the coming week             - [ ] Apple
           | - [ ] Orange             - [ ] Banana
        
             | Terretta wrote:
             | All such text markup DSLs were invented at least once on
             | usenet.
        
       | diamondfist25 wrote:
       | This is awesome!
        
       | vunderba wrote:
       | I could definitely see this being useful if you could easily
       | integrate it into a static site generator pipeline like Hugo or
       | Jekyll.
        
       | lottamus wrote:
       | Looks interesting, but I'm having a hard time seeing why a team
       | would adopt this over something like MDX. A comparison page
       | between the two would be great!
        
       | codersfocus wrote:
       | Why are you using Paddle? Using a MoR for a product like this is
       | really dumb.
       | 
       | MoRs are common in very shady areas (gambling, adult, etc.) where
       | getting credit card processing approval is difficult.
       | 
       | Yet some marketing genius has decided he can hoodwink
       | indiehackers into giving him 12% of his revenue, while also
       | hurting the indiehacker's sales.
        
         | breadwinner wrote:
         | What are you talking about? Paddle charges 5% + $0.50, see
         | https://www.paddle.com/pricing They handle chargeback, taxes in
         | various states, etc., etc.
        
       | j12a wrote:
       | This syntax would be just nice to plug into WordPress Contact
       | Form 7 plugin which is also a feasible FOSS alternative in
       | itself.
        
       | goforbg wrote:
       | The telephone input takes text input?
        
         | Esras wrote:
         | If you read the parent comment here as I did originally, about
         | it being text as opposed to a number field, see points 18, 19,
         | 23, and 25 on
         | https://github.com/google/libphonenumber/blob/master/FALSEHO...
         | 
         | The field on the form is indeed of `type=tel`, which Mozilla
         | helpfully points out has no validation (see the above
         | document): https://developer.mozilla.org/en-
         | US/docs/Web/HTML/Element/in...
        
       | aimazon wrote:
       | Very good work, especially for a solo developer. Feedback:
       | 
       | 1. Design language of the forms feels too much like Typeform,
       | you're a talented designer: differentiate the design to establish
       | your own identity. If the forms look like Typeform, form-fillers
       | are not going to investigate what form software it is and use it
       | -- which was a big part of why Typeform grew.
       | 
       | 2. The name is terrible. Blocks? The name sounds like you decided
       | on it for a different project (some sort of component framework
       | using Markdown?) and then reused it for this. The domain forms.md
       | is available to register. Anything that include "form" in the
       | name would be a significant improvement.
        
         | Terretta wrote:
         | > _The name is terrible. Blocks? The name sounds like you
         | decided on it for a different project (some sort of component
         | framework using Markdown?)_
         | 
         | `forms.md` says what it is on the label.
         | 
         | And `filldown` has a lot of extensions available:
         | 
         | https://www.namecheap.com/domains/registration/results/?doma...
        
       | Jonovono wrote:
       | Looks nice! I was using typeform to collect surveys but found the
       | UX weird so I switched to Google Forms. Found we got more
       | conversions too, it's just simpler to use. The one thing missing
       | was I wanted a way to redirect someone after they completed the
       | form. That wasn't supported so if there is anyone else in a
       | similar boat, I made this (free) service: https://www.gfrdr.com.
        
       | dcreater wrote:
       | Why is better than just a simple spreadsheet as input?
       | Spreadsheets are still somehow very underrated
        
       ___________________________________________________________________
       (page generated 2024-08-31 23:00 UTC)