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 :)
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.
This adaptor connects react-admin with Hasura:
Here's a reference application I put together:
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.
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.
For Coding Solution, ( Incoming Unpopular opinion ) if you dont mind modern PHP, ( which is a lot better than old PHP) Laravel  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.
Really fast for building maintainable admin/back office UIs quickly.
Also, Laravel collections are amazing. They make working with arrays and transforming data a breeze.
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 ...”
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 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.
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.
- 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
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.
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.
It's still in early access, but if you'd like to play around with it, please don't hesitate to message me at email@example.com.
While there are features in some of these frameworks that will give you a productivity boost in certain use cases, none of them are worth taking the productivity hit of learning a new language.
Red author also plans to port Cheyenne web server at some point after 0.7.0 release. 
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, 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 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: firstname.lastname@example.org
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.
How? It uses information that you provide which Java class corresponds to which table, Hibernate style JPA ORM annotated classes, either in XML or as plain java classes with annotations (one class per table).
If you have a large database, with multitude of tables, you can use the Hibernate / JBoss reverse engineering tool to generate the mapping classes directly from the database structure. See this: https://eugencovaciq.wordpress.com/2016/02/01/hibernate-tool...
There are other tools that could help. Why OpenXava? Because it is very easy to customize the generated user interface and it is very flexible. You just add @view annotations to the classes that modify how the interface is generated. For example, when you need to drop out some attributes, or not show a link to another table, or when the table is used as a lookup for the foreign key in another table, you can configure how the lookup will look like in one situation, and how in another. You can reconfigure the layout of complicated forms for tables with many attributes, also using view annotations.
I am not involved with OpenXava, but have used it to make an administration interface for several apps. I have a maven script that can be run from the command line, that uses hibernate reverse engineering library to generate the mapping classes and i have the initial app in minutes.
I've used it for a couple of projects over the last few years.
The OSS project has really gone a long way since the earlier days (it was actually called Dick).
Seems to be quite popular too:
14.000+ developers use Backpack every month
We have built a technological graph to set up your applications in seconds instead of hours, days or even months. You could than apply text-based templates (with placeholders) and generate (and update) out of the browser or our desktop-applications. Individual added code stays where it is!
Currently we support CRUD, Authentication for Java, PostgreSQL and Angular for free, but we are expanding our template-stack and even you as our user are free to integrate your own technology.
We are in a free beta-stage now, so give it a try!
It's like Hasura but written in a language you can understand.
Using it with great success on two projects, both > 3 months into development on.
They can compile to a webapp now too that presents the UI in a browser.
Disclaimer: I worked on Xojo’s earlier incarnation REALbasic waaaaay back.
There is an open source (LGPL) Community Edition, but the services & actions feature you need for this is only available in the Professional Edition. This being said, if you just need this for your own local testing, you can get a trial license (automatic process, valid 3 months, no limit on number of licenses you get), and have fun with it.
Bias: I'm one of the Orbeon Forms developers ;). ‑Alex
Disclaimer: I am the founder.
I have been using it since 1.3.x days and it's just got better over the years - migration between versions was relatively painless.
PouchDB is, in my opinion, an overlooked gem that deserves more attention.
For small tools you don't even need a backend. It uses your web browser's built-in DB
I wrote a script that created 1000 documents that were pretty small just a few k at most.
The app I wrote using pouchdb to use find and edit them started choking when Safari had about 5000 documents stored in it.
If you install CouchDB on your local box, or a remote server, and configure PouchDB to use your CouchDB to store and access those docs you can probably have 10s of 1000s and I know you can scale that up to millions of documents with the right hardware.
You can get industrial strength remote CouchDBs from IBM and CouchBase for a pretty reasonable fee too. And you can run PouchDB with Node,js on a server and store your docs on it. So there are a lot of ways to use it.
I’m all in on AWS, but I wouldn’t recommend APIGW/DDB as a general purpose solution.