Preview: The SilverSmith Framework

78 views
Skip to first unread message

Uncle Cheese

unread,
Apr 11, 2011, 3:14:03 PM4/11/11
to SilverStripe Core Development
Hi, Everyone,

I know it's probably not cool to hijack this mailing list for topics
outside the SS core, but if anyone has a bit of time, I'd like to get
some developer's eyes on a framework I've been working on for
SilverStripe, and this seemed like the most appropriate channel.

SilverSmith is a framework for building SilverStripe sites that
provides code, template, and content generation tools using a YAML
configuration file. I have been using this tool on several projects
and it has saved me volumes of production time by cutting out all of
the repetitive tasks involved in building a SilverStripe. I’m really
excited to share it with the community and get some feedback about how
it might work with your workflow and if it might have a place in SS
3.0.

Moderators -- If this post is too tangential and off-topic, then its
swift deletion will not be taken personally. :-)

More at LeftAndMain:
http://www.leftandmain.com/silverstripe-screencasts/2011/04/11/the-silversmith-framework-code-right-type-less-build-fast/


Howard Grigg

unread,
Apr 14, 2011, 12:17:34 AM4/14/11
to silverst...@googlegroups.com

Hi Aaron,


I'm surprised that this hasn't had any replies yet as it is a major development tool! I checked out the videos and it looks really impressive. One use case that came to mind was the easier bundling of a basic site structure with a theme, i.e. a theme could include the template for a HomePage and the YAML file to create the required extra fields etc...


I would be interested to hear the core teams opinion on this getting included in 3.0 - if you're able to bring it up to a stable and tested form. It would be very useful for amateurs just starting out as it lowers the level of knowledge required to customise the CMS also it fixes the current situation of copying and pasting snippets at the start of each project. Obviously it wouldn't form part of the CMS but I could see a place for it in the /dev/ location alongside /build etc...


Looking forward to the release so we can have a poke around with it! 


Cheers,


Howard


P.S. Looking forward to the Brisbane Meetup tomorrow night! 




--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To post to this group, send email to silverst...@googlegroups.com.
To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.


Andrew Short

unread,
Apr 14, 2011, 12:53:07 AM4/14/11
to silverst...@googlegroups.com
My two cents:

While this may be a useful tool for some I don't think it's something that should be included in core. One of the strengths of SilverStripe versus other frameworks is that to add things like models or controllers you don't need to use command line generators which write to multiple files. I don't think the time savings of using something like this would be that big to be honest - if you know what you're doing you can write PHP as fast as you can write YAML (even faster with a good IDE), and you can create more complex functionality while you're at it rather than having to jump from YAML -> PHP.

Just for the point about something like this lowering the entry barrier: I think this would actually have to opposite effect - the disconnect between creating YAML files with this syntax and set of names for things, and then having to jump into a random PHP file with slightly different different names and a completely different syntax to then extend it has the potential to become very confusing if you're just getting started.

So in conclusion, I think it looks like something that's good to have available as a module for those who want it, but I don't see any advantage over the current way of doing things that would warrant it being in the core. Of course, some of my opinions may shift a little when I actually have a glance over the module, but I think the status quo is better at the moment.

Andrew Short

Peter Bacon Darwin

unread,
Apr 14, 2011, 2:20:57 AM4/14/11
to silverst...@googlegroups.com

I really liked this slick module and I can see how it can increase development speed in most cases.  Aaron, what percentage of the time would you see people being able to develop sites without having to customize the PHP?

 

I also understand Andrew’s sentiments.  One of SS’s key strengths is that that you can pretty much do everything in a single environment/language (PHP), rather than having to be able to develop in multiple environments/languages (SQL, XML, etc).  What I believe Aaron has really highlighted here is some of the complexity that is involved in building up the SS classes – as he points out in his first video.

 

If one is thinking about improving the core then I think it would be helpful to move some of the ideas from this YAML configurator directly into the SS data object definition PHP code.  For instance why not make SS assume that if there is a One-To-Many on any object then the reciprocal relationship holds and generate that property automatically, etc.

 

Pete

Anselm Christophersen (title.dk)

unread,
Apr 14, 2011, 5:57:48 AM4/14/11
to silverst...@googlegroups.com
Aaron previously mentioned that the YAML would have a UI attached to it in later releases.
As such I see it as a brilliant add-on for speeding up the development of basic site scenarios.
E.g. the module could come bundled with at configuration for "basic site", "basic portal" etc, which would be amendable (and saveable) through an easy-to-use UI. This way, entire site configurations could be easily distributed through YAML files.
I see it as a potentially great add-on which could lower the entry barrier for designers working with Silverstripe, when combined with bundled YAML configuration files and potentially a module installer.
Again, a great add-on, which I would definitely consider using for basic sites - but it should not become part of the core in my view.

Great Work, Aaron!

Best regards

