sfbrigade / sfcivictech-site-explorations

Explorations of how to build a new website for the SF Civic Tech organization
0 stars 4 forks source link

Explore replacing Airtable and basic forms with a free alternative #7

Open fwextensions opened 5 months ago

fwextensions commented 5 months ago

We currently use Airtable for some basic forms, like letting new members join or collecting time spent volunteering each week.

https://c4sf.me/member

It would be nice to find a simple open source alternative, probably something that supports serverless calls so that we don't need a long-running server.

MarcosG119 commented 4 months ago

Update

Here is the document with Airtable alternatives: https://docs.google.com/document/d/1XDWJ_bZI4Ir-B2A1M88S-oDFG2w10aq2Dxby6kRzRaE/edit?usp=sharing. I included Tables/Appsheet and some other alternative open source options. There's a quick overview of each where I tried to touch on important features and include the important links for each option.

I'm going to explore actually implementing a demo perhaps with AppSheet or Noco.

MarcosG119 commented 4 months ago

Update

Notion is a viable option. Here is an example gif.

The notion contains a pre-made integration with typeform, which comes with react components (or pure javascript) we can use to embed the forms to the website so we don't have to create our own or have external links. However there is a price for submitting over 10 forms. Notion does allow custom integrations so we can create our own forms and if we want to go serverless we can set something up with AWS Lambda or some other serverless cloud function service.

Notion also allows automations so we are be able to connect github, slack, and other services so people can be onboarded more quickly. We may also be able to set up a slack bot to record hours. In the future it may be good to set up multiple avenues of connection so that whatever is convenient people can do.

Overall, Notion database does support CRUD. It also supports form integrations with typeform which has premade embeds. The API is also sufficient for creating our own form elements and connecting it to a notion database to creating and updating rows and databases.

Questions:

fwextensions commented 4 months ago

Thanks for doing this research, @MarcosG119 !

there is a price for submitting over 10 forms

Is that price for > 10 forms in Notion or Typeform?

It does seem like Noco DB or Baserow are promising, as they can be self-hosted for free. We're already paying for AWS hosting, so that could be the most cost-effective approach. Do you want to try getting something running on one of those?

MarcosG119 commented 4 months ago

Is that price for > 10 forms in Notion or Typeform?

The price is for Typeform which only allows 10 responses per month, however, we'd be able to set up our own integrations and create our own forms on the website to allow for unlimited forms. If Notion is free as Ed mentioned it could be worthwhile as building forms isn't too difficult; we'd also be able to set up serverless API calls through Lambda and set up automations to Slack and Github directly through Notion. The data functionalities are pretty decent as well, it supports filtering/sorting and more.

It does seem like Noco DB or Baserow are promising, as they can be self-hosted for free. We're already paying for AWS hosting, so that could be the most cost-effective approach. Do you want to try getting something running on one of those?

I'll look into hosting NocoDB in AWS through an ECS, EC2, or other options. I am somewhat familiar with AWS but I'm not sure what the options to host an external database are. I'll do some more research on self-hosting through AWS and see what the outcomes would be.

MarcosG119 commented 4 months ago

NocoDB and Baserow both have instructions for uploading to AWS: NocoDB on AWS instructions and Baserow on AWS instructions. Baserow would require provisioning an Amazon RDS along with ECS sequence along with ECS as well. NocoDB seems to keep everything containerized for easier deployment through ECS. Hosting an ECS I think will be around $40/month, I may have done the calculations wrong. I checked the size of the Airtable data it is not even 1GB.

MarcosG119 commented 3 months ago

@fwextensions, I did some tests with notion for an html onboarding form on this branch. I can make a pull request but I don't see the point as it was really rough and there's a lot of unnecessary code. It works well for new member forms and check in forms, but that's about it. If we want to just create a fast way you can connect it to a postgreSQL database but it requires paid integrations or a a lot of manual work. I can see this becoming an issue with scaling in the future.

Noco or Baserow already have these integrations (postgre, forms, etc.) built into the open source code I believe. They seem to be the better option overall and definitely in the long run. I would test running them in an ECS but last time I was messing around with an ECS I got charged $45 for having nothing running.

Let me know if there's anything more you'd like me to do on my end, I'd love to do more work.