• Index
  • » Users
  • » webdevtim
  • » Posts



Jun-18-15 20:07:23
Post to Channel Not displaying
Category: JFBConnect

I have reviewed all the documentation about how to post to channel, but even though "Post on Social Network." is enable for my user type and Front End editing works, I don't see "Social Meta Tags" or "Create Post."

May-09-15 14:03:42
How Long Does It Take for Facebook to Approve an App
Category: JFBConnect

OK, now I have to re-submit our Facebook app and get it approved. I am still seeing a lot of variability from CloudFlare, but maybe it just needs a day to settle down and then it will be more consistent.

May-08-15 19:31:04
How Long Does It Take for Facebook to Approve an App
Category: JFBConnect

Found the problem:

I sent a link to a single image to my email account and when I tried to open it I got this:

Error 1011 Ray ID: 1e38e973b10f07d9 • 2015-05-08 23:23:21 UTC
Access denied

What happened?

The owner of this website (www.911truthoutreach.org) does not allow hotlinking to that resource (/media/com_acymailing/upload/Timothy_In_Suit.jpg).

CloudFlare Ray ID: 1e38e973b10f07d9 • Your IP: • Performance & security by CloudFlare

The problem resided with CloudFlare as I had thought, but the solution was really simple.

CloudFlare has a security feature called "ScrapeShield" and a setting in that called "Hotlink Protection."
I turned that off and the problem went away. I have asked them if I can selectively use that by adding a custom attribute to img tags that I don't want scraped. Interestingly, no one at CloudFlare thought to suggest that this might have been the problem. they responded that there is a way that I can selectively add Hotlink Protection.

May-07-15 22:46:05
How Long Does It Take for Facebook to Approve an App
Category: JFBConnect

This is getting beyond what we can do with JFBConnect. In general though, I'd probably recommend using the addCustomTag call instead where you can add whatever custom HTML you want. You'll have full control then.

That is what I did. It would still be nicer if Joomla would have a first argument that could be a custom attribute.

That's extra strange that there was a hit, but it took 3.55s to download. Not sure what's happening there, but hopefully Cloudflare can help determine where the bottleneck is.

That seemed odd to me as well. It has been two days and CloudFlare hasn't gotten back to me.

This is the html that gets generated from the modification I made to their mijoshopjquery.php file


  <script data-cfasync="false"  type="text/javascript" src="/plugins/system/mijoshopjquery/mijoshopjquery//ui/jquery-ui-1.8.16.custom.min.js"></script>
  <script data-cfasync="false"  type="text/javascript" src="/plugins/system/mijoshopjquery/mijoshopjquery//ui/jquery-ui-timepicker-addon.js"></script>

There are a half dozen more tags that get generated, but you get the idea.

But yes, this is way beyond JFBConnect support.

May-06-15 20:23:16
How Long Does It Take for Facebook to Approve an App
Category: JFBConnect

I understand enough about CloudFlare to create Page Rules and how to prevent "RocketLoader" from aggregating certain JavaScript that doesn't work with their aggregater. I have spent time with them which is why I get 1.5 to 2.5 second load times now. They are working on figuring out why I am getting the anomalous 3.6 to 6 second load times for an 8K jpeg.

I have another problem that Joomla has to address and that is adding another argument to


addScript(string $url, string $type = "text/javascript", boolean $defer = false, boolean $async = false) : \JDocument

so that I can add



ahead of the src= attribute. I need this for Mijoshop JavaScript. Something like string $cust_attrib ahead of string $url would do the trick, I don't see a way to do this without using JavaScript to modify the script tags after the fact, but not sure that would even work as RocketLoader will have already finished aggregating before the JavaScript would run, Hope I can get Joomla to modify their addScript() function.

I will try canceling the application and re-submitting because perhaps it has been flagged as unresponsive.

Alex, you don't need to respond to this, I am just providing it to give clarification to what I was talking about:

Below is what GTMetrix shows for one image, load imte of 3.55s, total onload time was 4.73 seconds and time to first byte from origin server was 678ms. Those two items took 4.228s to load. So this one image was holding up the entire load process. This is also random. It can be this image this time, and another image another time. It is having the effect that when our Newsletter is received in the email client, only some of the images display, because I assume that the request for the other images timed out before the response from cloudflare-nginx server was sent.

