Jump to content

Introduction and Questions for the PR Community


ryangorley
 Share

Recommended Posts

Hey PR community,
I just wanted to introduce myself and ask some questions.

I'm a marketing and creative professional with some front-end skills mostly acquired by working in proximity with real developers ~20 years and by using technical-ish page builders like Webflow and Oxygen (for WordPress) where understanding HTML/CSS was necessary to make cooler things. I own a small creative agency called Freehive. We're famous among a very few people for creating release videos for GNOME and Ubuntu Desktop, and more recently helping Thunderbird redesign their website. We use Free and Open Source Software for design, animation, etc. and I'm regularly trying to convince creatives to kick their Adobe/Autodesk addictions subscriptions. I helped create the Inkscape marketing team several years ago and actively contributed there until a recent (necessary but temporary) break. I love FOSS, I love tools anyone can pick up and make a better life with regardless of their financial means. When I was looking for a more secure, open, and elegant solution than WordPress, you can only imagine how delighted I was to discover ProcessWire.

With that background out of the way, I've got some questions:

  1. Have you found it difficult to convince clients to use something other than WordPress? What do you tell them, if so?
  2. If you've worked in the WordPress ecosystem, what do you miss?
  3. What are your top three (or more) dev tools or must have modules for making ProcessWire life easier?

It's a lot to ask, so I appreciate even partial responses. Thanks, @ryan for creating this magnificent tool and sharing it freely. I really hope I can make it work and to give back somehow.

  • Like 11
Link to comment
Share on other sites

44 minutes ago, elabx said:

RockMigrations, FormBuilder, ProCache, I think all if not most ProFields. DDEV for local development.

Thanks @elabx! According to the docs RockMigrations doesn't support all ProFields. Have you found a workaround for that issue? Is the documentation out of date and they're now supported by chance?

  • Like 1
Link to comment
Share on other sites

1 hour ago, ryangorley said:

According to the docs RockMigrations doesn't support all ProFields. Have you found a workaround for that issue?

The "raw" ProcessWire API, is a bit more verbose but not really a show stopper.  Also to be clear with API I mean  the whole deal of classes involved in the admin or pages/fields like Field, Fieldtype, Inputfield, InpufieldForm, InputfieldWrapper, etc and hooks involved, not just the global $page, $pages, $input variables.

Say with RockMigrations you'd do: 

$rm->migrate([
 'fields' => [
   'some_fifeld' => [
      'label' => 'Some Fields',
      'type'  => 'title'
    ]
   ];
])

In "plain" PW API:

if($fields->get('some_field')){
  $field = new Field();
  $field->name = "some_field";
  $field->type = "FieldtypeTitle";
  $field->label = "Some Field";
  $field->save();
}

And most of this doesn't really change much with any other field. But indeed since ProFields tend to elaborate on complex things to solve, they might involve a few more steps.

 

  • Like 2
Link to comment
Share on other sites

Hi and welcome @ryangorley 👋

1. give a read to:

https://processwire.com/about/what/

and

 

2. refer to #1

3. the very first one tool you and the team need while working with ProcessWire is:

https://adrianbj.github.io/TracyDebugger/#/

https://processwire.com/talk/forum/58-tracy-debugger/

 

Suggestions:

- keep an eye on @Robin S gems (modules) handy on every situation:

https://github.com/Toutouwai

- subscribe to weekly.pw

- and do not hesitate to search and use the forum, even for "i will feel dumb" questions.

Enjoy 😄 

  • Like 3
Link to comment
Share on other sites

On 8/24/2023 at 10:05 PM, ryangorley said:

for GNOME and Ubuntu Desktop, and more recently helping Thunderbird redesign their website

The people around might enjoy and maybe even love ProcessWire. As it is free, as in beer and in freedom. At least outside the ProModules and some other third-party modules. Yet, with that background, you probably could make bonus points in one way or another. The ProcessWire docs are probably one of the best, the API is easy to understand even for beginners, and the community is unmatched, absolutely awesome! Probably one of the best around. Another great option for you with ProcessWire could be: ProcessWire is probably the best CMS to run a data-driven website.

But back to your questions, and a very warm welcome.

On 8/24/2023 at 10:05 PM, ryangorley said:

Have you found it difficult to convince clients to use something other than WordPress? What do you tell them, if so?

Most clients who used and knew about WordPress just knew the name and were told it was awesome. Almost all were annoyed by those upgrades each and every day and that things broke once in a while that resulted in another invoice to fix those issues. So... no, most of my or our clients looked for something that caused less stress and minor headaches. We market our websites as helpers, that do most of the jobs and take care of some parts of the site and even remind editors to do their job. But that's another story.

Those who wanted to keep WordPress didn't become clients and were directed to other agencies that knew WordPress. That easy.

On 8/24/2023 at 10:05 PM, ryangorley said:

If you've worked in the WordPress ecosystem, what do you miss?

Some plugins, aka modules, from WordPress would be nice-to-have, yet we have absolutely everything around in one way or another. ProcessWire can do things just with its core capabilities that WordPress needs at least one, two, or even more plugins for. For example: ACF, CustomPostType, Caching. It's all there—maybe no batteries included, but you could just add those/whatever you need, especially in terms of ACF and CustomPostTypes. Caching is a bit more tricky, yet even for beginners, it is quite easy to handle (just like me, years ago, in 2016 or so without almost no knowledge about PHP or ProcessWire). I'd go this far and say ProcessWire is a great way to start a PHP-Dev journey.

On 8/24/2023 at 10:05 PM, ryangorley said:

What are your top three (or more) dev tools or must have modules for making ProcessWire life easier?

RockFrontend has an easy built-in page reload on file changes. It's probably my most-needed feature ever. Besides that, I use Rockfrontend or TemplateEngineFactory to enable TWIG support (others enjoy LATTE more, but ok). While it seems that almost 95% of us here use TracyDebugger, I am not using it for the following reasons: I am not a programmer or developer. I do way more frontend, concepts, and SEO so I enjoy things that make my life easier, like LazyCron, ProCache*, FormBuilder*, ProFields*, and some additional 3rd-party modules to fix and boost SEO, like SEOMaestro, or automate things, with LazyCron, Hooks in ready.php, and maybe even some small custom modules.

The real kicker is probably: Custom Modules and/or Custom Page Classes

My preferred CMS before ProcessWire was Textpattern which was totally different, yet minimal and easy to use. It took me about a week to feel home in ProcessWire, built my first client project the same year, and never left ProcessWire - since 2014/2015. I built almost everything from simple landing pages to full-fledged projects.

See those Site of the Week entries here:

 

  • Like 5
Link to comment
Share on other sites

9 hours ago, ryangorley said:

Thank you for the reply. I can't say I understand how this works fully yet, but thank you! I may be asking for clarification later 😄

Sure mate, come back at it anytime!

  • Like 2
Link to comment
Share on other sites

@wbmnfktr Really helpful information. Thank you! I love those sites you built and shared as well.

I wanted to start doing things the ProcessWire documented way before layering on too many third-party templating tools so I've been building my first site using markup regions to render the front end. This approach is very foreign to me. I think direct output is closer to what I've seen and used in WordPress. Do you think there is merit to learning the methods in the documentation or should I just jump to trying RockFrontend or TemplateEngineFactory (with the TWIG / LATTE goodness)?

 

  • Like 1
Link to comment
Share on other sites

Hi @ryangorley and welcome to ProcessWire and the forum. Thx for your introduction, this sounds impressive and it sounds like you can have a lot of fun with PW and maybe even help us to make PW more popular one day as PW really lacks good marketing in my opinion, but that's another story 🙂 

Back to your questions and back to the mentioned modules RockMigrations and RockFrontend, which I created.

On 8/24/2023 at 10:05 PM, ryangorley said:

Have you found it difficult to convince clients to use something other than WordPress? What do you tell them, if so?

This is definitely a topic for me and I've talked to many other PW devs and it's a topic for many. I don't know what to do about that, but it's a fact that PW is very unpopular and infamous and it's also a problem for many that it's basically developed by one single guy somewhere in the world and nobody really knows what happens if something happens to Ryan. Also I often hear from clients that with wordpress they just use google or youtube and instantly find a solution for their problems.

If that is good or bad is another story (I'm talking about the plugin ecosystem and the idea that anybody can build a website without any knowledge). But in my experience this is a very common opinion or perception among clients when they think about websites. "WordPress is so easy to use" is another one. On one hand I totally disagree, because the PW backend is usually so much cleaner than WordPress and my clients usually can manage their websites on their own instantly without any education, but on the other hand every website that we create with PW is an individually developed piece of software and works like the developer thought it should work.

There are almost no restrictions and no standards, which most of us here love because we can develop everything the way we want and we think it's best, but on the other hand everybody knows how hard it can be to take over a PW website that someone else developed...

Maybe it's a little like Windows vs. Linux - you can customise Linux a lot more, you have a lot more options, you have a lot more security, maybe a lot more power and possibilities. But it's more work. Windows is easier to understand. It has a solution for everything that you just install (like WP with its Plugins). Is it hard to convince clients to use Linux instead of Windows? I guess nobody here knows that better than you 🙂 

On 8/24/2023 at 10:05 PM, ryangorley said:

What are your top three (or more) dev tools or must have modules for making ProcessWire life easier?

  1. RockMigrations
  2. TracyDebugger
  3. RockFrontend

RockMigrations is #1 because it installs #2 and #3 for me 😄 Actually the very first thing I install is RockShell, but that might be very opinionated and advanced. RockMigrations is also advanced whereas Tracy and RockFrontend are a no-brainer in my opinion.

TracyDebugger

A must-have for me in every project. It made me understand PW and PHP a whole lot better. It makes me a lot faster in my everyday work. It's an invaluable tool and I can't thank Adrian enough for developing it and sharing it with us. Pssst: https://github.com/sponsors/adrianbj

11 hours ago, ryangorley said:

I wanted to start doing things the ProcessWire documented way before layering on too many third-party templating tools so I've been building my first site using markup regions to render the front end. This approach is very foreign to me. I think direct output is closer to what I've seen and used in WordPress. Do you think there is merit to learning the methods in the documentation or should I just jump to trying RockFrontend or TemplateEngineFactory (with the TWIG / LATTE goodness)?

The beauty of PW is that you don't need all this if you don't want to! Just use direct output for your first project and just put <?= $page->something ?> in your template files and enjoy the magic.

Once you are familiar with the basics and you found out about the limitations of direct output have a look at the delayed output approach.

I've been using markup regions for a while, but I don't like them any more. I think they are confusing and I think they should be removed from the default profile as they are adding another layer of complexity that should not be there at the very first impression that someone gets when discovering PW. Usually PW does a really good job in hiding complexity. It is really easy to use from the very beginning (both for the developer and the clients) but it provides all the power once you get more familiar and your projects get more complex.

Markup regions violate this concept and your statement seems to support that impression.

RockFrontend

Whatever output approach you choose RockFrontend can make your development life a lot easier. It does not dictate you anything and there is not really anything you need to learn unless you want to. You can use RockFrontend solely for it's invaluable live reload feature. Just enable it in your config and you get instant reloads whenever you change a file.

This can even be combined with TracyDebugger: I'm often using /site/ready.php to quickly test something and I'm using bd($foo) to dump the result to the tracy debug bar. Whenever I save the file I instantly get the result in my tracy bar without moving my hands away from the keyboard. Productivity 🚀

If you want, you can then discover all the other great options that RockFrontend provides. LATTE/TWIG for example which is really just "echo $rockfrontend->render(your/file.latte);" or helpers for asset handling (you get automatic cache busting timestamps for example). I've created a video about all that one year ago:

But again: If you only want to use the live reload feature - only use the live reload feature and nothing else 🙂 

RockMigrations

This is a gamechanger. For me and in the meantime for several others. But it is totally worthless for others.

It's an advanced module, but this does not mean that it is hard to use. Quite the contrary is true. Once you get the concepts it is really easy to use and it makes you a lot more productive and a lot more professional. It's like driving a car vs. going by foot. Learning all the rules and signs is not that easy. It takes some effort. But driving the car itself is not hard. It's in fact very easy. Steer, gas, break. That's it.

When using RockMigrations you simply do in code whatever you usually do via mouse clicks.

$rm->createField(...);
$rm->addFieldToTemplate(..., ...);

That's it. If you prefer to do that manually - do it manually. Carrying a bike from A to B might be easier by foot than by car. You might even ride the bike which makes it even easier if the road goes downhill. But what if it goes uphill? A car might be easier. What if you need to carry two bikes or three? A car might be easier. What if you want to carry the bike 200km? A car might be easier and a lot faster.

So if you want to create reusable components (like modules) RockMigrations can be invaluable for you. If you want to develop projects in a team of multiple developers RM can be invaluable for you. If you want to deploy your project to several places (like DEV/STAGING/PRODUCTION) RM can be invaluable for you.

Video time again 😉 

Have fun with ProcessWire!

PS: As @elabx mentioned DDEV is a great tool as well! I've done a talk about it lately and the video about it will be on my channel next week, so if that's interesting for anybody just subscribe to my channel or to the Rock-Monthly newsletter: https://www.baumrock.com/rock-monthly/

  • Like 3
Link to comment
Share on other sites

13 hours ago, ryangorley said:

I wanted to start doing things the ProcessWire documented way before layering on too many third-party templating tools so I've been building my first site using markup regions to render the front end. This approach is very foreign to me. I think direct output is closer to what I've seen and used in WordPress. Do you think there is merit to learning the methods in the documentation or should I just jump to trying RockFrontend or TemplateEngineFactory (with the TWIG / LATTE goodness)?

Markup regions are a super interesting concept but I never really used them. It always felt a bit weird. So can't say that much about that concept in everyday use. I prefer using Direct Output. There is absolutely nothing wrong with it. I'd go so far and say it's the perfect way to start playing with ProcessWire. All you really need are some echo and foreach statements to start.

That's the code I needed to start exploring the base concepts of ProcessWire.

echo $page->yourTextField;

foreach($page->yourRepeaterField as $repeaterItem) {
	echo $repeaterItem;
}

You will see results pretty fast and will see how some field types differ or behave in one situation or another. Create a few demo projects, break them, try to fix them, install them again and start over.

The moment you know how templating / output strategies work in ProcessWire look into something like TWIG or LATTE. To use these you should know a bit more about how ProcessWire, fields, templates, output strategies, etc. work.

Start here: https://processwire.com/docs/tutorials/

Even though this video is quite old and the backend looks outdated 99% of this is still true and works in the same way:

 

  • Like 1
Link to comment
Share on other sites

6 hours ago, bernhard said:

I think they are confusing and I think they should be removed from the default profile as they are adding another layer of complexity that should not be there at the very first impression that someone gets when discovering PW

A bit off-topic, but I just realized this exact same thing when teaching ProcessWire to someone, it can be a really confusing concept since it's a "PW-only frontend" concept. I still use it but lately been thinking of switching to a templating language.

  • Like 2
Link to comment
Share on other sites

@bernhard Thank you for this thorough response. Thanks also for making those videos. When I was trying to learn more about ProcessWire these were some of the first I watched, and I'm looking forward to the DDEV video. Because I work on an Ubuntu LTS workstation, and host on Ubuntu LTS servers, it has been easy for me to be lazy. After I figure out how things work in PW I would like to make it easier to get more skilled developers involved on projects, so having an easy-to-reproduce development environment and a better development workflow will be important. I hope especially to figure out how to deal with synchronizing databases between development and production sites.

I'm so tired of refreshing the page. I'll be putting RockFrontend to use immediately!

@wbmnfktr I think I will take your advice on the direct output and I agree @elabx that changing the default install would help beginners. Even using the more verbose `pw-id` attribute instead of the HTML id would have helped me get started more easily. I still find it hard to predict which template inherit's content or position from which. The debugger helps, but it's an unfortunate requirement in an otherwise intuitive experience. That's just my experience.

Thanks again to all for the warm welcome and fantastic advice. Community is what I really love about open source projects.

  • Like 2
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...