Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: AdminJS, the Backend-Agnostic Administration Framework (adminjs.com)
119 points by ghempton on Aug 25, 2013 | hide | past | favorite | 26 comments



I'd say that the JS world does need one of these.

There haven't really been any admin panels in the javascript world to my knowledge that are far beyond the "weekend project" phase. (Please note that I phrased that strongly, because I would love to find out I was simply overlooking a capable contender).

For a wide swath of jobs where one might be tasked with providing minimum necessary cms/admin functionality, the Rails ecosystem excels, with ActiveAdmin[1] and more recently RailsAdmin[2] both strong contenders. Both offer out-of-the-box integration with authentication/authorization frameworks like Devise and CanCan, image/file upload, etc.

I want that in Javascript.

Not because I think that admin panels are such a great thing, but just because especially doing lots of contracting and agency work -- you're going to need them sometimes. You just are.

If you were making a product, maybe you'd turn your nose up at an admin panel (suspect security, not performant), but they're a force multiplier when you have very limited 'I need to be able to manage data X' requirements for a project, and don't want to limit your future options or get bogged down building interfaces only two humans will ever see.

I very specifically want great Javascript admin panels to proliferate, because I want to be able to do some of those quick projects in node.js, and admin panels are such a selling point of Rails at most agencies. :)

---- [1] http://www.activeadmin.info/ [2] https://github.com/sferik/rails_admin


I believe one of the reasons why there haven't been any for JavaScript or Node.js is because nothing is standardized, apart from possibly express and connect.

Authentication and authorization is yet to be standardized. This is the big part of an admin backend. Also, because there's no standard ORM, data store, or even schema, it's really hard to get something completely agnostic. You'd have to present a boat load of configurations for it to work, but then you wouldn't achieve "working right out-of-the-box."


Yeah -- I was expressly comparing to Rails, which has had a kind of de facto standardizing effect.

And in addition to not having an ActiveRecord-style de facto standard interface for CRUD, and having a much wilder profusion of datastores than the SQL/almost-first-class-citizen-Mongo in much of RailsLand, the node.js community is pulled in a lot of different directions because of Real-Time.

What's the future of ORMs in a real-time world? Projects like Derby/Racer are a fascinating/messy glimpse into what kinds of forces are shaping the data layer.

Look at how much harder simple things like validation/authorization are when you're dealing with an OT engine that doesn't understand schemas, and which do its job necessarily lives half in Redis and half in Mongo, using the ShareDB api ...

Node.js has a lot of wonderful excuses not to have an admin panel; most of them are related to why node is awesome.

That being said, I hope we get some admin panels. :) Passport.js is a decent Devise standin, for instance, and there are a lot more ORM/ODM options now than there were two years ago.


This is the perfect case for hypermedia in the RESTful sense.

Rich Hickey recently gave one of his talks[1] where at one point he offhandedly mentioned that hypermedia (which gives URIs for related HTTP resources, with some link-like metadata) doesn't make sense for APIs because APIs don't have human "drivers" that can read the link text and make meaningful sense of what relations actually mean in the domain model.

I think the genius of RESTful hypermedia, though, could really come through in a system like this. How else do you show relations? Last time I checked, RailsAdmin can't do much for you here except provide the resource ID as a link to that resource's table and row.

As a benign example, imagine a guest-party admin page. What today would look like "Guest: 'Pitt, Brad', Party: '43'", tomorrow could be be "Guest: 'Pitt, Brad', Party: 'Pitt-Jolie'" with a link to '/parties/43'.

I sense that developers (or at least Crockford[2]?) don't want JSON to become overloaded with XML equivalents like XML schemas and metaschemas and XSLT...but think of what we could do!

[1] http://www.youtube.com/watch?v=ROor6_NGIWU

[2] http://www.infoq.com/presentations/Heretical-Open-Source ?


Json-ld takes this even further, it also supports linking data across multiple domains.

http://json-ld.org/


I'll also mention HAL, which is spec'd in both JSON and XML and has been serving me quite well.

http://stateless.co/hal_specification.html


I can't browse the site on my iphone(news.yc, chrome & safari), it locks up during render.


Same on iPad, though after a minute or two (!) or so it finally begins to work. It has probably something to do with that 100000 row table on the landing page.


Same here. iPhone 4, chrome an safari.


It's a bit sad for the front-end JS community that despite using one of the most comprehensive client frameworks in Ember.js, the author of this admin panel still felt the need to swap in a non-native data plugin (http://epf.io/).


What does non-native mean here? All of the persistence options for Ember (Ember Data, Ember Model, EPF) very intentionally don't come bundled in Ember core. Not sure what you're trying to point out here.


That's because the said data framework is still far from being production ready and complete. I fail to see why it is a sad thing. It is actually good for the Ember ecosystem that other options are available even when the core team is forced to distribute efforts on all fronts, leading to a slowly evolving data library.


http://www.jtable.org/ is another similar product we have used before.


Don't visit this site on a mobile device. Something is terribly, terribly wrong. I just spent 10 minutes trying to get my phone back into a usable state. The page loads about a tenth then causes the browser to be unresponsive. Killing Safari multiple times didn't help and I even had to force restart 2x.


Thanks for the heads up, we're looking into it


Awesome. I'm taking a look at the framework from a regular machine now. Looks interesting.


You don't have any description on what this actually is, other than "The Backend-Agnostic Administration Framework".

Can you please at least describe the features before you get into installation?


For a second I thought your "new" view was broken, but I realized it was because I had scrolled over in the table before clicking new. Looks like you need a scrollLeft(0) somewhere in there.


it's boring to implement the ORM again in the client side


Two things: When I click on an ID in the example, I can't get back except for using the browser back button. Also, the EPF link tries to send me to epif.io.


Congrats to the badasses at GroupTalent. This looks great!


Great work if it is what I think it is though I'm not totally sure what this is. Can you please elaborate? Any usecases would be awesome!


Beyond the fact that this is super useful, it's also a great example of how to build and structure an Ember app.


very cool - would love to see an actual implementation of this. might just use it for my own CRM


looks great seems to crash safari on iphone 4


I noticed that too, we're looking into it




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

Search: