Ask HN: What's the fastest tool for basic CRUD?
I like to throw together small tools to automate things. Most involve Crud screens. Simple Crud screens are all very similar but seem to take a lot of time to throw together. Are there good tools that allow you to throw these up quickly?
113 comments
[ 3.1 ms ] story [ 172 ms ] threadIt looks fairly presentable and has a non-awful UI. Certainly not state of the art but good enough for non-public facing stuff.
However, the admin does not leverage the Django ecosystem, django-tables2, django-filter, and so on. Also, it's kind of moving slowly because they must try to respect backward compatibility.
I maintain CRUDLFA+ and I love it:
- lets each view define its own url generation method: the controller will use that to generate the urls for a model - each controller defines a get_queryset method which has a request parameter, allowing you to define what objects a user may see
- each view defines a has_perm method, as such a user may see a bunch of objects, but not necessarily execute all views on it,
- the default list view wraps django-tables2, django-filter, django-search, and generates a per-object menu, by iterating over each view of the controller and testing it with has_perm, as such a user will see an object menu with each view it can execute on an object, with no overhead
- allows you to override views in many ways
- works with non-managed models (models that are not backed with a database table)
- can be used for frontend pages too (admin is really limited to being a back-office),
Clearly, CRUDLFA+ goes beyond "basic crud", but I would never code a Django view without it ever again though.
However, so far I make it for my personal use and even though it's been in use on governmental production for a couple of years now, I wouldn't recommend it for beginners. If you're a Django expert and get your kicks out of trying new patterns then you might spend some good times with it.
https://yourlabs.io/oss/yourlabs https://gitpitch.com/yourlabs/crudlfap
We're in the (slow) process of replacing Jinja2 in it with Ryzom ( https://yourlabs.io/oss/ryzom ) , a component-based HTML renderer which supports data-binding and that we are looking forward to integrate or isomorphic research (from https://yourlabs.io/oss/chp ) into. When that's over we will release v1.
https://wiki.c2.com/?CrudScreen
[0] https://garrylachman.github.io/ElectroCRUD/
For Coding Solution, ( Incoming Unpopular opinion ) if you dont mind modern PHP, ( which is a lot better than old PHP) Laravel [1] is to my mind undoubtedly the king of CRUD framework. The whole ecosystem is, and continue to be outpacing and growing faster than Rails ecosystem. Which makes me very envy.
If you dont like PHP, then Ruby Rails.
[1] https://laravel.com
Also, Laravel collections are amazing. They make working with arrays and transforming data a breeze.
But Laravel, the amount of things that could get done in so little time. I think laravel took all the good ideas from Rails and ran way further ahead with it.
It was very well deserved back in the pre-7.0 days, when it was common to have horrific spaghetti projects with zero structure, global variables/functions everywhere, and all kinds of logic (including database calls) mixed into view templates. Modern PHP is a whole different world, but most people will simply choose something else now because that stigma is impossible to lose, and finding dedicated PHP developers is increasingly uncommon.
Good languages start good because the people who designed and built them had good idea of what they wanted to achieve and did not have existing users to compromise with.
I believe you meant to say “you can’t ...”
Really fast for building maintainable admin/back office UIs quickly.
[1] https://nova.laravel.com/
https://parseplatform.org/
https://marmelab.com/react-admin
Combine React Admin with Hasura (automatic GraphQL on top of PostgreSQL) and you can build an entire back office admin suite (API endpoints and admin front end) in a matter of hours.
https://hasura.io
This adaptor connects react-admin with Hasura:
https://github.com/Steams/ra-data-hasura-graphql
Here's a reference application I put together:
https://github.com/cpursley/react-admin-low-code
Wow Hasura + react admin look incredible. Thanks for this.
The team takes pretty good care of upholding backwards compatibility -- as it stands, most of the new features they have been working on are niceties outside of the scope of basic CRUD functionality and permissions/authorization (which they have pretty much nailed at this point).
Hasura Engine instances are versioned, and if you like, you could also opt to just never upgrade.
https://marmelab.com/react-admin/DataProviders.html#availabl...
So for example, you could start with Hasura back end (GraphQL) and later swap to a custom JSON API without changes to the UI code. As for the react-admin framework, it's been around for a while and has regular frequent.
https://github.com/daptin/daptin
I have been deferring another show hn since the last one, since I am always in the middle of adding one more feature :p
my overall goal in daptin is to build something reliable which can run for years without needing any maintenance. Some things to show this is that its written in golang and I build static targets for all target hosts, the thing is open-sourced and licensed to be used without fear.
As for the features, I will try to list some here:
- YAML/JSON based data declaration
- CRUD api implementing https://jsonapi.org/
- GraphQL api
- Definable actions, for custom apis
- Integration to any 3rd party api based on swagger/openapi spec
- Runs on mysql/postgres/sqlite
For more advance features:
- SMTP server, IMAP server
- Self generated cert/ Acme TLS generation support
- Encrypted columns
- Asset columns (file/image/binary store)
- Asset columns backed by cloud storage (like ftp/disk/gdrive/s3/bb and many)
- Native OAuth/3rd party login support
- Exposing cloud store folders as static websites
I have built a lot of apps on daptin over some time now and I love that it has become what I envisioned it to be.
Especially the OpenAPI export is great; I had always problems with automatically generating it (in go/node.js/.net core).
And I forgot to mention table and row level user authentication permissions and groups.
I can look into it but I don't know what's the fastest way to get a mssql instance right now :) it might not actually be a huge task.
MSSQL for Linux is available as a Docker image :)
Red author also plans to port Cheyenne web server at some point after 0.7.0 release. [2]
[1]: https://github.com/red/red/tree/GTK
[2]: https://www.cheyenne-server.org/
https://www.g2.com/categories/low-code-development-platforms
Where some tools in this space ALSO fail is to be ONLY for cloud. I think nothing will displace access/excel if don't have a native/local experience.
I mentioned OpenXava as a development tool in another post. They had their own 0 programming hosted environment with similar ease of use as APEX, but I can't find the link now.
https://patents.google.com/patent/US7062502
https://www.theregister.co.uk/AMP/2015/09/07/sunk_by_patent_...
It's still in early access, but if you'd like to play around with it, please don't hesitate to message me at verygoodtool1@gmail.com.
- Drag'n'drop UI design (https://anvil.works/docs/client/quickstart)
- Python code (browser-side and server-side)
- A built-in database (https://anvil.works/docs/data-tables/quickstart)
- Multi-user support out-of-the-box (https://anvil.works/docs/users)
- Built in email/cron/secrets/etc
- Plug-in integration with Python code running anywhere else on the internet. You import a library, it connects via websocket to your hosted app, you get two-way RPC between your code any your app (https://anvil.works/learn/tutorials/jupyter-notebook-to-web-...)
It has been around since 2001, CRUD generation has been its main aim since the beginning, with the last versions you can also generate very complex applications injecting some custom code (php, javascript) to implement your business logic.
Disclaimer: I am the founder.
This is an open-source framework I've been working on for the past year to try and solve this problem. I was tired of building the same back-end over and over again and wanted to be able to define my data all in one place.
It works kind of like Vapid[1], in that it allows you to define back-end logic with front-end syntax. But it goes a step further and has more built-in web app capabilities like support for each user owning their own application, nested elements and pages, sorting elements, and inline edit areas.
I just posted a Show HN[2] in another thread. I love for you to read more about it there. You can also see some code examples and a simple demo application here: https://docs.remaketheweb.com/
Reach out to me with any questions. I'm always available to talk: david@remaketheweb.com
[0] https://remaketheweb.com/
[1] https://www.vapid.com/
[2] https://news.ycombinator.com/item?id=22092480
One piece of feedback, I had to go into the docs, under (A Simple Example App) to get a sense for what it was/how exactly it worked.
In place of the video that is the first piece of media content on the landing page, I would have much preferred some snippet of code and a visualization of its result. That way as soon as I come to the site, I get a feel for what exactly it is.
I think this would markedly improve your ability to communicate what Remake is. As the old adage goes:
'Show, don't tell.'
I agree, however, something short and sweet showing off the code and how to build something is sorely needed on the home page. I'll brainstorm about it and update the page soon.
https://anvil.works/
I’m all in on AWS, but I wouldn’t recommend APIGW/DDB as a general purpose solution.