Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Google Sign In with OpenID

Question: might Elefant work for this project?

edited March 2013 in Framework


Question: is Elefant a reasonable candidate for the project I describe below? Does it look to you like the basic infrastructure of a single site hosting multiple Elefant-based mini-sites can be done without major structural changes to Elefant? Or should I stick with a full-stack framework like Laravel?

tl;dr We're working on a project that would provide individual users and organizations with a cms to manage a code and documentation publishing project. Essentially once a 'project' was created one or more administrators would be able to manage project members, control the editorial workflow, and customize the default data input and display to be specific to the project. All projects would share a common 'branded' theme based on responsive Twitter Bootstrap and the theme couldn't be customized. The site would provide both a public site-wide and an authenticated project-specific restful API. We'll have tight integration with the GutHub API. Ambitious, I know.

We had an initial version built a number of years ago in Symfony 1.0, but decided Symfony2 would require a complete rewrite and put it off until we had looked at other options. We got quite far with a Drupal 6 implementation (using organic groups) but got caught in the 6->7->8 upgrade trap and decided that we just couldn't continue to use 6 but couldn't afford to spend all of our time trying to keep up with dramatic changes to the underlying CMS. After looking around some more we settled on Laravel 3 and had just gotten started about the time that Laravel 4 was announced. We decided to switch, and have been trying to build out the app on some of the more stable parts of Laravel 4. But ultimately I'm not very comfortable with the underlying Laravel 4 code philosophy (not that there's anything wrong with it) and 4 is enough different from 3 that, given Laravel's history, it looks like the upgrade treadmill again.

Having spent the morning with your docs, looking through the API, and browsing the apps (SaaS looks interesting), Elefant looks very, very close to giving us the easy 80% of what we need, with the basic infrastructure to support the other 20%, and the project seems nicely stable without being static or dead. I like the way you think, and the way Elefant is written and structured. But I couldn't quite see, without spending a lot more time with the code, whether it was even possible to do what we wanted to do. Hence my question.

I'm not looking for specific implementation advice (yet), but just a seat-of-the-pants assessment of how much pain might be involved -- I don't want to commit to an infrastructure only to have to tear it apart. Since all of the site uses a common theme and base objects, my chief concern (I think) is the ability to provide user-controlled project-specific data input forms and display. Everything else looks doable through careful acl management and control of visibility.

Thanks, Jon Phipps


  • Sounds like a cool project! I do think Elefant has a lot to offer in a project like this, and the SaaS app may be a good fit too. The app has the Bootstrap integration and user accounts/member management structure in place, and access control between users is really easy in it too. So you can probably get a good portion of the way there already, and Elefant should make the rest fairly pain-free, aside from a bit of time getting used to a new framework.

    The SaaS app was created because I'm building a SaaS website for work right now, so first I built the reusable pieces as a generic app that you just plug your custom features into. I'd be happy to show you how I've set it up on that site to give you some ideas.

    Building REST APIs is also pretty easy, even HMAC authentication for giving clients a token to access your API securely is only a few lines of code. And as far as things changing under your feet, I think Elefant's core is going to last us a while. It performs well, doesn't use much memory, and mostly gets out of your way as a developer, so why change it (except further optimization :)?

    We're also compatible with Composer, so you can use any other libraries you might need, even from other frameworks. Composer kind of levels the playing field for frameworks nowadays, which is pretty cool.

    Anyway, hope that gives you some ideas of how Elefant might work for you. Even if you don't end up going with it, I'd love to know your impressions either way.

  • Thanks! I didn't mean to be gone from this conversation so long. I'll definitely spend some more time with it and probably be back with some more questions as I go.

Sign In or Register to comment.