Anselm Christophersen

title.dk
C/O CPH Cloud Company
Havnegade 39
DK 1058 Copenhagen K


+45 / 60151100
a...@title.dk

CVR / SE: 28426496

Uncle Cheese

unread,
Apr 14, 2011, 10:22:42 AM4/14/11
to SilverStripe Core Development
Thanks, guys.

Just to clarify, I realized I may have been misunderstood. I don't
have intentions of trying to get this bundled into the core. I think
that's a little ambitious, and a bit inappropriate, to be honest. When
I said "have a place in SS 3.0" I think I just meant working
concurrently or alongside it -- not as a bundled toolset.

SilverStripe does have some inherent learning curves that are absolute
non-starters for certain factions of users. The CMS is simply not
marketable to frontend developers and designers. These are people that
don't know how to program, don't want to know how, and never will. I
think it's wise to unlock that market while still satisfying the
advanced developers like ourselves who love that SilverStripe is so
code-driven.

And I think that's what I like about this framework so much. It's very
take-it-or-leave it. Every WYSIWYG style CMS I've seen, like
ExpressionEngine or Harmony -- both of which allow free-form model
design in the CMS -- are geared to heavily toward people who don't
want to program. As a programmer, you start trying to customise, and
you're left stymied by the GUI. SilverSmith is more transparent. It
just "jumpstarts" your code, in a way. Design and frontend guys are
used to using GUI tools like that, and as Anselm said, you have to
imagine that the YAML is not the obstruction that it is in the
screencasts. It's in the process of being replaced by a more friendly
drag-and-drop based GUI.

Coders and designers have one important commonality -- both of them
are wasting their time writing creating the same files with the same
naming conventions, the same static vars, getCMSFields() functions,
and control blocks over and over again. Our time is better spent doing
other things like custom coding, or theming, respectively. It's an
intellectual opportunity cost that needs to be recovered somehow, and
I think this is a start.

All I can say is as a programmer myself, I hate when frameworks get in
my way, so I built this around that simple criterion, and I have to
say, I love using it. Our HTML guy is also really adept using the tool
as well. So if we're any representation of the population, I think it
has legs.

Thanks for all of your thoughts. I'm anxious to see how this whole
thing shakes out.




On Apr 14, 5:57 am, "Anselm Christophersen (title.dk)" <a...@title.dk>
wrote:

Dan Rye

unread,
Apr 14, 2011, 10:42:07 AM4/14/11
to silverst...@googlegroups.com, Uncle Cheese
I think it is great.  If you do even as little as 2 brochure sites a week this will easily save you 8 hours of work.

The biggest advantage I see from all of this is the ability for me to pass off templates containing all of the needed content to an html developer.  Currently I have the html developer complete static pages and I add the silverstripe content after the fact.  

Curious if I can generate templates from existing objects?

The other huge advantage I see is consistency.

Nice work Aaron.

Uncle Cheese

unread,
Apr 14, 2011, 10:59:14 AM4/14/11
to SilverStripe Core Development
Thanks, Dan. I think you'll appreciate that one of the next features
I'll add will be a "reverse engineering" of a template. I often find
myself adding SilverStripe syntax to plain HTML mockups, and I'll
insert all the variables and controls before any of the code is built.
This would be a tool that would suck up all that .ss syntax and create
a model and controller for it.



On Apr 14, 10:42 am, Dan Rye <dan....@gmail.com> wrote:
> I think it is great.  If you do even as little as 2 brochure sites a week
> this will easily save you 8 hours of work.
>
> The biggest advantage I see from all of this is the ability for me to pass
> off templates containing all of the needed content to an html developer.
>  Currently I have the html developer complete static pages and I add the
> silverstripe content after the fact.
>
> Curious if I can generate templates from existing objects?
>
> The other huge advantage I see is consistency.
>
> Nice work Aaron.
>

Uncle Cheese

unread,
Apr 14, 2011, 10:59:46 AM4/14/11
to SilverStripe Core Development
And yes, you can generate templates off existing objects, provided a
template does not exist yet.



On Apr 14, 10:42 am, Dan Rye <dan....@gmail.com> wrote:
> I think it is great.  If you do even as little as 2 brochure sites a week
> this will easily save you 8 hours of work.
>
> The biggest advantage I see from all of this is the ability for me to pass
> off templates containing all of the needed content to an html developer.
>  Currently I have the html developer complete static pages and I add the
> silverstripe content after the fact.
>
> Curious if I can generate templates from existing objects?
>
> The other huge advantage I see is consistency.
>
> Nice work Aaron.
>

Edward Knight

unread,
Apr 14, 2011, 2:31:23 PM4/14/11
to silverst...@googlegroups.com, Uncle Cheese

