top | item 39895960

Show HN: I just made my profitable online form builder open-sourced

389 points| dearroy | 1 year ago |github.com

122 comments

order

jraph|1 year ago

I'm secretly and slowly building a form building application. The idea is that in my association we don't want to rely on Google Forms. And we only want to use open source software. We are using FramaForms which is a bit clunky and doesn't have this feature that updates a spreadsheet automatically. I thought that I could just create something that would answer both concerns.

But a good open source forms app would probably change everything, I would gladly stop my small project (in favor of contributing to an existing one for instance). I see there is integration with a lot of products, including Google Drive and Google Sheet.

Would an integration with Nextcloud be considered?

Congratulations on open sourcing this, we need open source and self hosted form solutions. Critically private data is put in forms and that get sent to big private companies like Google, which is not ideal.

As other commenters say, you might want to use AGPL indeed, but I guess you carefully thought this decision.

abdullahkhalids|1 year ago

Grist has the ability to create forms that are automatically connected to their spreadsheets [1]. Though it doesn't seem like you can create sophisticated forms (with some logic in them for example) just yet.

I am thinking of moving my volunteer org away from Google forms towards Grist.

[1] https://support.getgrist.com/widget-form/

dearroy|1 year ago

Thank you for sharing your experience and insights. It would be fantastic if we could collaborate to make HeyForm better suited to your needs, as well as the needs of many others.

> Would an integration with Nextcloud be considered?

We are definitely interested in exploring this possibility. However, since I am not personally familiar with Nextcloud, it would be helpful if you could provide more details. Could you please open an issue so that we can discuss it further?

flavaz|1 year ago

Limesurvey is “good enough” for most applications and is open source- any reason why that wouldn’t work for your use case?

blowski|1 year ago

> But a good open source forms app would probably change everything

Can you go into that a bit more, I'm interested what you would see changing. Why do you think it hasn't been done already?

snapcaster|1 year ago

How did you think about the tradeoffs between closed-source profitable vs. open sourcing it? What do you see as your criteria for success on this move?

Syntaf|1 year ago

Very cool! Form builders are really fun applications to build and teach you a lot about more advanced relational models (like polymorphic relations)

I scrapped together a form-builder-with-payments using RoR and RailsAdmin last year for my club and ended up spinning it off into a pay-per-use SaaS[1].

As it turns out, forms are a fundamental aspect of a LOT of things, and offering free use tools can change the game for clubs or organizations looking to keep their data in one place.

[1] https://embolt.app

auct|1 year ago

Why did you choose PayPal instead of stripe?

mewpmewp2|1 year ago

What do you mean by club exactly?

rkuodys|1 year ago

I cannot quickly find the answer so maybe the project owner can share - I have a need for which apparently there is no ready-to-use product - I need to have form which is anonymous, but at the same time it should be one-time-only submit. (Like voting system).

My ideal solution would be to send unique link to each recipient and limit one submission per link. However, I as a purchaser should not be able to see who got which link, or at least, how each link voted.

Question if heyform has some implementation of the need already, because none of the well known products - Google forms, MS Forms, Typeform - support anything like that

eastbound|1 year ago

Even if it were anonymous, your recipients wouldn’t trust it. Everyone knows anonymous polls get you fired (which is still proof that some people still trust anonymity, but those people are usually not working here anymore).

thih9|1 year ago

I doubt any generic platform would support such a specific use case out of the box, especially if major providers don’t offer it.

la64710|1 year ago

What is the reason for “open sourcing” this , when any meaningful implementation is locked away behind services and is closed source. I just think these kind of use cases confuses users. There is no problem in being closed source and proprietary (unless you are using preexisting open source code and open sourcing those parts of your code makes it legally compliant) . In any case it is confusing at best and misleading at the worst.

cynicalsecurity|1 year ago

Free advertising on Haker News. 10 bucks net profit without any grows is also profitable. Getting to the main page of HN was worth open sourcing what had no potential anyway.

This is my reasoning, I'm not the creator of this.

ensignavenger|1 year ago

I see that the project appears to depend on Mongo and Redis, both non-open source. However, both have substantially compatible alternatives that a user should use in their place. Even if they did not, having the source code available under an open source license means that users can fork it and swap these databases out for something better. Users can learn from and modify the source code for their own uses. Users can review the source code for quality and security. All of these things are possible when the code is open source. So yeah, it would be nice if it used open source dependencies or at least officially supported alternative open source dependencies, making the application open source as is is still a win over keeping it proprietary.

j45|1 year ago

There are organizations (often not small) that will pay for a hosted and closed source solution if it is available under dual license in case it goes away.

Other organizations still, have open source only policies, or no open source at all.

Many of these applications can be in government.

It can increase the footprint.

jraph|1 year ago

