Jozsef

Profit: Custom design vs templates/themes

11 posts in this topic

Hi everyone, I'd like to start a conversation about your view and practices for profitable web design and development (unless there is already one that I didn't find). I use ProcessWire for most of my sites currently.

Wherever I look though I can see plenty of web design freelancers and even larger agencies running exclusively on WordPress and themes. Many people are running "web design" businesses even without any development skills. There are just so many that I started to doubt if that's the way to go.

- Do you use Wordpress + themes to cut cost and increase your bottom line? If yes, what is the middle ground? Is it worth to put up with WP?
- If not, what alternatives you use for micro/small businesses?
- And finally, how do you use ProcessWire to speed up small, basic brochure websites?

Clients care more about budget and results than "custom" design. I love working with ProcessWire but only if it doesn't mean lost opportunities.

Any opinions are welcome, especially from those of you who are advocates for themes yet are skilled developers.

1 person likes this

Share this post


Link to post
Share on other sites

Has been discussed before in several threads. I my self grow my own library with processwire themes. It takes time to grow your own library with processwire themes but it is worth it as you can adapt/modify/change a processwire theme into anything a client wants. After you finished a website, clients are always going to call you back and want something changed, modified or added. With processwire, having everything open, no problem. My experience with Wordpress is you depend heavily on plugins or need to learn how to "hack" a wordpress theme into what the client wants. All wasted time as you will never get it right 100% this way and you learn nothing useful new in coding. Besides that, wordpress theme support will never help you with code questions and is limited to functional support. This processwire forum is the best support you can ever wish for if you have any question about processwire.

5 people like this

Share this post


Link to post
Share on other sites

I use themes (both commercial and free), don't see any issues with it.

I use a custom theme engine module that sort of speeds up the whole process of integrating a pre-made design... (from any html source)

 

Share this post


Link to post
Share on other sites
1 hour ago, pwired said:

I my self grow my own library with processwire themes. It takes time to grow your own library with processwire themes

Because of this, I would be interested in a team effort to build some common grounds based on the new Markup Regions and UIkit 3. If there were enough of us to take this path, we should be able to build some unofficial "PW theme for developers".

1 hour ago, pwired said:

My experience with Wordpress is you depend heavily on plugins or need to learn how to "hack" a wordpress theme into what the client wants. All wasted time as you will never get it right 100% this way and you learn nothing useful new in coding.

I agree :) 

Share this post


Link to post
Share on other sites
29 minutes ago, Macrura said:

I use themes (both commercial and free), don't see any issues with it.

I use a custom theme engine module that sort of speeds up the whole process of integrating a pre-made design... (from any html source)

 

@Macrura, do you mean that you use PW with HTML themes?

Share this post


Link to post
Share on other sites

I build my sites on top of my existing PW site profiles I take from previous sites too if you can consider that as a theme. My question is more from the commercial side of things. 

I find myself spending much more time with simple projects than others and that's why I was wondering what you guys think of alternatives. On freelancer forums people tend to see only WP but I know that most of you are seasoned developers coming from other systems. 

Share this post


Link to post
Share on other sites

yes, for some projects, i use html themes, like from html5 up, themeforest, wrap bootstrap etc..

Share this post


Link to post
Share on other sites
On 15.3.2017 at 8:15 PM, Macrura said:

I use a custom theme engine module that sort of speeds up the whole process of integrating a pre-made design... (from any html source)

 

Would be great if you would that module with us.

Share this post


Link to post
Share on other sites

sure, so the (currently named) SimpleThemeEngine is basically a front end api, which is now in module form, but was previously a loose collection of functions that were used procedurally. I would probably recommend to use Spex since it released and proven to work; My module is probably too specific for general release at the moment...

It uses WireData class for storage and provides methods for:

  • Adding, manipulating assets (css/js)
  • outputting assets (css/js)
  • Getting and setting theme variables/settings (used for layouts, like show/hide page header, etc)
  • injecting inline js code in head/foot
  • simple web fonts management, loading etc
  • injecting markup into parts of the page (sort of layout hooks)

problem with releasing module is that it depends currently on ProCache being installed (future version would have setting to select the caching/min engine, e.g. AIOM or PC)... below is an example of the code that would be used in the head....

// $ste = $modules->get('SimpleThemeEngine');
echo $ste->headAssets();
echo $ste->getJsConfig();
echo $ste->gFontLoader('Open+Sans:300,400italic,400,600,700|Montserrat:700');
echo $ste->getInjects('header');


 

2 people like this

Share this post


Link to post
Share on other sites

Really nice features!

But sounds really not easy to use for everybody right away, maybe it could be a baseplate for theming in pw.

Maybe sharing a future version which is less specific would make more sense.

Share this post


Link to post
Share on other sites

it would probably need to be part of a site profile so that it could make sense, it also integrates with 3 other modules, ProcessGeneralSettings, SimpleSiteEngine and SimpleSiteMeta, which together complete the whole frontend api that i'm trying to develop...

