Wow, had to do the math there to figure out what day I'm on. Just day 13 since the inception of Jamform and today I can announce a ton of updates since my previous post!
What have I done since the last post? (almost too much to list!)
- A rough competitor analysis to determine features and pricing my competitors are using.
- Updated the submission page UI to use a collapse panel instead of a table, this allows me to display submissions with many fields, and variable number of fields, easier. See image above!
- Submission pagination
- You can now mark submissions as 'read' so you know which are new
- You can now bulk read and bulk delete submissions to clean up your dashboard
- Setup Sendgrid to send email notifications when you receive a new submissions (about time I built one of the main features of the product)
- You can upload files along with your submissions using Digital Ocean Spaces file storage!
- You can view and download files from your submissions
- Free tier submission now auto-expire after 30 days
- Updated submissions endpoint from
https://jamform.com/api/forms/{formId} to a simpler and more extensible https://jamform.com/f/{formId}
- Setup "invalid submission" page with error reasons
- Lots of bug fixes, data sanitization, database optimization, and document cleanup
What have I learned
- Sanitizing input is not as simple as I thought it would be especially when accepting uncontrolled input from POSTs from anywhere. I've made good strides to prevent any nefarious data from coming in but I imagine it will be a continued battle.
- I learned how to mongo queries through transactions to ensure if anything fails it all gets rolled back, as well as building a catch to delete all uploaded files on failure so I'm not wasting storage space.
- Digital Ocean Spaces file storage was SOOOO much easier for me to set up than AWS S3, and has a flat monthly fee to help estimate costs. I believe I'll be able to allow a generous file storage cap to my users and compete on that as well.
- I learned to double check my what infrastructure I sign up for. I accidentally setup my dev database on a MongoDB Atlas M30 tier and got charged over $150 for just my few MBs of test data. This was/is a higher tier than my prod server is using.
What's next?
I need to add a few more features like allowing users to view and delete all of their files to free up storage space. I also need to add documentation and advertise features I currently have built. After that I'm probably going to set aside feature development and just to a deep clean of my code as it's started to get pretty messy in this fast paced development. After that it's back to some more exciting features as well as paid plans!