GET https://www.911truthoutreach.org/images … bris-2.jpg 200 OK 911truthoutreach.org 23.6 KB 3.55s

Response Headers

Server - cloudflare-nginx
Date - Thu, 07 May 2015 01:33:12 GMT
Content-Type - image/jpeg
Content-Length - 24193
Connection - keep-alive
Last-Modified - Sat, 07 Mar 2015 19:53:33 GMT
Cache-Control - public, max-age=604800
Expires - Thu, 14 May 2015 01:33:09 GMT
CF-Cache-Status - HIT
Vary - Accept-Encoding
Accept-Ranges - bytes
CF-RAY - 1e292cd6a7c81bc1-SEA

Request Headers

Host - www.911truthoutreach.org
User-Agent - Mozilla/5.0 (X11; Linux i686 on x86_64; rv:25.0) Gecko/20100101 Firefox/25.0
Accept - image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language - en-US,en;q=0.5
Accept-Encoding - gzip, deflate
Referer - https://www.911truthoutreach.org/
Cookie - __cfduid=dbb8c07b184428823dd5b9faf2aa1f57a1430962388; 35dc0a8e0f67946a84f2745332a1326d=fki90m67rkpigi0vut1q7o56e2
Connection - keep-alive

May-06-15 13:41:16
How Long Does It Take for Facebook to Approve an App
Category: JFBConnect

I have been waiting for a month, and still Facebook hasn't gotten around to approving our app and I haven't heard a word from their engineers.



The Recommend Button.

How do I get their attention?

I am getting page load times that vary from 1.29 seconds to 9.69 seconds. Most of the time page loads are under 3 seconds however once in awhile something freezes up.

I have noticed that CloudFlare randomly takes over 4 seconds to load something like an 8K image. The response server is cloudflare-nginx so there is little doubt that it is CloudFlare that is failing to deliver the image in a timely fashion. This happens at random however. But if it happens when Facebook is attempting to evaluate the App, if could cause a timeout error in which case the App wouldn't be evaluated and approved. I have submitted a ticket to CloudFlare for their perspective. How should I resubmit the request for approval to Facebook in case that they attempted to evaluate the App but it timed out?

Just when I think I have most of t he fires under control a new one flares up.

I just wanted to get the existing website stable so I could re-write everything. I want to re-write the template from the mobile first perspective and keep things as simple as possible so that load times can be kept under 2 seconds without having to resort to aggressive optimization. I just want things to be working so we can generate some revenue through donations and sales so that I can keep doing this work. Sounds simple huh. OK back to addressing the JavaScript issues with our online store.

Apr-08-15 21:09:08
Action is tested appears on test account Facebook page, now I need to submit it for approval
Category: JFBConnect

Thanks a lot for a great component Alex. there is always something in the multitude of processes that slips through, I mean just look at Microsoft, they only get half of their processes working correctly before the release a product. So I think you are doing better than they are. Hell you are doing incredible, I am getting a feel for just how hard it is to get everything right.

I didn't enable Browser Caching because I had read somewhere else that caused problems. And I can understand that it would get in the way of authentication because the browser version of the page would be static and authentication needs that page to be dynamic. But I didn't think about this, so thanks for the heads up here.

There Error Check tool works without issue, I have learned that ordering of plugins is important. JotCache also released a new version of JotCache because I complained about it not clearing JCHOptimize. Now JotCache clears JCHOptimize when system cache is cleared with the JotCache plugin enabled.

I think I have three great components now. JFBConnect, JCHOptimize and JotCache. The more I use them the more I realize just how powerful they are and how well designed they are.

I probably should exclude com_jotcache from being cached, but I will check with them on that.

Now I just have to learn my way around all the Social Media platforms so that I can get the most out of JFBConnect.

Apr-08-15 15:34:49
Action is tested appears on test account Facebook page, now I need to submit it for approval
Category: JFBConnect

I just thought of some things. For server side Caching I have the JotCache plugin installed. Along with JotCache I have JCHOptimize installed that executes before JotCache. JotCache is last in the list of plugins to execute and JFBConnect is before both JotCache and JCHOptimize. Are there exclusions I should set in JotCache with regard to JFBConnect?

