TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: ESQLate – Build minimum viable admin panels with just SQL

505 pointsby mattatkeyboardover 5 years ago

29 comments

Rowernover 5 years ago
This looks pretty interesting! If anyone is looking for a tool to build a full fledge Back Office I warmly recommend react-admin (<a href="https:&#x2F;&#x2F;github.com&#x2F;marmelab&#x2F;react-admin&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;marmelab&#x2F;react-admin&#x2F;</a>). Been using it for a year now and we went from 0 back office to a feature full one in no time!
评论 #22073782 未加载
评论 #22075751 未加载
评论 #22075152 未加载
xwowsersxover 5 years ago
Another worthy mention (not FE, but also exploiting power of sql): <a href="https:&#x2F;&#x2F;github.com&#x2F;PostgREST&#x2F;postgrest" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;PostgREST&#x2F;postgrest</a><p>&quot;PostgREST serves a fully RESTful API from any existing PostgreSQL database. It provides a cleaner, more standards-compliant, faster API than you are likely to write from scratch.&quot;
评论 #22074924 未加载
cube2222over 5 years ago
Great work! I once was a fan of custom well tailored DSL&#x27;s for each tool. However, nowadays I really like the current direction of providing a lot of tooling with only SQL necessary to use them, even with the dialects differing a bit.<p>I&#x27;ve made my own contribution here too, with a tool to join and analyse data in various databases and file formats (JSON, CSV, Excel) using plain SQL, OctoSQL: <a href="https:&#x2F;&#x2F;github.com&#x2F;cube2222&#x2F;octosql" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;cube2222&#x2F;octosql</a>
评论 #22073783 未加载
评论 #22073843 未加载
jimmcslimover 5 years ago
There is also the idea of Naked Objects [1] based on a thesis from 2004 [2].<p>[1] <a href="http:&#x2F;&#x2F;nakedobjects.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;nakedobjects.org&#x2F;</a><p>[2] <a href="http:&#x2F;&#x2F;downloads.nakedobjects.net&#x2F;resources&#x2F;Pawson%20thesis.pdf" rel="nofollow">http:&#x2F;&#x2F;downloads.nakedobjects.net&#x2F;resources&#x2F;Pawson%20thesis....</a>
BjoernKWover 5 years ago
That looks quite useful. The name&#x27;s pretty clever, too.<p>Tools like these are a viable, low-code (to use a hyped-up term) alternative to creating full-blown back-ends with all the boilerplate code that comes with them. Often these back-ends add little more than a REST API or a simple CRUD interface on top of an SQL database.<p>RDBMS on the other hand are immensely powerful tools that unfortunately more often than are used for little more than simple data storage.
bsaulover 5 years ago
i was stunned the first time i saw web frameworks like django and symfony automatically build a full featured admin panel based on model&#x27;s definition.<p>I wonder if there aren&#x27;t projects aimed a building just an administration GUI based on SQL introspection mixed with simple configuration files. Just point at a db, and there you go.<p>Side note : what is the current state of codegen based on api and model specifications ? I feel like 90% of most projects could be automatically generated just based on that.
评论 #22073472 未加载
评论 #22073546 未加载
评论 #22073509 未加载
评论 #22073689 未加载
评论 #22075291 未加载
评论 #22074365 未加载
评论 #22077669 未加载
esamattiover 5 years ago
This looks great! I&#x27;ve used sqlpad[1] for similar purposes which is bit more low level as it allows to write the queries in the browser directly.<p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;rickbergfalk&#x2F;sqlpad" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rickbergfalk&#x2F;sqlpad</a>
barrystaesover 5 years ago
I think this is the long way around to simply making a DB procedure? Those have parameters, can easily be run by external tools like phpMyAdmin or an IDE, and if the database constraints are sane will help avoid invalid input.
评论 #22073591 未加载
tomerbdover 5 years ago
Brilliant. Interesting to see you used svelte! Anyone else has experience with it?
mattmanserover 5 years ago
So I made something similar to this at a couple of my jobs. We could basically add a SQL script as a file to a folder and it would automatically have a new report, downloadable, formatted, run on-demand. Even a pretty basic one is pretty handy, as they only take a day or two. I hadn&#x27;t got round to adding variables, I like the solution.<p>One of the things I added is that you could add column formatting in the field names, so a $c would turn it into a currency field, there was one to turn it into boolean checkbox, etc.:<p><pre><code> SELECT o.amount, p.price [price$c], p.price * o.amount [total$c] FROM orders o JOIN products p </code></pre> It had other features too like you could set column widths by using @ like [amount@75] or even column grouping by dot notation [online.sales], [online.total_value$c], [instore.sales], [instore.total_value$c].
评论 #22073897 未加载
_frklover 5 years ago
This looks really useful. How is authentication and authorization handled? Can I connect it to my Openid provider?
评论 #22105325 未加载
mattbeeover 5 years ago
It looks excellent! But I know <a href="https:&#x2F;&#x2F;redash.io" rel="nofollow">https:&#x2F;&#x2F;redash.io</a> already and used it in my last business - does this do something different? I&#x27;m always hungry for better SQL business admin tools though.
评论 #22073903 未加载
jimmarover 5 years ago
Interesting idea. Are you doing anything to protect against sql injection attacks?
评论 #22073295 未加载
richieartoulover 5 years ago
This is cool. I built something similar awhile back for a side project. I had a folder that I would dump files into and each file would have a title, description, and SQL statement.<p>When I visited a specific page on my site (password protected) I had a bit of Go code that would read all the the files, execute all the (read-only) SQL statements and then dump them into an HTML template that created a table for each one.<p>Made it dead simple to keep track of some simple metrics like daily sign ups, number of users currently on the site, churn, etc.<p>Hopefully I can just reach for this next time and not write my own hacky tool :)
评论 #22074152 未加载
Gysover 5 years ago
Nice work. I have also build a (mysql) sql based dashboard for our internal use. It mainly shows agregated lists of data and allows to click on many items to see more details.<p>We use it to get more insight in our data. It does not allow a user to enter anything.<p>Basically my app only uses a list of queries. To allow that any selected field is clickable, the result field should be like &#x27;report|name|field,field&#x27; so the app knows this is a special link (report) refering to another defined query (&#x27;name&#x27;) and should be passed some values (record specific, here &#x27;field,field&#x27;).
评论 #22073363 未加载
milankragujevicover 5 years ago
I use adminer for this. <a href="https:&#x2F;&#x2F;www.adminer.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.adminer.org&#x2F;</a> It&#x27;s a single PHP file, and does everything I need.
评论 #22079826 未加载
howmayiannoyyouover 5 years ago
Good, but, I don&#x27;t want to write UI configs in JSON. Making the UI should be as minimally difficult as the rest of the app makes tasks.
gavinrayover 5 years ago
Super neat idea and tool!<p>I tried to clone it and run it locally, but it doesn&#x27;t run. Tried with both yarn and npm.<p><pre><code> &gt; node-sass src&#x2F;index.scss &gt; public&#x2F;index.css sh: 1: node-sass: not found npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno ENOENT</code></pre>
eb0laover 5 years ago
I believe admin panels are the MVP implementation for this idea.<p>Almost every business software is a select&#x2F;insert&#x2F;update. If you can do it over a view, or you have a trigger on insert&#x2F;update&#x2F;delete you are able to have a customer facing product with minimal manual operation.
评论 #22073905 未加载
trungdq88over 5 years ago
Interesting. How would you make this to support one-to-many&#x2F;many-to-many relationships?
评论 #22073308 未加载
评论 #22073307 未加载
yehia2amerover 5 years ago
This look similar to Oracle Apex: <a href="https:&#x2F;&#x2F;apex.oracle.com&#x2F;en&#x2F;" rel="nofollow">https:&#x2F;&#x2F;apex.oracle.com&#x2F;en&#x2F;</a><p>from my experience very good for simple logic but once it&#x27;s is complicated you hate yourself.
评论 #22074783 未加载
nojvekover 5 years ago
Seeing a variety of tools to interact with databases makes me happy.<p>I quit my job recently to work on a similar idea.<p><a href="https:&#x2F;&#x2F;boomsql.com" rel="nofollow">https:&#x2F;&#x2F;boomsql.com</a>. Still working on a landing page and MVP
saviorandover 5 years ago
This is awesome! Saves so much work on building simple admin panels. I have experience in custom software development, and that&#x27;s such a huge pile of work for developers it&#x27;s insane
nautilus12over 5 years ago
I wonder if there is anything like this but for a larger swath of tools, like say anything that is JDBC or ODBC compliant. More like data virtualization tools like dremio, denodo, atscale.
评论 #22078681 未加载
janciover 5 years ago
Why not have the admin panels configuration stored in a database itself instead of json? And use the admin panels to add more admin panels...
xupybdover 5 years ago
Thank you so much I&#x27;ve wanted something like this for years but never invested the time into finding or building it.
sandGorgonover 5 years ago
could you check the code ? i think esqlate-server is .gitignored
评论 #22073413 未加载
rygxqpbsngavover 5 years ago
Used to do something similar with Microsoft Light switch.
0xff00ffeeover 5 years ago
Does anyone else find it humorous that the majority of top-level comments in this thread start with, &quot;Cool! I built something just like this &lt;insert link to example&gt; because &lt;commercial solution&gt; sucks!&quot;<p>This tells me that (a) it is a common problem, and (b) it is not solved well. I&#x27;m guilty too: I manage a large MySQL DB and the admin panels are essentially CRUD UI rendered from the schema. The alt solutions I&#x27;ve clicked on here try to add more functionality, but it seems that&#x27;s where things break, because every solution is different beyond the 1st-order CRUD UI. This seems to indicate there is no generic solution beyond that?
评论 #22076337 未加载
评论 #22077421 未加载
评论 #22083945 未加载