3 people like this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By 3fingers
      Hey all,
      yesterday evening I started playing with the new uikit admin theme and I have to say I really like the way @ryan has developed it, it's relatively easy to modifiy it further.
      It took me around 10 minutes to prepare the development pipeline (from installation, setup the build processes and grasp the directory structures), so I highly encourage every designer in here to get their hand dirty and start without any fear
      I'm going to post in this thread my progresses, since my will is to dedicate every evening 1 hour or so with the purpose to release a visually pleasing and stable admin theme.
      If you want to post your progresses in this thread too, you're welcome!
    • By novalex
      Hi,
      New to PW, please forgive my ignorance if this has been answered before, I have scoured the docs and forums but couldn't find anything.
      I'm trying to add a custom tab to the Page Edit screen (or process), which will contain fields for a page hero. Ideally, I would have a "Hero" tab before "Content", which would contain fields for images, text, a CTA button, etc. What I have so far is this:
      class HeroTab extends WireData implements Module { public static function getModuleInfo() { return array( 'title' => 'Page Hero', 'version' => 1, 'summary' => 'Header fields for pages.', 'singular' => true, 'autoload' => true, ); } public function ready() { if(wire('page')->process != 'ProcessPageEdit') return; $this->addHookAfter('ProcessPageEdit::buildForm', $this, 'addTab'); } public function addTab(HookEvent $event) { $form = $event->return; // create the tab $hero = new InputfieldWrapper(); $hero->attr('id+name', $this->className() . 'hero'); $hero->attr('title', $this->_('Hero')); // Images $fimages = $this->modules->get("InputfieldImage"); $fimages->attr('id+name', 'hero_images'); $fimages->label = $this->_('Images'); $fimages->extensions = 'gif jpg jpeg png svg'; $hero->append($fimages); // Text $ftext = $this->modules->get("InputfieldCKEditor"); $ftext->attr('id+name', 'hero_text'); $ftext->label = $this->_('Text'); $hero->append($ftext); $form->prepend($hero); } } This adds the tab and the fields, but after the "View" tab. However, the bigger problem is that the fields do not save. When I click Save, the page refreshes, with the "Saved Page" notice, but the fields are empty.
      I got inspiration from https://github.com/adrianbj/ProcessRedirectIds/blob/master/ProcessRedirectIds.module, but I think it is for the older 2.x version because it originally used $form->append which put the bottom save button between the tabs and tab content.
      Any help would be appreciated, I am thoroughly lost and the documentation doesn't give any examples for what I'm trying to do.
      Cheers

    • By holmescreek
      This question has probably been beaten to death - think I'm approaching this wrong. 
      Anyway, I've got a textarea input field that uses ckeditor.
      Under the fields Input section I managed to add my custom style sheet in the 'Custom Editor CSS File (regular mode) section for instance:
      /site/templates/css/ckeditor.css

      This seems to work fine.
      What I'm trying to do now is add a custom style to the ckeditor styles menu, for instance, called .green_button
      (p.s. in the ckeditor styles.js I added this to the inline section : { name: 'Green Button', element: 'a', attributes: { 'class': 'button' } },
       
      Ok, onto the problem...
      I notice that PW, by default, is using  /wire/modules/inputfield/inputfieldCKEditor/ckeditor-4.5.10/styles.js
      So, I copied this into /site/templates/js/mystyles.js
      Next, I added the above to the 'Custom Editor JS Styles Set' field, however, it doesn't seem to load myckeditorstyles.js -- rather continues to load the one from the /wire/modules... folder.
      I cleared all history and caching in Safari (also tried Chrome, etc).

      I'm wondering if there is something else I need to do to have PW load my /site/templates/js/myckeditorstyles.js instead of the one in /wire/modules.../ckeditor-4.5.10/styles.js ?

      Thanks!
       
       

    • By Martin Muzatko
      Hello! I am using ProcessWire for a good three years now already, and I am really happy with the flexibility it provides.
      There is one thing though that bugs me. For a recent project, I need lots of templates.
      I already have a site/templates folder polluted with a package.json, yarn.lock, node_modules, errors, .eslintrc, .git and my entire build setup.
      And I thought: OK - when I am forced to use site/templates for templates, is it actually correct to put all my javascript, styles, components, functions, classes also there? I mean, at least this is what the default theme encourages (they put styles there also)
      I read into other posts covering this topic about having a sub folder for templates. Because even with the non-template files stored somewhere else, the template files are still too many. Unfortunately, they also discovered that this is not possible:
      Sub Directories for Templates
      Should all template files put under site/templates folder
      What are your ideas?
      I already thought about having a page field, that defines the template path from a dropdown, but with this I would only reinvent an already almost working wheel.
      Thank you for your inspiration.
       
      Best,
      Martin
    • By Harmen
      Hi all,
      I do have a form in the 'backend' of my website which has a fieldtype of ASMSelect. I gave all the options of that field a custom attribute with a value:
      foreach ($feature_group['features'] as $feature_id => $feature) { $field->addOption($feature_id, $feature['name'], array('data-feature_group' => $feature_group_id)); } How can I read out the value of that custom attribute named data-feature group?
      I've tried it with
      $selected_feature_groups = $form->get($category_id)->getAttribute('data-feature_group'); //AND selected_feature_groups = $form->get($category_id)->feature_group; but that doesn't work.
      How can I get this to work?
      ~Harmen