Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Forms – Easy custom database applications (sonadier.com)
82 points by semperdark on Aug 28, 2015 | hide | past | favorite | 61 comments


It looks nice at first glance. Eventually someone, somewhere, is going to get this right and it will be extremely popular. Maybe it's you, who knows.

I bet there are hundreds of millions of dollars spent every year on full on huge projects that are essentially a simple CRUD application.

Do you support writing event based code in some way?


We're working on integration with Zapier at the moment, it should be ready for the next major release. Do you have any suggestions for other event-based systems? Zapier is the only one I'm familiar with.


I was just thinking of the ability to have javascript responding to and interacting with the form. Calling out to external services as well would be huge as well. But if you can do the first, basically a properly functioning "MS Access for the web", you would make an absolute killing.

I think current developers (and managers) either are too young to know of Access/Delphi/PowerBuilder and how easy it was to build extremely useful applications in them, or perhaps more likely their livelihood depends on them not remembering it. Sure there are shortcomings, but for most in-house apps built today, nothing that would be a show stopper. If you could bring that rapid development to web apps....wow.


I recommend adding something similar to aws lambda or similar features as firebase - in this way you can be most of the UI and some simple scripts to add domain specific logic when needed. In theory some of the logic could be UI driven like when this field has this value perform this action...



Event based code, or even webservice callouts would be a killer feature. It was the first thing I started looking for on the page. With just a few more features this could easily capture a portion of the SMB market who's interested in something as flexible as Salesforce, but can't swallow the $85+ monthly cost per user.


Disclaimer: I work for a sister-company.

"We" have something like this with event based "model actions" which also support calling out to webservices (both rest and soap).

Shameless "competitor plug"; will remove if considered inappropriate: http://www.bettyblocks.com/en

edit: App/marketing is being translated as we speak; you guys will be able to figure things out right? ;-)


Am very interested in something like this. I'm a can code, won't code type of person. I need something that can auto trigger things such as emails etc after certain events. I'm finding crm systems to restrictive or too bloated and other database software is either too tech focused or too limited in scope. Will this help me? I looked around your site but kept getting 404 errors


Just heard you got in touch with one of our sales guys. He'll walk you through getting started.

@all: thanks for the feedback! Your comments are heard and are high up on the list of "stuff to get right REAL fast".

For anyone with questions: shoot me an email, I'll be happy to answer questions! Mail is in the bio.


> edit: App/marketing is being translated as we speak; you guys will be able to figure things out right? ;-)

I couldn't find a good demo on your site. Got a direct link?


Please shoot me an email and I'll walk you through it/get you all set up!


Looks interesting but hard to tell much about it based on the current website.


If you want a clear intro while we're working on the site please drop me an email. I'm happy to clarify things!


Don't worry about it, it's not inappropriate at all. Good luck with your product!


The leader in this space at the moment is Intuit, with their Quickbase product. You can get a rough idea of the customer base here: http://quickbase.intuit.com/customers

They claim 1/2 of the Fortune 100 are customers.


Totally agree. I can't wait for someone to get this right! Many, many enterprise shops spend way too much time building simple CRUD apps. It's basically a "Microsoft Access/VBA" or "FileMaker" for the web.


Can't Access be used for web applications?


As far as I'm aware Access can only be used on one local machine, unless you put some networking system together yourself. There's no web-based version either that I know of.


Last time I used Access for anything (at all), you could put the database file on a shared drive and multiple people could use it. This was always clunky though.


You can do it via office365/sharepoint. You can deploy Access "apps" and let sharepoint online be the front end for the forms.


I would presume this absolutely sucks though?


That depends on your needs. If you think a desktop Access app is appropriate for your needs, but you want it online, then it would be a good enough solution. It's basically the same thing as in OP.


A desktop Access app is extremely often damn near perfect imho, except for the negative connotation - in my experience, a web app with comparable usability to an access app is typically considered "fcking awesome, but if it is actually an Access app, you'd get laughed out of the room.

