Posts by JayW

    "Trusted by many businesses".. the first business mentioned is DeskGo, which is a Wordpress site. Why call it Perch Design Runway? Makes no sense.

    But don't worry, web polls are coming soon or something.

    I presume payment can be made annually? It's only about US $50 per year, so annual payment makes sense. Monthly payments are better suited to services that actually deliver something every month. Streaming services for example. But for just a license to use software that otherwise doesn't change very often, annual payment would suit the product more.

    Looks like it can't be done at the collection item level.

    I use perch_collection() on the search page to query collection items, it's more powerful and flexible. And I leave perch_content_search() for non-collection general site search. Both a processed at once, pre-processed then echoed the usual way: "echo $col_item['html'];" and "echo $search_general;" .

    Then you could add a checkbox to the collection item template "exclude from search" and modify your search page to filter this in the collection query.

    Let them do their thing behind the scenes. Sounds like something is happening, maybe just go with the flow! They run things at a slower pace, but it's not end of the world.

    Just remember what Drew said about Runway - it's the CMS he "always wanted to make". Standard Perch was a stepping stone to Runway - which is still good for smaller sites. Just pass on license cost to client. The "power" of Runway is under hood and in collection items, which you can ignore and only use content regions if you wish, like with basic Perch. I'll be glad if the focus can be on one product, as that may mean more confidence for everyone. But at this point, it's all speculation I guess.

    I've purchased licences before with no problem, this time however Perch have taken my money but the licence keys are not listed on the page you suggested. Is there any way to contact them other than this Forum?

    Did you get an email confirmation on the day you purchased? I don't see how they took your money if the transaction didn't process, and you didn't get an email.

    If you bought the license on the perch website, it says on the cart page...

    "If you have any questions or concerns email us on"

    So I guess try your luck with that email!

    GoDaddy to the rescue!

    Remember that many big companies and popular sites have seen SSL certificates expire from time to time. Usually fixed quicker than 2 weeks, but I wouldn't call grabaperch a critical dependency like NASA or LinkedIn or the US government - all of which have had SSL expiry issues in the past affecting millions of people. :-)

    All opinions aside, Perch at this stage is Abandonware.

    False. The product is still sold and distributed. You can download the software from a secure server, register and manage your account and licenses, and post right here on the SSL certified perch forum. The accounts domains and runway domains are still good.

    The SSL certificate expiry is just the site, which has outdated info on it anyway, such as Drew's post from 2019 talking about version 4.

    You could always just allow the exception in your browser to load the non-SSL page. Remember, the entire internet was once "http", it's not the end of world that it's expired.

    Or just stick to Runyway, if you need non-expired SSL for the promo site. It's a better CMS. Drew stated that Runway was the CMS he always wanted to make. So it was 10 years in the making, and is still very good software. Basic Perch was a stepping stone to Runway.


    there is no other conclusion

    I've just provided a different conclusion.

    Yea this is a dead project they even let the ssl on their domain expire.

    The two man band before them where able to maintain perch and release new features while still keeping up their day job.

    It's not dead, you're posting on the perch forum right now aren't you? There's a few different domains,,, These are still running.

    For quite awhile there was nothing but radio silence from the "two man band" core developer because he was busy looking for a buyer to take Perch off his hands, and also apparently busy uploading cat photos to Twitter and looking for a new job.

    Lack of updates and communication was already a problem before new owners took over. But for some reason you have missed that, and are thanking Drew anyway! Okay.. but know that he dropped the ball and made promises that didn't eventuate. Blame game isn't fun though, it's better to talk about website projects and how to make interesting things!

    It's safe, don't worry, Perch forms are not vulnerable to attacks unless you do something to make them vulnerable, or your server environment is old or compromised.

    The guy who originally made Perch was conscientious about the details, and he went on to work at a security firm. He did not leave security holes in Perch.

    If you're processing user input in some in-between step, like storing it as PHP variable then echoing it later, that's where you need to be careful. Just make sure you escape or clean any such data.

    Maybe someone else can offer insight but all forms get spammed with junk including code. If it's going to your spam folder then your forms are working.

    Perch is an awesome choice simply because you can use it to inject information from a MySQL database or otherwise from PHP directly

    Agree, it's still an awesome choice because it's simple to get a quick website going, and more than enough for many use cases. Dirt cheap one time payment. For the money, you get software that can be installed on a web server and runs well on cheap hosting because it's an efficient application. This alone should be enough to tempt new users.

    I only use Perch Runway, the big brother of Perch basic. New users should know that Perch Runway is very powerful, scales well and performs well even on limited hosting plans. And with just a bit of dabbling in basic PHP and a few Perch functions, a huge amount of stuff can be achieved for a flexible, dynamic site. You don't need to be a full-stack engineer, you can have basic frontend skills and achieve many things. Runway is the CMS that Drew the original developer said he "always wanted to make". So 10 years in the making, still very good software.

    All software has quirks or outdated bits. Fortunately in my case, Perch Runway keeps ticking along fine and I can work around any lacking aspects. I've asked a lot of it... the amount of queries I have thrown at Runway, and the enormous custom templates and conditions piled on top of each other... Perch Runway takes whatever I throw at it. No updates for awhile means rock solid stability and predictable behaviour!

    Only about 1% of PHP based websites are on PHP8, as of November 2021. [1]

    Don't stress. PHP 7.4 is good, it's not full of security holes like the old days of early PHP versions. You'll be fine on PHP7.

    Literally millions of Wordpress sites will not be updating to PHP8 any time soon. Stuff will break if they do. The recommended version of Wordpress is currently 7.4.

    The "performance benefits" of PHP8 over 7, will probably in real-world terms be negligible.

    If you must join that 1% of PHP8 websites, then test your sites and observe issues. You might get a few warnings, but if no errors then maybe you'll be fine.


    I had honeypot and askimet but just ended up getting a lot of spam.

    Personally I avoid Google Recaptcha. No need to invite Google into your form submissions.

    It's possible to make your own anti-spam, using combinations of the honeypot field, javascript and other methods.

    I solved spam submissions on one client's contact form by pre-filling the honeypot field with a value, then looking for the string "http" in the textarea field on blur. Only if the string is not found does the honeypot field get cleared via javascript. Pretty much all spam contains links, and the client was never expecting or wanting people to add links to this field.

    This is a highly effective but brutal approach. No spam-bot will clear the honeypot field but populate others. So it's a reverse approach to the intended use of honeypot, but I found it works extremely well if you don't mind culling all messages containing "http".

    But on another site, I used an different approach for member sign-ups. Splitting the form into two pages. The first page uses a standard Perch form, with basic question or two, and javascript-only submit button. The form's action points to second page containing the actual member sign-up form. On the second page, in PHP you examine the POST data, and determine if you trust the submission. You can look for all kinds of things, or ask the user anything on first page, such as "are you a robot?", asking the user to type "no". Or you can ask them any kind of question that is relevant to the purpose of the form, or some easy maths question or anything. I used "what country are you in" for a form expecting submissions from one country only. On the second page, examine the POST data and go from there in how you handle things. You could for example re-direct to a third form for "somewhat untrusted" so they require manual approval for sign-ups.

    So many possibilities to make your own anti-spam methods without using third part services. Spam bots are dumb. It's not hard to out-smart them with very simple questions.

    I hope someone can help me out!

    > "Sending welcome e-mails with the setting "New members require approval" turned off."

    Simply click save on the member's detail page with the welcome email checkbox checked. Their status needs to be active.

    > "Preventing auto-login when a new user registers."

    In the member form settings, check "New members require approval".

    > "Any way of using verification tokens/links for new members. I have tried fiddling around with Pipit Members, but unfortunately without any luck. The Pipit documentation seems to be very short."

    Yes the pipit_members docs are missing some details. I have it working and it's very useful, but there's a few things to be aware of.

    It's important to know the verification is not "secure", as mentioned by Hussein on Github. It means you shouldn't use the verification to grant members any more privileges than unverified members. Treat it like a minor signal. In my case, I use it as one of many signals to verify member integrity. The member gets a green tick on their profile page, which looks nice because who doesn't like a green tick!

    Things missing from the pipit_members docs that weren't obvious to me:

    You need to add a "verify.html" template to your /perch/templates/members/emails folder. In that template, your verification link will look something like below... note the id of the token.

    https://<perch:email id="http_host" />/member-profile/verify-email?token=<perch:email id="verify_token">

    The form which sends the email can be called like any form...


    And that form lives in templates/members/forms, and what it looks like is in the pipit_members docs.

    I ended up adding a "pending" tag based on both the 10 minute timer, and whether someone has clicked the email link, and doing a few extra things to make it all run smoothly, but that's optional.

    The best thing about pipit_members is how the member doesn't need to log out and back in to see any updated tag assignments. Also being able to query an individual member by email address to check if they have a tag is also a game-changer over the basic members app. It means you can build member admin pages separate from Perch control panel for members you've assigned as staff for example. But note there's a minor bug in the app (I think) which causes an error if you search by member email instead of member id... So for example :

    if( pipit_members_has_tag('email-verified',$member_email) ) {

    This caused a server error for me, so instead you can first find the member, then id and use that instead of email :

    $the_member = pipit_members_find( $member_email );


    $the_member_id = $the_member['memberID'];

    then the below will work without error...

    if( pipit_members_has_tag('email-verified',$the_member_id) ) {

    Even though the Members app is limited, once you add pipit_members, you can build a lot of things on top for managing tags and doing interesting things with member account profiles and different member tiers. Importantly, you can build things without going too deep into PHP apart from a few conditional statements etc.

    Currently looking at ExpressionEngine. Just from a quick scan it looks a bit similar to Perch. The cost of support looks a bit steep though.

    I can't speak for latest version, but I worked with a previous Expression Engine which I didn't like. I think it was version 2 or 3. I understand it's received major updates since then and is open source.

    I found the channels model confusing, not intuitive. The interface was not great. It was a site I inherited at work, not one I built. I rebuilt the site in Perch Runway and its still going strong. But a CMS choice for one person might not be good for another, and it all depends on project requirements and how much you like working with it. I didn't actually know that Craft was so expensive with the e-commerce option... that actually sounds intriguing (mentioned in other thread).

    Vapid looks source with a small group of contributors. That would be a better model for Perch than the current astonishing levels of neglect.

    LOL I'll take neglect over crashing and burning....

    You just never know what will live and what will die.

    "Sadly, the Vapid hosting service and CMS platform have been retired. Thank you, though, for your support and interest. Please check back down the road for the next chapter."

    I'm just working on a Snipcart + Perch thing so I'd be very interested to see that.

    Sure, I'm still in test mode but the build is close to done and I'll share what I can when ready. The general technique is more important than the actual code I wrote.

    There are limits of course, but it's all about working within the limits!

    I'm assembling the snipcart options code during the collection item function call before it's rendered. So basically the snipcart code starts out as a blank hidden collection item field. This allows all kinds of pre-processing of the price to happen such as things related to membership login, server time, URL components, or whatever else. The trick is taking advantage of Snipcart's custom data values, the "value" of which can be changed with javascript. The final rendered snipcart button code may contain quite a lot of data in the "data-item-custom1-options" (this is the limit I mentioned), but I've found it works fine even when heavily populated with many options... I have about 60 or so options, but I assume you could take it further.

    Obviously in the cart, you would hide the options drop down. so people only see the main product they ordered, and a one-line summary of the options they chose. If they wish to adjust options, they'd do it from the page containing your web app and HTML forms - which is not a problem because the cart is just an overlay on that page anyway. This allows users to dynamically assemble the product options before the cart, in a manner that you see fit. And that's just one collection item.. you can use standard list-detail to replicate this over your other products.

    It points to the power of perch collection items, and Snipcart's flexible system for handling the data. This is what I mean when you can find ways to use Perch as is, and make interesting things despite lagging updates or minimal communication!

    All the best.

    How can a product which obviously is rudderless and with no communication be a good option?

    Because of what you make with it. Perch gives you a database and a few other things, and away you go. It's software you can build stuff with.

    You admitted to being "guilty of re-using licenses" in earlier post. Now you're angry about not being able to transfer those licenses.

    You said you're sitting on "16 unused licenses". Why buy so many in advance? If you used them previously with clients, then consider that cost like a subscription, now expired.

    Basic Perch is cheap... $69. I've seen one-trick wordpress plugins cost more per year. Like WooCommerce's "Table Rate Shipping" $99 per year. It gives a few extra shipping options, nothing more.

    New Perch owners since January. It's not *that* long. It only seems a long time because Drew was unhappy for so long and wanting to move on.

    Regarding "recommending Perch" to clients. Most non-technical clients won't care about the software name. You're selling them a dynamic server-rendered CMS solution using a LAMP platform. Personally I hide all Perch branding. I'd never recommend anything other than Runway if you're a developer. Perch basic is better for lightweight solo projects rather than building things for clients. But even then I'd use Runway.

    Maybe you should direct your license buyers to the Perch website to pay the $69.