13 ms·
Show HN: Upmin – An Admin Framework for Ruby on Rails
- joncalhoun 12y agoHi HN, I am one of the founders of Upmin, and I am leading the development of our admin framework for Rails. It is still pretty early, but I would love to get your feedback on it as we try to prioritize our development efforts. Thanks!
- michaelmior 12y agoLooks really cool! Just a small note that I'm having some weird font issues on Windows using Chrome. (not really obvious until you download and view the full size) https://www.dropbox.com/s/fokwygisejzzk4m/Screenshot%202014-09-12%2018.02.31.png?dl=0 https://www.dropbox.com/s/fokwygisejzzk4m/Screenshot%202014-...
- joncalhoun 12y agoThat is odd.. I will try to look into it. Thanks for providing a screenshot.
- Spone 12y agoThis is great compared to the other admin frameworks I tried, but I think you should now spend some time on UI polishing (size of the fields and filters, visual hierarchy) to make it pleasant to use without any additional customization.
- joncalhoun 12y agoThanls for the feedback. We plan to iterate on the design soon. If you have specific examples and could provide screenshots of things you don't like or aren't functional you can send them to support [at] upmin.com Thanks!
- Podeau 12y agoCouldn't agree more.
- jsnk 12y agoThis looks awesome. Pretty much exactly what I need. Do you think this will work fast enough with databases with a large number of records? Some tables in my rails app have 1 million + records.
- backwardm 12y agoMy first impressions are really positive. I'll give it a whirl ! Thanks for making and sharing this!
- joncalhoun 12y agoNo problem, and thanks :D If you have any questions there is almost always someone on our HipChat support room - http://www.hipchat.com/gvREostp6 http://www.hipchat.com/gvREostp6
- moondev 12y agoHow does this compare to activeadmin?
- joncalhoun 12y agoI am biased, but I didn't like a few things about active admin: 1. Customizing views requires that you use Arbre. Learning an entirely new tool for generating webpages when every developer is already familiar with partials, html, erb, etc seemed backwards to me. 2. I tried to design upmin-admin so it was easier to setup. Active admin requires a little bit more work (but truthfully not a ton more). 3. Adding things like actions was significantly easier in upmin-admin. You basically just say what method you want to have on an admin page and it makes it work. That said, this is very early stage (beta at best) and active admin has been under development for a while, so active admin is definitely more polished right now. That should change over time.
- alelepore 12y agoi like this, i think a new project can learn from what (some) people don't like of AA: stuff like arbre, too much dynamism/magic, not so rails way, custom css... at first look upmin seems on the right way (imho), but i personally don't like the haml choice.
- joncalhoun 12y agoRe the choice of haml - you don't have to use haml. That just happens to be what I chose to use, but if you watch the videos you will see that you can create partials with erb files instead. I intentionally used erb in the videos to try to get this point across, but perhaps I should try to make it more obvious.
- backwardm 12y agoJust a quick glitch-in-the-matrix report... in your video about using your own widgets, the state of the shipment was "out for delivery" or something like that. But when you added the widget and refreshed, it showed as a few states behind.
- fishtoaster 12y agoHow does this compare to https://github.com/sferik/rails_admin https://github.com/sferik/rails_admin ?
- joncalhoun 12y agoTruthfully, I haven't used rails_admin a lot. I can say that it is definitely more polished since it has been around much longer, but I have never tried to customize it or add in custom code so I don't know how it does there. Maybe someone else with more experience with rails_admin could comment?
- aetherson 12y agoI've used rails_admin extensively in my last two jobs, but haven't used any of the other comparable admin frameworks. If what you want in some basic inspection of all objects with very little work, rails_admin is great. It pretty much does that, the end. Adding a little bit of role-based access levels via CanCan is also super-simple with rails_admin. Paper trail works great for a simple audit log. Customization to the level of "using friendlier names for some attributes, organizing your data logically, and showing cleaned up pretty values" is pretty painless as well. Where rails_admin gets a bit annoying in my mind is when you want to start adding custom actions (LOTS of cruft and boilerplate and magic for relatively simple results), or if you want to break out of the CRUD for models viewpoint at all. We're trying to use it to offer some non-technical people things like access into user history, and you end up fighting against the fundamental assumptions of the framework a lot. (That sounds critical. I think that overall, rails_admin is great at doing what it does. We're trying to push way past the bounds of what it does, and we're running into some troubles there, but that's to be expected). The major failing of rails_admin that I've noticed when you aren't talking about DEEP customization is that it does not handle 1:many or many:many relationships well when the number of associated documents is large. Like, we may have a model that has 500 or 5,000 child documents, and there's no easy way to paginate the list of child documents. Also, if you have a polymorphic relationship, your list of candidate child documents is just a simple HTML select, which is obviously unwieldy when the candidate list has thousands of entries.
- danso 12y agoI've always been at peace with Rails' lack of default opinions or framework for admin views...I kind of just thought that Admin was just a hard problem to solve anyway, so why even bother. But then again, I probably would've thought that about ORM, and yet ActiveRecord can fill in very admirably...Hope this project is successful in creating that kind of happy balance between abstraction and customization.
- joncalhoun 12y agoThanks
- thebenedict 12y agoHow does Upmin approach forms for relationships? With both rails_admin and Active Admin, I found complex relationships like has many through multiple, and has one with scoped collections frustratingly hard. (in fairness I know it's not easy to automate)
- joncalhoun 12y agoRight now, we don't do much more than show relationships. I think we can do much better than Active Admin or Rails Admin (and hopefully they can learn from us :D) but it won't be added in for at least a week. If you want to create the issue on GitHub I can try to keep you updated on the status of this. - https://github.com/upmin/upmin-admin-ruby/issues https://github.com/upmin/upmin-admin-ruby/issues
- CGamesPlay 12y agoI checked out the videos but haven't used the software. Two questions: - I need my fields to be nillable. Does upmin differentiate nil and empty string? - How difficult is it to add support for DataMapper?
- joncalhoun 12y agoNil/Empty String - not right now. If you (or I can) create an issue we can get this supported correctly. DataMapper - An issue exists for this, but it is not currently implemented. I'm not 100% sure the scope of supporting it, but from what little research I have done it shouldn't be a major undertaking.
- andybak 12y agoI'm a big fan of the Django admin and I'm curious to know how life in Rails-land compares. Anyone with experience of both care to comment?
- abbottry 12y agoDid rails development for 6ish years full time, about 6 months ago I joined a startup using Django. The admin is QUITE nice, its very flexible in terms of models but as well as templates, allowing you to override specific blocks from a standard template, rather than copying a template. This looks like the very beginning of the Django admin, something that Rails could seriously use. Admin functionality isn't meant to be user friendly, its essentially a CRUD system that mimics your schema.. something that would be quite handy in Rails. While I've always painfully just created my own admin for every project, I've used https://github.com/activeadmin/activeadmin https://github.com/activeadmin/activeadmin a few times, and known others who have as well. It's great, but again not nearly as simple as Django. Personally I would love to see a Django Admin style tool for Rails. Of course, you do kind of get this with Rails Scaffold, but its not admin, its all user facing as its produced with the model and controller, far from ideal.
- jprince 12y agoCertainly ActiveAdmin has given me a share of headaches as I built my website. That being said - it works, and I'm familiar with it(and Arbre) now. How do you plan to get established sites like mine to switch to Upmin with such a high upfront cost(namely, reconfiguring Upmin to have all the same functionality I bled for for ActiveAdmin?) Any kind of migration plan?
- joncalhoun 12y agoIf you already have active admin setup with a lot of things built on it, I wouldn't suggest changing it until you needed to add new stuff, or it was falling short somewhere for you. No point wasting the dev time if it works. I would love to talk to you more about what you have customized, and what all would need to be reconfigured to get started with upmin to learn from you if you don't mind sharing. My email is jon [at] upmin.com.
- spinlock 12y ago> I bled for for ActiveAdmin I know exactly how you feel. Arbre is neat and all but I think it's a bad idea to use yet another language for your admin stuff. I always use partials so I can work in slim. I probably wouldn't switch now but I'll definitely think about it for my next project.
- frequentflyeru 12y agoDoes this work even if you don't have Devise as your authentication?
- joncalhoun 12y agoYes, but you will need to add you own authentication in the routes. We are looking at other ways to add auth soon, but for now this was the simplest way to get started.
- frequentflyeru 12y agoI went ahead and installed it. Very cool.
- frequentflyeru 12y agoDoes this work even if you don't have Devise as your authentication?
- panorama 12y agoGiven its recency, is it safe to assume this works for Rails 4.2.0beta? I'm working on a new project for a client and was a little dismayed that both Rails Admin and ActiveAdmin currently have problems with 4.2.0.
- joncalhoun 12y agoI haven't tested it with 4.2.0 beta yet. I can give it a go this weekend and I will add it as an issue on github as well. If you comment on the issue or email me - jon [at] upmin.com - I can make sure to update you on this.
- panorama 12y agoEmail sent, thanks!
- gxespino 12y agoPretty cool - this is coming at a perfect time for me.
- ramigb 12y agoI love it, great job guys, one suggestion though, mixing the admin logic and customisations with the model isn't a great idea, some models are already fat models, so maybe creating separate model config files would be better, thank you.
- joncalhoun 12y agoThanks! You aren't the first to mention this, and we have a good idea of how we want to do this going forward but haven't implemented it yet.
- jordanthoms 12y agoInteresting, but the big gap here is for projects where your rails app is an API (using rails-api) only. We've been struggling with the best way to build an admin panel in this case - I'm reluctant to add asset pipeline etc to the rails app just for the admin panel, and I've also found the admin panels tend to use large amounts of RAM etc. The other solutions all have downsides - you can build admin APIs into the API and have a separate app call them, but it's more work. You could make a separate rails app which calls the same DB, but then you have to keep the model code in sync. Anybody found a good solution to this?
- ZoFreX 12y agoYou could use a rails engine to share the same models between two rails applications. Depending on the size of the project though, you may find that the economy of sharing models is a false one - applications of sufficient size may benefit from having separate models for user and admin interactions (see also: Domain Driven Design).
- spinlock 12y agofwiw, we use active-admin for our Ember front-end/Rails backend app. We don't have a lot of actions that our admins can take but it's been really nice to expose some of the account details for support tickets, etc...
- nchuhoai 12y agoThe asset pipeline shouldn't really be an issue with precompilation, or am I wrong?
- psychometry 12y agoThere's no reason you need to host the admin panel on the same server as your API. You can even add your admin tool to your existing repository and deploy that single repo to two different servers, one of which you mount the admin engine in and the other you don't.
- 1qaz2wsx3edc 12y ago> I'm reluctant to add asset pipeline Consider using different/manifests layouts if you're concern is client-side. If it's compiling assets I think your concern is misplaced. > admin panels tend to use large amounts of RAM etc I don't think this is the case, or a huge concern depending on you're environment. Further, you could separate the apps into engines, they're great for this. TaskRabbit did a write up on this: http://tech.taskrabbit.com/blog/2014/02/11/rails-4-engines/ http://tech.taskrabbit.com/blog/2014/02/11/rails-4-engines/ Personally however, I've normally roll out the app as one piece with active-admin, generically speaking most apps have little admin-specific logic to them, for example, it's normally something like: "Do <x> for user(s)", "Approve <x> content", the type of operations you do can easily fit under the simplistic nature of what active-admin offers. This isn't a catch all however, some applications require more of an integrative approach, in which case it's development as normal, bits of functionality injected here and there so-to-speak.
- gdiocarez 12y agoDoes this support rails 2.3 using bundle?
- joncalhoun 12y agoHonestly, I have no idea. All of our development efforts were geared towards Rails 3 & 4. If you have any issues and want to email us (email below) we can try to help out, but I can't really promise anything for 2.3. Our email address is support [at] upmin.com
- gdiocarez 12y agoThank you. I'll try it.