> when any meaningful implementation is locked away behind services and is closed source.

As someone seeking a purely open source forms solution, what do you mean by this?

izwasm|1 year ago

I really like that you are using nestjs, idk why some devs hate it, IMHO its the best node framework that can be used to build production ready apps, i started using it a month ago at work and it was my first time using it, and it already made so productive

aswerty|1 year ago

I'm literally in the middle of spending my evening, outside of work, gutting NestJS from a project I've inherited at work. I would literally consider changing jobs if I couldn't remove it.

There is so much to unpack to get as why I have such an issue with it. But time and again I have been frustrated with it in terms of: it's design philosophy, implementation, scope of what it covers, bloat, recommended implementation approaches, etc.

I don't understand how a single framework can think that it should cover: message/request handling, logging, config management, dependency inversion, persistence, and IO. These things have almost no cross over (i.e. if they are well designed they should be easily composable with any other component) but time and again framework developers attempt to bundle them into a "one size fits all solution".

To best sum it up. I think any package I use should be secondary to my application. But this package makes it so that my application is secondary to the framework.

_fat_santa|1 year ago

I recently migrated my API from lambda functions do a dockerized Node API and I evaluated NestJS, though ended up using Fastify. Like others have mentioned, it's great for devs that come from Angular or Java but for me I didn't like that it used decorators all over the place and preferred to have something more "Express like"

calmoo|1 year ago

Best makes JavaScript look like Java, it’s needlessly complex and just encourages vast amounts of boilerplate. Awful stuff.

pjerem|1 year ago

nestjs is nice if you’re coming from Angular. It’s basically Angular for the backend.

But like Angular, there is a very wide range of use cases where it is totally overkill and like Angular, companies are throwing it at each and every project.

I don’t find it bad but it’s in a strange spot being more bloated than other JS frameworks while still being way less "batteries included" than more classical corporate frameworks.

Like Angular, I don’t hate it though it’s just that I still haven’t figured out a project where it’s better suited than something else.

wouldbecouldbe|1 year ago

NestJS is nodeJS for Java people. It's like Angular in that sense.

So some people will feel like it's over engineered.

I mean it's overengineered. Why do I have to register all these things, and why does it keep crashing if I register it like this without any understandable error message. It has a little bit of an OCD relationship with dependency injection. Where the normal import system can handle most of those cases.

But few nice things, resolvers, auto-generate swaggers. And TypeORM is lovely.

But yeah it's a bit too demanding. I'm okay with an opiniated framework if it gives a lot of features out of the box (like laravel or NextJs), but NestJS tells me how to do things without giving me enough in return. (auth, sockets etc are still quite a lot of work)

mufeng|1 year ago

Why not use NestJS, a framework that solves the engineering problems you encounter in other Node.js frameworks?

winrid|1 year ago

The worst Java frameworks are better than NestJS IMO

datascienced|1 year ago

Why Nest over Next? Is it worth switching?

quantumwoke|1 year ago

Can anyone confirm if the legal advice here https://docs.heyform.net/license is correct? Seems slightly different to my own interpretation of the spirit of GPL.

nerpderp82|1 year ago

They would need to use the AGPL if they want folks that self-host to release their changes.

sfink|1 year ago

Yeah, it looks wrong to me too. It claims to be GPLv3 and the "use cases" explainer looks like it's trying to clarify what GPLv3 means, but the requirements described under the use cases are not part of GPLv3.

The 1st one is fine. The 2nd one says you would need to open source your modifications, but that would only be true if you also distributed your version rather than just using it on the server side. The 3rd adds three conditions. The first and third are again only true if you are redistributing the software. The second is an attribution clause that is not part of GPLv3, and the page to me definitely reads like it's explaining the license but not actually a license itself. GPLv3 does allow adding in similar conditions, but probably not those: I'm not sure requiring a link to the original project is ok.

AGPLv3 would be a much closer match to what the author appears to intend. It allows adding the attribution requirements that the author wants; see https://www.gnu.org/licenses/agpl-3.0.en.html section 7: "You may...supplement the terms...: (b) Requiring preservation of...author attribution..."

(IANAL, and every time I claim anything about licenses I get at least one detail wrong.)

bachmeier|1 year ago

There's nothing problematic about this, except that it's GPL plus conditions. AFAICT, only the second condition would be in addition to the GPL, but I didn't spend much time thinking about it.

thih9|1 year ago

Congrats on open sourcing your project!

I see that it relies on mongodb, at a first glance this seems a good fit for a forms oriented product - looks like using a document db for actually dealing with documents. How did it work out for you? Would you choose it again?

mufeng|1 year ago

Maybe not. MySQL and PostgreSQL are both capable of performing this task effectively.

snvzz|1 year ago

Huge Affero (AGPL) warning.

Do not touch unless you understand how the license works and want to do so anyway.

frabcus|1 year ago

I see this as huge Affero (AGPL) praise!

It would be great if the license was used more. I'd much rather contribute to something where sharealike extends in some way across networks - software doesn't link in binaries, as the GPL does cover, as much these days.

jholman|1 year ago

> Do not touch unless you understand how the license works and want to do so anyway.

Which is the license that you think it's safe to touch when you don't understand how it works?

thih9|1 year ago

Can you be more specific?

In what ways exactly it is more dangerous than other open source licenses in this case?

tomfreemax|1 year ago

Looks really cool and could be a good alternative to Typeform.

In our organization, due to privacy reasons we need to self host.

You might want to look at something like the plus plan photoprism has. For photoprism, if you want a UI for user admin, you pay something. One can do the same thing from cli, but in corporate environments it's easier for me to say, look, we need to pay, because we need this admin interface. If I would self host but want to support you otherwise, it's hard to argue why the organization should "donate" money.

Hope it makes sense. Best wishes!

V__|1 year ago

This looks really nice. I assume you have looked at the alternatives and created heyform with a special feature or use case in mind? If so, could you summarize the differences between heyform and for example: getinput.co, quillforms.com or snoopforms.com?

not_your_vase|1 year ago

What's your rationale behind this step?

dearroy|1 year ago

It's to tap into global collaboration for faster innovation, and ensure transparency and trust.

Thanks for bringing up the good question!

MichaelMug|1 year ago

Would this be a clever way of shrinking the market? Any competitors will now automatically need to have a value proposition greater than this free software.

jdaviescoates|1 year ago

I currently use NocoDB for forms, which works great, but this looks great too, many thanks for sharing!

jdaviescoates|1 year ago

@dearroy in fact, it'd be great if you integrated with NocoDB! I was a little disappointed to see that at present you mostly only integrate with proprietary tools and not with other self-hostable tools.

tamimio|1 year ago

Your website doesn’t open, it seems it’s flagged in one of the DNS popular blacklists

zzzzzzzzzz10|1 year ago

Works fine for me. Did you add these blacklists yourself or is it from your ISP?

dearroy|1 year ago

It's strange that our website is being blocked by an ISP.

Could you please provide us with the name of the ISP so that we can contact them and request to have the ban lifted?

mderazon|1 year ago

For me too, using NextDNS

saasxyz|1 year ago

This is cool. Are you an open startup by any chance? if yes, I would love to check out that page to learn more about your operation costs and revenue.

sfink|1 year ago

I've often wanted a simple online form solution for random purposes, yet I have never quite gotten around to learning Google Forms. My kids use it for school stuff. They're reasonably capable with it and have gotten good mileage from it. I guess at some level it's hard for me to get into something that often requires flexibility, yet can't be modified beyond rigidly prescribed boundaries.

I would totally rather learn something like this that I can hack on. And when other people ask me how to do something for a Real reason, I would not hesitate to recommend the hosted version if it can do what they want. (No, I don't want to be on the hook for maintaining a self-hosted version of something that will be depended on for wide public consumption. I'm done with pager duty.)

The creators' hearts seem to be in the right place, so I'm less subliminally worried that they'll enshittify it in some way that bothers me. And if they do, the license gives me a way to proceed without starting with something new from scratch.

jmholla|1 year ago

Google Forms is very simple to learn. There's not much to it. You just dive in and you're good to go.

whitefang|1 year ago

This is neat.

I'm building Formester and it is a lot of work to keep up a good form builder.

Wish you all the best.

stuckkeys|1 year ago

@dearroy what chat support service do you use? I always find them useful.

luanxr2000|1 year ago

Good job for the open source survey form app!

circusfly|1 year ago

AI thanks you for your efforts.

_akhe|1 year ago

AI needs the help honestly. Because it's based on training (from the past, and only what's published that it can get its greedy 6-fingered hands on), it's always going to be behind HI (human intelligence !). OP might have taught it how to make a form builder, but there are a lot other concepts at play here - a lot more than a language engine could spit out about making a form builder - which may or may not even be that accurate or relevant to the context. We'd need other engines, at least. We're in very early stages of AI, early enough that people should be excited about the [human] jobs it necessitates in order to get even close to a threatening point - which, who knows if it will even be a threat by the time that finally happens, if ever.

orliesaurus|1 year ago

do you consider this a marketing move?

hk__2|1 year ago

Of course; how else could they have been on the HN frontpage? (I’m not saying this negatively)

dearroy|1 year ago

We do, but this is not the main reason.

bberenberg|1 year ago

Considering that this is SaaS, are you sure GPL is sufficient here? Did you consider AGPL?

datascienced|1 year ago

Risk is low. A copycat can copy but code is only part of the equation.