I have our name servers on our DNS registrar pointing to CloudFlare name servers and I have CloudFlare set for pretty aggressive caching, but have *911truthoutreach.org/administrator* excluded on CloudFlare. I thought that since admin is excluded, nothing from JFBConnect would get cached. But I am not sure about JotCache. Seems to me that unless I set an exclusion for JFBConnect, JotCache may cache JFBConnect settings as well as front end stuff.

Any thoughts?

Apr-08-15 11:38:50
Action is tested appears on test account Facebook page, now I need to submit it for approval
Category: JFBConnect

Yes I did "Save Custom Setting," as "Save All Recommended Settings" replaces all the setting entries with the recommendations on the right side. I under stand that. but when I "Save Custom Settings" after deleting the URLs from the "Page Tab URL" AND "Page Tab Secure URL" text boxes, the values still get reintroduced back into those text boxes.

I was able to get the App back into the review process by Facebook, so I will just wait until they approve it before doing anything in JFBConnect on the site, because if I  save the settings for Page Tab in JFBConnect those settings get transmitted to the Page Tab settings in the Facebook developers page as well which would scuttle the approval process because I have no Page Tab define on Facebook.

Apr-07-15 22:06:15
Action is tested appears on test account Facebook page, now I need to submit it for approval
Category: JFBConnect

I got the App resubmitted to Facebook, but the Autotune -> Facebook App -> Page Tab still has the Page Tab URL and Page Tab Secure URL filled in. No matter what I do the program logic adds the URLs back when I save. I assume that it is checking Facebook. But I have removed the Page Tab from Facebook. Actually if I save in Autotune, the Page Tab gets added back to the Facebook App on Facebook.

Apr-07-15 19:51:06
Action is tested appears on test account Facebook page, now I need to submit it for approval
Category: JFBConnect

Did as you advised, Got rid of Page Tabs on Facebook, and refreshed in Autotune -> Facebook App, which fixed the URL issues, but under Page Tab, it has the Page Tab URL and Secure Page Tab URL filled in. If I try to removes the Page Tab URLs manually and save, the removal fails. Do I have to wait for a specified interval before JFBConnect can detect that the Page Tab has been removed from Facebook?

Apr-06-15 20:27:22
Action is tested appears on test account Facebook page, now I need to submit it for approval
Category: JFBConnect

I meant whatever plugin goes with "scsocialbuttons"

Also, should I delete the entry made in "Page Tab Default Name" as well?

I can't get rid of the Page Tab data either in JFBConnect or on developer.facebook.com

I didn't notice that the domain got changed in JFBConnect -> Autotune -> Facebook App. I had made a duplicate copy of the site on our dev site (I cleared everything on the dev site including database before copying the live site to the dev site) and though I didn't touch anything on JFBConnect, the domain got changed to the dev site sub-domain and all the Facebook entries were updated to reflect that. After I finished updating everything on the dev site I copied the dev site to the live site (I cleared the live site of everything including the database) and made the necessary changes to ,htaccess and configuration.php and thought I was goo to go. Now JFBConnect is complaining that I am not using the JFBConnect Recommendations which suggest the dev site URLs. Must be somewhere I can go to get rid of those dev site suggestions.

Apr-06-15 19:37:36
Action is tested appears on test account Facebook page, now I need to submit it for approval
Category: JFBConnect

OK, thanks Alex.

But I have the Social Media Plugin displaying at the bottom of the articles, I did this because I wanted to convey a slightly different meaning that like, which was Recommend. And the behavior of Recommend is slightly different than like. I can modify the standard Like to convey this slightly different meaning and display the content in a slightly more novel way?

Apr-04-15 19:05:18
Action is tested appears on test account Facebook page, now I need to submit it for approval
Category: JFBConnect

In Facebook -> OpenGraph -> Stories, I created a Story called, "Recommend an Article", and assigned it an Action Type of "Recommend," and an Object Type of "Article." In Facebook -> OpenGraph -> Actions, I created an action called, "Recommend." In Facebook -> OpenGraph -> Objects, I modified the Object Type "Article,"

In Facerbook -> Status and Review, I have an app called "9/11 Truth Outreach on the Move," I set "Do you want to make this app and all its live features available to the general public?" to "Yes." There is an information box below that question that reads, "Continue your submission," and below that there is an instruction. "To continue with your submission please visit Items in Review." When I click on Items in Review a page opens that has two columns, "items" and "Add Items to this submission." I added "Recommend-Recommend an Article" to the list of items for the submission. I uploaded all the screenshots for the "Recommend" button on the website, starting with the page that has the "Recommend" button, to the popup that opens asking for comments and to confirm, to the post that appears on the Facebook page for the test user.

The problem is that "Facebook Login Integration" is filled in, "Test User" is filled in, "Page for Testing" says "no available pages" "Create a New Page?" I don't understand what they are asking for here. Screen shots are filled in including a screenshot of the JFBConnect "Overview Panel."

I can't continue the review process until the "Page for Testing" tab is filled in on Facebook.

Our Facebook page is "https://www.facebook.com/911truthoutreach.org"

In Joomla -> JFBConnect -> OpenGraph -> Actions, I have "Recommend," Which has an "Object Association" of "Article", which is a "K2" "item." In Joomla -> JFB Connect -> OpenGraph -> Objects I have "Article" defined which is a "K2 extension" with "Layout," "Item" and "Object Type" "article," which is a default object type.

Is there something I have done the wrong way here?

Apr-03-15 22:44:42
Action is tested appears on test account Facebook page, now I need to submit it for approval
Category: JFBConnect

Hello Alex. I got the load time down to around 2.5 seconds and now I am ready to submit the "Recommend" button for approval, I am just not exactly sure what I have to do at this point and your instructions seem a little fuzzy and Facebook isn't very clear either.
see: "Need all JavaScript and Images to be local" for some history on this issue.

As I said I have tested the "Recommend" button and it performs as expected and the results post to the test account I set up on Facebook. I just need to submit it for approval now, and I don't see a straight forward way to do that.

Mar-03-15 14:08:37
Need images from Twitter and Face book to be grabbed locally and all Javescrip to reside locally
Category: JFBConnect

Thanks Alex, I will just work on the issues you identified until I get consistent "onload" time under 3.55 seconds.

I have to install Drupal, because I want to install CiviCRM on a sub-domain and there is a module CiviEngage that requires CiviCRM to be installed on Drupal, not Joomla or WordPress. Installing Drupal was a no-brainer and setting up a chron tab to allow automatic updates isn't difficult. I will have to learn what is involved to properly install CiciCRM and it's modules however: but this discussion is for another place and another time.

Mar-03-15 11:12:48
Need images from Twitter and Face book to be grabbed locally and all Javescrip to reside locally
Category: JFBConnect

The only problem is that I elected to use K2 and that introduces a lot of overhead just by itself.

My CSS file is 12,000 lines long, I will spend the day paring that down to around 2,000 lines. I am also using Twitter Bootstrap, and I realize now that though that is convenient, it is better to just use the jQuery and JavaScript only where needed. Also if I make judicious use of @media queries, I probably don't need Twitter Bootstrap to have a responsive site which means I can avoid all the overhead that Bootstrap introduces. As far as K2, I like the functionality it introduces, I just don't like the overhead.

Thanks for all the time you have invested in trying to help me out. I wish all developers had the ethical sense of duty you seem to have.

I believe that Open Sources development is the model we should all embrace, as it is by nature a very democratic model and a model that would ultimately serve communities better than models championed by guys like Pierre Omidyar, Sergey Brin. or Mark Zuckerberg.

I have installed Drupal on a test site, and perhaps I need to be looking in that direction rather than in the Joomla direction, because I have read that it scales much better than Joomla. To bad some of the core functions aren't developed with compiled languages rather than scripting languages.

Mar-03-15 00:23:47
Need images from Twitter and Face book to be grabbed locally and all Javescrip to reside locally
Category: JFBConnect

That Alex. I just got 7.46 seconds, so it seems that CloudAccess delivery of first byte is quite variable.

We have the $10/month, and they advertise that they are WordPress/Joomla specialists. I just got them to add an Apache module that resolves CloudFlare IPs to the actual originating IPs, I wonder if that is adding and processing time. The suggestion was made by CloudFlare, and I got CloudAccess to accept that suggestion and implement it, so I wouldn't have to install yet another plugin to resolve CloudFlare addresses.

I am just going to have to continue to pare this down until i get load times around 3.5 second and then submit the JFBConnect Apps to Facebook and twitter for approval again.

Thanks for you tireless and thoughtful input.

Mar-01-15 14:47:52
Need images from Twitter and Face book to be grabbed locally and all Javescrip to reside locally
Category: JFBConnect

I set the cache time in "JFBConnect" -> "Configuraton" -> Cache Duration" to 5 hours. I don't need real time results in the module.

And I have disabled everything that wasn't being used.

Still, see: GTmetrix-report-www.911truthoutreach.org-20150301T120736-J9vUdus1.pdf and you will see what I mean by sdk.js taking a long time to connect. Sometime the total load time is 60 ms and others 768 ms and connection time is the variable.


Feb-28-15 22:23:50
Need images from Twitter and Face book to be grabbed locally and all Javescrip to reside locally
Category: JFBConnect

While possible, that's a ton of work. It also will require work every time you upgrade any extension. JCH Optimize also uses caching to store the compressed and minified files on your server so that it doesn't have to regenerate them every page load. You can do what you're doing, but JCH is likely better at it and certainly less error prone.

Yes I realized that it would be a ton of work and I realized that I would have to update my unified file every time a component, module or plugin was updated. JCH has to make generalizations in order for the plugin to work on every Joomla installation. But since you have expressed confidence in this plugin,I will do what I can to optimize it rather than discard it.

Bottom lineing ist, there's not much we can do to help. If you're really under the 4s threshold, I'd recommend disabling anything you can to get under that watermark. Then, get approved and re-enable whatever you need. Then, test and go from there to test from a real user perspective and not what some automated tools see that don't emulate a real browser.

This is a great idea, why didn't I think of it. I still need to have this site load under 4 seconds, but while I am going through code with a fine tooth comb, this will get us posting to Facebook and Twitter sooner rather than later..Thank you so much for this idea.

By the way, GTMetrix has a test for what is seen after a page is properly cached by a browser, which would be much more indicative of real world use.

Thanks, and thanks for all the other suggestions as well.

Feb-28-15 20:56:18
Need images from Twitter and Face book to be grabbed locally and all Javescrip to reside locally
Category: JFBConnect

What portion of the load time was improved? Was it the server processing time or was it the browser loading time? What tool are you using to check the loading overall? I'd recommend gtmetrix.com, but there are plenty of great tools out there.

1. It was  server specific wait time from fetching the content from Twitter and Facebook that was eliminated when I disabled the SCSocial Stream module.

2. I use either GMetrix or Firebug. Firebug is nice because it is always right there. As far as I know, GMetrix, assumes that nothing is loaded in the browser, but will report the presence of "Expires" headers in the YSlow score, not sure about Firebug.

Again, there are a few things that aren't valid with this statement:
* Most users will have already visited a site that has the sdk.js file loaded on it, which means it would already be cached in their browser. That results in a 0s load time.
* Cloudflare is a CDN. Facebook also uses it's own CDN. Moving from one to another won't necessarily speed things up further and Cloudflare doesn't actually cache all contents from every site. Just the frequently loaded ones.. whereas the sdk.js file from Facebook is always loaded over a CDN.

1. Yes they are both CDNs, however if one CDN already has the content present in it's cache it doesn't have to fetch that from another CDN. So I don't understand this.
2. CloudFlare will cache what I tell it to cache and not cache what I tell it not to cache if I create a custom configuration beyond their default settings.
3. As you say, sdk.js is most likely already loaded in the Browser, so there is no need to fetch it. But GMetrix doesn't know that. I am trying to get load times under 4 seconds so Facebook and Twitter will approve the JFBConnect Apps on the site. Actually the load time for sdk.js is blocking time, which from my understanding means it is just waiting for something else to be loaded, so it may not be contributing to the total "onload" time. I am just looking at things that appear to be taking the most time.

There are plenty of extensions for Joomla that can convert images in the output of your page to be lazy load. That's not an optimization we'd make in JFBConnect as it can be very tricky to implement properly across all sites.

Understood, I am using one called JCHOptimize. But I really want to go through and consolidate everything into one .css file and one .js file, eliminating all duplication while adding comments to delimit different sections for different components, modules and plugins and then minify those files and eliminate JCHOptimize which itself has a load time footprint.

My biggest delay is the time it takes the host server to assemble the dynamic content and deliver it to CloudFlare.

You can test yourself: https://www.911truthoutreach.org

Feb-28-15 16:26:23
Need images from Twitter and Face book to be grabbed locally and all Javescrip to reside locally
Category: JFBConnect

I have hooked our website up to CloudFlare and the problem with getting the content from Facebook or Twitter, though it is fast, still introduces a wait time of 1 second for each request. When I disabled the SCSocial Stream module I shaved 2 seconds off the load time. There are many other things I need to do, but this is the one thing that stuck out.

The Facebook SDK.js file takes 768 ms to load from Facebook. By having that file on our server, it would be cached by CloudFlare, eliminating that 768 ms of wait time.

Also if I can lazy load the Twitter and Facebook data, that would help; or load the Facebook and Twitter data after the page has loaded through and XMLHTTPRequest.

Feb-27-15 21:38:02
Need images from Twitter and Face book to be grabbed locally and all Javescrip to reside locally
Category: JFBConnect

How to I get the SCSocial Stream module to grab JavaScript locally and how do I get SCSocial Stream module to grab stock twitter and Facebook images locally rather than grabbing them from twitter and Facebook.

I can't have pages generated from remote content as that reallllllllly shows down page loads. I can grab the text from Facebook and Twitter posts, but since I know what the images are, I can have those available locally in my images/social-media folder. In each instance where 525029324584255488/vlK3ysXt_normal.png is collected from https://pbs.twimg.com. I can grab that from the images/social-media folder instead eliminating a trip over the internet. In the case of any other image that is grabbed remotely, I can copy that to the images/social-media folder as well and tell JFBConnect to get that image from the folder instead of over the internet.

I also can't afford to be getting JavaScript remotely either. I need to change the following to grab facebook.net/en_GB/sdk.js locally as well.

Lets me know where I need to go in the code to make the necessary changes. Please see the elements highlighted in red below. Search for the string "[color=#ff3300]" to find the red color coded items.


  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     [color=#ff3300]js.src = "//connect.facebook.net/en_GB/sdk.js"[/color];
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));

Did you submit your action for approval to Facebook? After you perform the test and it works, you need to submit the action for their review. Once it's approved then all users can use it.

I thought I did, but I will submit it again.

If the loading time of your page is still 11s, then they are likely timing out as well and just showing the basic data the JavaScript can fetch about the page

I am going to put the site on CloudFlare and see if that improves load times enough to get things approved by Facebook and twitter just to get me by until I can deal with the crippling blocking and waiting that is killing the load times. I am going to have to round up all the CSS files and make one large CSS file out of them, and all the JavaScript files and do the same thing and inline as much as I can; that will take some time and testing.

One way to test is to run the page through the Facebook Debug tool first to see if the right tags are detected. Facebook should cache that data and may use it when someone tries to share your link (though not always).

Thanks I will try that. Right now the site is down because I am getting the WSOD. Index.php looks good and went through all the Joomla troubleshooting suggestions and still WSOD. I can't even get php errors to display and the error log shows no errors were logged. So I can't even try anything right now. Will let you know when things are working according to the play book.

Two things.

1. Facebook custom "Recommend" action on default "Article" Object still only works with Facebook test user, after two weeks of waiting.

2. When someone sends a Facebook message and they include a URL to one of our articles in the message dialogue box, all that is sent is the article image and the name of the site. Do I have to create an action for this on Facebook?? When I look at the source for the page the URL references, I see all the meta property og:tag-names are all in place and all show the correct information. My thought is that JavaScript has to spit out these meta properties and when the URL is included in a Facebook message, the JavaScript hasn't run so the only thing that is available is the K2 image which Facebook grabs by default; just a guess.

  • Index
  • » Users
  • » webdevtim
  • » Posts

Board Info

Board Stats
Total Topics:
Total Polls:
Total Posts:
Posts today:
User Info
Total Users:
Newest User:
Members Online:
Guests Online:

There are no members online
Social Stream
Refer and Earn

Like our extensions? You're not alone! That's why they're used on tens of thousands of websites. Now you can earn 20% of any sale you refer to SourceCoast.com.

We provide excellent documentation, well laid out sales pages and great support. All you need to do is spread the word and we'll take care of the rest.

Learn About Our Affiliate Program