Just like Uncle Cheese’s DOM Module, I can see SilverSmith becoming one of those indispensible modules for many SilverStripe developers and web agencies. It has such compelling functionality from the standpoint of having pre-canned configurations that you could run, and within 5 minutes have the shell of a site to continue building on. From UncleCheese’s response I can see there has been great consideration given about the audience for the module. Yes, it is not aimed at many of the talented developer centric folks who frequent this dev board. It is aimed at those types who are comfortable working at certain level of abstraction from the Framework.


From a marketing aspect for SilverStripe and its capabilities, SilverSmith is brilliant. Within a five minute demo you could show a design agency the ability to get a complete site template/architecture (with content seeded). All of sudden SilverStripe holds even more weight in the discussions of trying new platforms as developers/designs grow frustrated with limitations/idiosyncrasies of other CMSs.  Added into that the ease of creating whatever you want on the front end with the SilverStripe templating system and we have one awesome CMS that continues to quietly power on.


Seeing developments like SilverSmith, the churn of modules that the Silverstripe Australia team pump out, plus the whole momentum of 3.0 and the CMS/Sapphire framework separation, I personally feel I am pushing and promoting the right platform for client sites and my professional career. There is talent within the SilverStripe org and in the community and as the word gets out more talent will arrive to help elevate SilverStripe.

Aram Balakjian

unread,
Apr 14, 2011, 3:49:20 PM4/14/11
to silverst...@googlegroups.com, silverst...@googlegroups.com, Uncle Cheese
Well said Edward, I couldn't agree more :)

Aram Balakjian

Aab Web ltd.
T: 07799666757

Sent on the road, apologies for any typos, inconsistencies or shorthand.

Uncle Cheese

unread,
Apr 14, 2011, 4:44:03 PM4/14/11
to SilverStripe Core Development
Right on, Ed. I think I need to hire you as my PR and marketing
guy. :-)



On Apr 14, 3:49 pm, Aram Balakjian <arambalakj...@gmail.com> wrote:
> Well said Edward, I couldn't agree more :)
>
> Aram Balakjian
>
> Aab Web ltd.
> E: a...@aabweb.co.uk
> T: 07799666757
> W:www.aabweb.co.uk
>
> Sent on the road, apologies for any typos, inconsistencies or shorthand.
>
> On 14 Apr 2011, at 19:31, Edward Knight <krisan...@gmail.com> wrote:
>
>
>
> > Just like Uncle Cheese’s DOM Module, I can see SilverSmith becoming one of those indispensible modules for many SilverStripe developers and web agencies. It has such compelling functionality from the standpoint of having pre-canned configurations that you could run, and within 5 minutes have the shell of a site to continue building on. From UncleCheese’s response I can see there has been great consideration given about the audience for the module. Yes, it is not aimed at many of the talented developer centric folks who frequent this dev board. It is aimed at those types who are comfortable working at certain level of abstraction from the Framework.
>
> > From a marketing aspect for SilverStripe and its capabilities, SilverSmith is brilliant. Within a five minute demo you could show a design agency the ability to get a complete site template/architecture (with content seeded). All of sudden SilverStripe holds even more weight in the discussions of trying new platforms as developers/designs grow frustrated with limitations/idiosyncrasies of other CMSs.  Added into that the ease of creating whatever you want on the front end with the SilverStripe templating system and we have one awesome CMS that continues to quietly power on.
>
> > Seeing developments like SilverSmith, the churn of modules that the Silverstripe Australia team pump out, plus the whole momentum of 3.0 and the CMS/Sapphire framework separation, I personally feel I am pushing and promoting the right platform for client sites and my professional career. There is talent within the SilverStripe org and in the community and as the word gets out more talent will arrive to help elevate SilverStripe.
>
> > For more options, visit this group athttp://groups.google.com/group/silverstripe-dev?hl=en.

Ryan M.

unread,
Apr 14, 2011, 7:43:49 PM4/14/11
to SilverStripe Core Development
I really like the idea of this as well, this seems to bring
SilverStripe and Sapphire more in line with Ruby on Rails, which
should boost the popularity of SS.

Looking forward to an official release so we all can play with it!

Stu Meads - Dynamic Developments

unread,
Apr 14, 2011, 10:23:16 PM4/14/11
to silverst...@googlegroups.com
I've just watched the first video, and I think it looks great!

--
Kind Regards
Stu Meads
Web Application Developer
Dynamic Developments

Phone: 021 217 6864
Skype: stu.meads
Twitter: http://twitter.com/dyndev

http://www.dyndev.co.nz

Chris Bull

unread,
Apr 15, 2011, 5:08:55 PM4/15/11
to SilverStripe Core Development
This is what I was thinking as well. Rails' generators (especially if
you use that gem that produces even better code whose name i've
forgotten) save so much time at the start of a project. Sure you end
up replacing half the code, but just not having to write boilerplate
is such a productivity gain.
Reply all
Reply to author
Forward
0 new messages