The last time I looked at online Access apps, it was a bit of a joke....like ya, you could put individual forms up, but extremely limited functionality, has this changed? (This isn't surprising, making it completely portable would be extremely technically difficult, but has MS somewhat accomplished this?)


We just finished releasing a new version, basically it's a frontend for creating relational database applications. If anyone's familiar with Microsoft Access, it's a lot like that, except it's web-based and comes with a user/permissions management system. I'm looking for feedback, and can answer any questions!


please consider open sourcing it in the future when the time is right.


Absolutely! I definitely want to give back when it's a bit more complete, considering all of the open source libraries we took advantage of.


I do not intend to be negative but you could use your app to make a better contact page rather than opening email client. This could be a good example on how you can use your app.


Not negative at all! That's a good idea, I'll put that together. Thank you


FYI, the privacy link (https://www.sonadier.com/privacy) is a 404.


Thanks for letting me know, I'll get that up asap!


From a tech side this is great, but your pricing model is all screwed up. "Unlimited forms and fields" at the free tier? You need to align your pricing to scale with your costs. Limit by users but also the number of rows in the DB.

MailChimp is a good example of aligning pricing with costs


"You need to align your pricing to scale with your costs"

I strongly disagree with that. You should align your pricing with the value the user receives. To do this optimally, you need to have a good grasp of who your user is, how much value he receives from the software and how the typical purchasing process looks like. For an early stage company, all these questions may not be answered yet, so it is best to wait and learn what the users do with the product before prematurely optimizing pricing at an early stage.


You are correct and I posted that prematurely. Your pricing should always reflect the value you provide your customer. Helping a small company save 3% is worth less than helping Walmart save 3% and your company should price accordingly.

That said, if you have correctly priced your product, than the pricing should also align and scale with your costs, so you can use that as a quick short cut to evaluate a pricing model. When pricing doesn't scale with costs, it usually means your having properly valued your product.

I would argue that seems to be the case with the pricing for this Show HN


I would argue that only covers half the equation. Prices should be congruent with increase in value which in itself is dependent on what is meaningful to the user. Mailchimp is pricing for increase in value as well as users find more meaning in having larger mailing lists (which also happens to increase costs). Optimising purely for costs is not always the most effective and misses vital opportunities.


It looks like your access control is table level. Have you considered what it will take to provide row/column level controls?

Also, the report builder looks like it doesn't allow you to set up complex reports (range queries). Can you add an abstract WHERE clause constructor? That would let you do things like collect all orders in the last week that were over 20 dollars, late on their delivery, or fulfilled by the new guy. You might want to look at BI tools like Pentaho or Microstrategy to see if you can build something similar on the analysis end.

Finally, do you offer change tracking and backups? No one wants to lose a LOB database because someone ragequit.


> Have you considered what it will take to provide row/column level controls?

FWIW I did this for a client application and it wasn't real fun. Took a few tries to come up with something that was reasonable at column-level resolution.

Figure you need at least read and write permissions, you need to have table-level granularity, you want to have column-level granularity, you want to make it easy to manage groups of permissions (roles), but you also want it to be easy to create users with exceptions to those roles. For example, how would you create permissions for a group that gives you access to all of a table except a specific column?

You need, basically, ACLs, and afaik there isn't a standard recommendation for that yet (that I could find).

I settled on a roles table and a permissions table, with descriptors with wildcards for different operations (like, "read-client-address", "write-client-notes", "∗-client-∗"), and allow/disallow/inherit options. For instance, a "demo" account has "disallow ∗, allow read-client-∗, disallow read-client-name", etc. On login the permissions are loaded for the user signing in and then each DB operation checks to see if the operation is allowed() in a function that resolves wildcards and priority and does a few other tricky things.

There are probably better ways to do it, but anyway, the moral is that there should be a good reason for needing more granularity in permissions before someone decides to implement it.


It won't be very fun to make, but the architecture should support column level controls for sure. Row level I'd have to look into in more depth. Right now we already have a system for hiding columns from specific tables where they aren't needed, and it's not just hiding them frontend, the column data isn't queried. We can probably hook into that.

That's a good point, the report builder doesn't support OR at the moment. The interface for that should be interesting.. We may just allow custom SQL queries and be done with it. We definitely plan to get into BI/analysis, I'll check those out.

We backup and log literally everything. The user actions aren't shown to Organization admins yet, but that's only because we haven't built a frontend for it. We're working on showing a list of actions taken by connected users. All changes to forms and submissions are also diff logged, and you can reset to any older version. The frontend for that has some minor bugginess that I'm working out, though.


> You might want to look at BI tools like Pentaho or Microstrategy to see if you can build something similar on the analysis end.

Or just provide an OData feed so users can do that themselves in PowerBI (or whatever).


I really like this!

I was playing around and noticed "Number" field will return an "Internal Error" upon saving if numbers are out of _undefined_ range.

(e.g. "0-99999999") and does not care whether the range is valid or not.

- It is unclear what the meaning for "Regex" under 'Advanced' Number Form: Is this _just_ a label, or does it provide functionality of some kind?

- Seems like "Save" in the upper right corner should assume "Done" is True in the lower left corner.

My questions are purely rhetorical btw.


Ech, I will hotfix that number issue right now. Thank you!

The regex is probably more useful for the text fields, but it's a validation regex for the content of the field. We check it both client and server side, to make sure the user-entered content fits it.

The "Done" in the lower left is actually purely design at the moment, all it does is take you back to the add fields menu. Someone suggested that we add it in case users are confused about exiting the panel for an individual field.


Thank you for your brave quest against the stupid CRUD apps that exist everywhere.


This is impressive and a good implementation. Having dealt with large databases for a while I'm curious about your technology stack and how have you built the database to handle the variety of applications?


How does it work? Does it output your forms as SQL that can be run against say PostgreSQL? Does it generate an HTML web form that you can save offline that connects to a database?


A lot of what we're trying to do is abstract some of the backend systems to allow for quick building. When you make a form, we host it on our servers, provide an accounts system for inviting team members and a permissions system for controlling access. Right now we're working on securely implementing both custom SQL queries and javascript-based scripting for backend validation and frontend customization.


Ok, so for arguments sake it's a persistent form builder rather than anything really to do with building things for databases?


We're still working on exposing lower-level operations to advanced users. I'd still say we're a database builder, since we provide a system for making relational connections, and allow all CRUD operations on records. A form builder would probably only provide Create.

The accepted keywords for this kind CRUD-application builder are pretty generic, to be honest. The biggest one that I see used is "Online Database", which is so broad it's nearly meaningless.


I also thought the form builder was going to output Postgres (or any database) SQL to create the tables, fields, and relationships.


The thing that always stops me from making something similar to this (other than willpower and interest) is: how do you enforce constraints on the data? How do you keep it from accumulating junk data if you're cutting out the role of an application validating it?

It could be that this is really only for directly-mapped CRUD data, but I haven't seen a lot of applications out there that don't require at least a little bit of integrity checking.


Which kind of junk data do you mean? We have quite a few constraints based on fields, so a number field will only accept integers/decimals and it's validated backend. We also have a regex system that is validated backend, so you can force user input for a particular field to conform to it.

We're working on adding custom Javascript scripting partially for this purpose. The idea is to set scripts that will run at different parts of the submission process. For example, one script runs for the submission page and you can control the frontend. Another would run backend in sandboxed NodeJS with custom validation rules on each new submission.


The forms part is a great start. There's a pretty ripe market to grab current customers of Intuit's Quickbase product if you add the other online/rad database app features. Quickbase's pricing model is terrible.

DabbleDB, before they were bought out and shut down, was on their way to doing just that.


We've also got a demo of the form creator up at https://forms.sonadier.com/forms/demo


This is great. I've been trying to create something similar with everything stored key-val in postgres and a metadata table for relationships etc. It gets out of hand quickly.


Submitted, updated etc would probably benefit from time as well as date.

API endpoints for custom clients would be nice


Great idea. Do you support custom styling?


could you please initialise the date field with current date (at least when the field is mandatory) ?


We've been considering adding a "Now" link/icon above the field, which sets it to the current datetime when clicked. What do you think?


Perfect for me.


what is your tech stack like?


Any kind of API / easy programattic access the results?

Ideal Scenario:

Can iFrame the form on own webapp (pass an ID iFrame in url), use it to collect data through custom form. Then can access result of this data via an API.


We do have embedding support at the moment, still working on programmatic access. It should be available soon, via a REST API.


Rails and Postgres, hosted on AWS




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: