News dév web

All about sleep: a complete guide for getting the rest you need - il y a 2 heures 59 min

Pepsi CEO Indra Nooyi gets four hours.
Fashion designer Tom Ford logs just three.
Angela Ahrendts, Apple’s VP of Retail, says she gets a headache after six.
Sleep is a huge topic in startup circles.
Lately, the when, how, and how much is constantly debated and dissected.
And while leaders like Nooyi, Ford and Ahrendts are among “the Sleepless Elite” who thrive on just a few hours each night …

Catégories: News dév web

Take Control of Your Projects with these Design Collaboration Tools - il y a 7 heures 42 min

Advertise here via BSA

You might be building a website for your own needs and doing all the work yourself. In this case, you may think there’s no need for a collaboration tool to smooth out your workflow. Still, having one or more extra pairs of eyes looking over your work can be beneficial.

It’s a different story for the design and development teams. There, quality communication and collaboration are often obligatory. This is especially if budget overruns and missed deadlines are to be avoided.

There’s a host of different collaboration tools available. Some are better than others. But the key is to find one that fits in with whom you intend to collaborate and how you plan to go about doing it.

We’ve rounded up several of the best collaboration tools on the market, one of which should be perfect for you.


1. Mason

Many tools treat collaboration as an extra, although necessary activity. Your team goes about its business and uses the collaborating tool on an as-needed basis. With Mason, product design, build, deployment and collaboration are managed from a single platform.

Mason’s front-end-as-a-service capability offers a better way to build, not only in terms of its drag and drop building-block approach, but also in terms of how easy it makes it for teams to interact and keep all the data and information in one secure place and available on demand. Collaboration couldn’t be easier.

Mason disassembles and reassembles digital products. By doing so, design and development are much easier to control, and the deployed products are much easier to maintain or modify. Non-tech types can make minor changes to a product and avoid having to repeat the deployment cycle in doing so.

Mason is free to use during your products design and test phase. You only pay when a finished product or its changes are to be viewed by downstream customers.


2. is a team management tool that can be used in any industry sector, by teams of any size, and for single projects or for multiple projects. It is exceptionally easy to use which may be why roughly 70% of its 22,000 paying teams are non-tech oriented. is finding considerable use in Fortune 500 companies including Samsung, NBC, Discovery Channel, Uber, Adidas, and McDonalds. This team management tool could find a place in your shop if you’ve become tired of lengthy whiteboard presentations, plowing through page after page of Excel sheets in search of key information, or attending what seem to be an unending series of long meetings.

Instead,’s colorful displays show tasks being performed when and by whom on a platform that readily adjusts to your workflow instead of the other way around.


3. Fleep — Collaboration Software

If your team and task management activity could be improved, Fleep offers a solution. Sign up for a Fleep account to collaborate with your team and with any other Fleep user or other teams on Fleep. With this communications and collaboration platform you can always see who the participants are, store and track information, and pin important messages, links and files

With Fleep’s task management features at your fingertips you can do away with piles of messages on your desk, sticky notes covering your monitor, and other methods of “managing” information that often cause more problems than they solve.

Fleep also works with email so you can tie non-Fleep users into your conversations and problems-solving discussions.


4Visual Inspector

Visual Inspector is used by 40,000 designers around the world to fix design bugs on websites and iterate faster on client feedback. You can use it for HTML, WordPress and SketchApp for better collaboration between UI designers & copy writers & development team. If collaborating on UI design & copy is a constant struggle in your workflow, VI could be just the solution you’ve been looking for.

Making changes to live websites is totally free, and you can grab unlimited collaboration for lifetime for just $49.



A manual collaboration system might be serving its purpose perfectly well. But the larger the team or the greater number of projects involved, the more likely it is to break down over time.

That’s not likely to happen when you have the right tool in place. Such tool helps team members and project stockholders communicate with one another. It also actively encourages collaboration and team transparency. A top-of-the-line collaboration tool like those featured here is worth its weight in gold.


Professional Web Icons for Your Websites and Applications

Catégories: News dév web

How to “Remote User Test” - 16 juillet, 2018 - 15:17

When your user base consists of 3.5 million people from pretty much every country, there are many things to consider while conducting user tests. User behaviors and mindsets change drastically from city to city and country to country. This creates problems if you conduct user tests the old fashioned way, aka in person. That’s why most of the usability tests that we do at JotForm are remote user tests. We find it very effective and receive great results from them.

Catégories: News dév web

This is your brain on caffeine vs. alcohol - 13 juillet, 2018 - 15:07

Back in the 80’s, there was an iconic commercial created by The Partnership for Drug-Free America called This Is Your Brain on Drugs.

It was a short video featuring a guy that looked like the stereotypical American dad sporting a very disappointed look on his face.

With an expression of sheer disdain, he stared at the camera as he approached a carton of eggs and a cast-iron pan sitting over a burning flame.

“This is your brain,” he said as he delicately picked up an egg from the opened carton and showed it to the camera. “This is drugs,” he continued as he pointed to the cast-iron skillet.

He then cracked the egg and dropped it into the hot oil burning in the pan and stood silently for added dramatic effect as the egg began to crackle and pop.

He finally picked up the skillet, flashed it to the camera and uttered what would become arguably the most infamous line during advertising’s war on drugs …

“This is your brain on drugs. Any questions?”

While I’m not sure if egg sales plummeted because of it, American parents developed a phobia nearly overnight that if little Charlie were to take a single puff of the devil’s lettuce or a sip of grampie’s Jim Beam, his brain would fry instantaneously like an egg and he would live the rest of his life as a vegetable.

False advertising? Well, one could certainly argue they might have been guilty of some puffery.

But, regardless, the commercial has made it on to numerous top one hundred commercial lists of all time.

And, if its intention was to eliminate drug use through fear, they had certainly succeeded (for the time being).

This yolky drug commercial is just one example of our world’s rather complicated relationship with drugs, be it substances as serious as heroin and cocaine or more widely accepted drugs like marijuana and LSD.

While I’m by no means qualified to determine the benefits or negative consequences of more extreme drugs and their impacts on our brains, I feel pretty comfortable giving my two cents on two of the most popular drugs in the world — alcohol and caffeine.

A cup of joe and a cold beer… do they help or hurt us?

Caffeine versus alcohol. Are they helpful or harmful to our productivity?

Let’s talk about Joe first.

Whether you slept like a log or slept but a couple hours, the standard morning protocol doesn’t change for most people — grab for the nearest cup of coffee as quickly as possible.

The average office worker drinks roughly 3 cups of coffee a day to stay alert, avoid falling asleep at their desks and because… let’s face it… it tastes really good.

But, besides keeping us bright-eyed and bushy-tailed and our taste buds happy, the research proves that caffeine can have tremendous effects on our productivity.

Researchers at Johns Hopkins have found caffeine to be a memory enhancer — their study published in Nature Neuroscience shows that,

Caffeine enhances certain memories for up to 24 hours after being consumed.

And, what’s even more interesting is that Harvard Health has found:

Caffeine to not only improve memory in the short-term but to improve it as we age, while also lowering our chances of developing Parkinson’s, Type 2 Diabetes and Colon Cancer.

While it’s safe to say improving memory and living longer is certainly productive, is there actual concrete evidence to prove that caffeine is a performance and cognitive enhancer?

Well, in regards to athletic performance, the NCAA (National Collegiate Athletic Association) certainly considers caffeine a performance enhancing drug and has made anything over 500 milligrams illegal. Granted, that’s roughly 6–8 cups of coffee.

However, in another study, researchers found moderate amounts of caffeine to have the following effects on physiologic systems, putting to rest the caffeine/productivity argument:

  1. Increases energy availability & daily energy expenditure
  2. Decreases physical & mental fatigue
  3. Decreases the “sense” of effort associated with physical activity
  4. Enhances physical performance, motor performance and cognitive performance.
  5. Increases alertness, wakefulness and the overall “feeling” of energy
  6. Quickens reactions & increases accuracy of reactions.
  7. Increase ability to concentrate & focus attention.
  8. Enhances short term memory
  9. Increases ability to solve problems requiring reasoning

The bottom line?

Caffeine 100% increases your productivity when consumed in moderate amounts.

Alcohol, a productivity killer or enhancer?

It’s a no brainer, you can drink a Venti Quadruple Shot Latte from Starbucks and drive, whereas it’s illegal to crack a cold beer and drive.

The reasoning for this is sound. Alcohol is a depressant, which means it slows down our central nervous system and causes delayed brain function.

In addition, alcohol negatively affects our information processing skills, our hand-eye coordination, our judgement, our reaction time and our memory.

But, while it’s pretty obvious that it would be tough to get a whole lot done after hammering back a six-pack, could alcohol be beneficial to productivity in smaller quantities?

From a creative standpoint, certainly.

In a fascinating study done years ago on alcohol’s effects on creativity, a group of 18 advertising creative directors were brought together and split into two teams.

While one team was permitted to drink, the other team was asked to stay sober.

The groups were then handed briefs and given several hours to come up with ideas.

Upon completion, the ideas were judged by high-caliber creative directors. The creative directors chose 5 of the best ideas that they saw and it turned out that 4 of them belonged to the team that was doing the boozing.

In another study, researchers found that an alcohol “buzz” (not downing an entire bottle) can actually enhance creative cognition. 

It included 40 men between the ages of 21–30 who were instructed to watch a movie while they completed verbal puzzles.

Half of the men were given enough alcohol to bring them to a BAC of .075, while the other half was forced to stay sober.

By the end of the study, the researchers found the drinkers had solved each puzzle 4 seconds faster than the sober guys and had accurately gotten 3 more problems correct.

So, when it comes to alcohol, having a drink or two when in the midst of a creative project might be beneficial.

But, drinking heavily when trying to do anything that requires extreme focus, information processing, clear judgement and memory… might be counterproductive.

And, speaking of productivity, let’s take a moment and discuss how these drugs can potentially hurt.

When alcohol and coffee can be counterproductive.

Alcohol and coffee can be counterproductive when they begin to cut into our sleep. While these drugs can enhance our productivity and creativity, nothing has quite the level of impact as a good night’s sleep.

From a productivity standpoint, sleep deprivation can cause both memory issues and can dramatically inhibit our ability to concentrate and focus.

Plus, in an in-depth study carried out by the Hult International Business School, researchers surveyed 1,000 professionals and found that sleep deprivation can mean poorer performance and productivity.

In fact, the study found that sleep deprivation can have similar effects of being drunk. That’s right, 24 hours without any sleep is the equivalent to drinking four glasses wine. Try do anything productive after a bottle of wine.

The individual who led the experiment, professor Vicki Culpin, had the following to say which summed up the findings of the study well:

“It is common for managers and colleagues to look at a lack of focus or motivation, irritability, and bad decision making as being caused by poor training, organizational politics or the work environment. The answer could be much simpler?—?a lack of sleep.”

And, guess what drugs are known to keep us from getting proper rest? You guessed it right, coffee and alcohol.

So, the question isn’t should we or shouldn’t we drink coffee and moderate amounts of alcohol to enhance our productivity and creativity, but rather how much coffee and alcohol can we drink before it starts cutting into our shut-eye?

In regards to coffee, it normally takes 5–10 hours for the caffeine to wear off. So, do the math. If you go to bed at 10pm most nights, stop drinking coffee in the early afternoon.

Alcohol is a bit more tricky, the physician and renowned sleep specialist known as The Sleep Doctor recommends to not have more than one drink more than 2–3 times a week, otherwise it can start to negatively impact your sleep.

So, the bottom line?

Drink moderate amounts of caffeine to enhance your productivity.

Drink a small amount of alcohol to enhance your creativity.

And, finally, make sure you’re getting a good night’s sleep to enhance both.

Catégories: News dév web

What it’s like to spend 326 days on a massive product release for 3.2M users - 13 juillet, 2018 - 13:49
At JotForm, our users matter to us. A lot. After all, we have 3.2 million of them. They create forms and receive responses through us every day. We want to make our users’ experience with us as easy and enjoyable as possible. How do we do this? By listening to them and learning from them whenever we can. And that’s why we created JotForm Cards, our most user-driven project ever. While we built Cards, our users guided us every step of the way; from research and design through to development. Our founder wrote about how focusing on the customer (not the competition) brought us over 1 million new signups in a year. From concept to launch, this process took us 326 days to complete. How did we go about it? Here’s what happened…


Day 1 — Idea


Looking at things like user feedback, bug reports and applied solutions over a large timeframe, we realized our forms needed an update. We could make as many minor tweaks as we wanted, but the fact remained: the design of our forms, and the experience of filling them out, was behind the times. Our forms needed to be more aesthetically-pleasing, user-friendly and smart. Thus, we began our journey with a single aim: re-invent our online forms. Meeting for the 2017 mission Day 18 — Hack week 1: Fundamentals Here’s how it works at JotForm: whenever we’re looking for answers, alternative solutions or ways of pushing the boundaries, we organize a hack week. This requires all teams to drop their daily responsibilities and work on a single task for five days straight. And so, the idea for JotForm Cards was born. Now we’d specified our goal — to reinvent online forms — we had to ask ourselves: “How on earth can we reinvent online forms?” This question immediately gave rise to other questions, too. What would define this new generation of forms? How could we create solid ground for the rest of the project? At the time, trying to find answers felt like staring at a blank page. We knew what we were working towards, but we didn’t know how to get there. So, we started to analyze as many forms as possible, in as much detail as possible, zooming in on different aspects such as label alignment, colors, animations and so on. We also started to analyze our own users’ forms in more depth. To create a product — no matter what your role in the team is — the most common strategy is to do online searches, read academic articles and review what your competitors have done. But, in our experience, these tactics don’t always point the best way forward. Indeed, our founder wrote about how focusing on the customer (not the competition) brought us over 1 million new signups. Long story short, we prefer to take our users’ choices as our starting point. So, when we’re at a turning point, our users’ forms provide us with input and guidance. Example forms from the first hack week On the basis of our analyses, we began to create prototypes. At the end of the week, each team shared and explained their decisions, setting out their ideas using the form prototype they had developed. We saw that all teams struggled with similar problems and arrived at similar evaluations — but often their solutions were different. Day 39 — Hack week 2: What might forms look like in 2027? By the end of the first hack week, we’d put the fundamentals for the project in place. Now it was time to push the limits. The subject of hack week 2 was: “what might forms look like in 2027?” We didn’t know what the design trends would be in ten years time, or which technologies would be available to us. So we let our imagination run wild. How could we push what we already had, break the rules and create a free-thinking mindset? Example forms from hack week 2 During hack week 2, we experimented with voice-overs, AR, and creating designs from a space age. It was a lot of fun. Day 60 — Hack week 3: Pimp my form Hack week 3: time to try something totally different. Instead of working on one idea for a whole week, each team randomly picked a form and spent the day improving its visuals and functionality. We used real-life instances picked from our users’ forms. And at the end of each day, the new version of the form was sent to its original owner for feedback. Before/after versions of a form With only one day to analyze problems and find solutions, we were forced to move quickly. This was a good thing. There was no time to obsess over tiny details or try different ideas. Before/after versions of a form This hack week helped us develop a mindset of dividing large problems into smaller pieces and addressing them one by one. (ps. I know I keep talking about hack weeks. In case you are interested, here is how hack weeks can encourage innovation and creativity)


Day 81 — Hackweek 4: Invent Form 2.0


During hack week 4, all teams tried (almost) all possible form layouts. We needed to create something amazing on the basis of the prototypes we’d developed, the analyses we’d done and the knowledge we’d gained over the previous weeks. So, all teams started to create final prototypes to show what, in their opinion, the new generation of online forms should look like. Example forms from the hack week 4 It was time to start making serious decisions. So we asked for our users’ opinions once again. We prioritized user-friendliness, fun, and ease.


Day 88 — First Prototype


On the 88th day of the project, the first prototype of JotForm Cards was ready for action (at this point, it didn’t even have a name yet). Our first prototype With our first prototype done and dusted, it was time to move on to the next phase: development. Initially, we tried to remain as independent as possible from JotForm’s original infrastructure and focus on creating something new. But equally, we needed to figure out a way to support JotForm’s traditional form layout as well. JotForm team at a meeting We reviewed our legacy code to see whether it should be renewed or reused for JotForm Cards. We eventually decided that reusing the current code base would be a lifesaver; and, that it would be best to design the new software architecture according to our current infrastructure instead of updating it. A member of Untitled Team working hard Now, it was time to do some heavy lifting and convert the prototype into a feature-complete product. All form fields were redesigned and redeveloped, all micro-animations were rewritten, and all our original decisions were re-evaluated again.


Day 138 — A/B tests start


After months of hard work, we were ready to share our secret project with the world. It was super-exciting for us to see user reactions. A member of Data Team while working on JotForm Cards stats We immediately started to pay close attention to the statistics that were rolling in. The Data Team analyzed answers to questions like: Did users like JotForm Cards? Did they want to switch back to classic form layout? How many users stayed active when using JotForm Cards? How many fields were added?


Day 195 — New user group


After nearly two months, the numbers from the A/B test didn’t reflect what we’d hoped: we needed to go back to the drawing board. We began brainstorming to look into the root of the problems, experimenting with changing the default colors and looking for a correlation between user categories and the form layouts they preferred. A brainstorming session In the meantime, we were still receiving feedbacks from real users. And since they’re the ones who will be using the product, we always give their thoughts priority. What were they saying? It was something along the lines of: Yes, you did something new — which is super cool — but there is still a need for the classic form layout. And that was it! Once again, our users showed us the way. They were happy to try something new like JotForm Cards, but they didn’t want to lose the classic form either. Why couldn’t they have both? So, we started working on a new test group who could create forms of both types and add them to ongoing A/B tests. By the time the A/B test was updated, JotForm Cards had nearly every major feature of our classic forms. Time for more hack weeks!


Day 214 — Hack week 5: New features


So, we’d managed to get JotForm Cards to the same level as our classic forms and updated our A/B tests. Usage statistics were increasing every day. It was time to take JotForm Cards to the next level. For the 5th Hack week — and for the first time in the JotForm history— all teams worked on different ideas for a week. And we made great progress. One of our product teams developed a ‘Smart Embed’ feature, which automatically adapts JotForm Cards to mimic the page it’s embedded in. Another team developed the ‘Inline Embed Editor’, which lets users adjust their form’s embedded style on their pages. Inline Embed Editor We also updated the mobile version of the JotForm Cards from top to bottom, adapting all layout elements, animations, and gestures to provide the best user experience on a mobile device. JotForm Cards mobile version


Day 242 — Hackweek 6: Fields


During the 6th hack week, it was time to improve form fields and add cool features to them. All teams worked on different form fields to make prototypes as parallel processes. We selected the target fields according to usage rates of fields and user feedback. One problematic field was the Input Table. We managed to improve this field by updating its design and adding new features such as an emoji slider, thus making one of the most boring fields fun to fill. Input Table Emoji Sliders We worked on the address field too, adding an autocomplete feature to make it easier to fill out. New address field with the autocomplete feature We also developed the Multi-line Question, which lets users add more than one field to a single card. Multi-line Question Day 262 — Hack week 7: More fields Improvements during hack week 6 had a great impact on user feedback. So, we decided to look back into improving the most-used form fields. One team worked on the payment field and integrated a shopping bag feature, which lets form submitters see the products they want to buy listed. New product list and shopping bag Another team made updates to the email field and added verification features to it. Email field with the verification feature Finally, we updated the Long Text Entry field to add emojis, files or styles. Long text entry field


Day 274 — New group for the test


Our testing continued, and when we analyzed the numbers, we saw the third test group was a great success. The decision was made: our users should be able to create both types of forms, new and classic. Now, we wondered, what was the best way to present these options to users? Another A/B test it was! We prepared three different form layout selection models for each group and put them to test with a control group. A version of the form layout selection modal


Day 298 — Hack week 8: Wrap it up


The 8th and final hack week was our last opportunity to make big, brave changes to the product. It was time to give the ideas we never had time to try out a chance. New welcome page We worked on colors, fonts, spacing, the welcome page and all general elements. We also worked on an import tool, improved the feedback button embeds and created mini cards.


Day 313 — Sharing our product with the world


Following eight hack weeks in 10 months, we were ready to pack up JotForm Cards and share it with the world. We decided to give users both of the form layout options and wait for the test results to decide which design we’d use. But, none of the test groups could determine a winner. We updated the test again, but this time, all of our new users were able to see both options.


Day 327–Release!


Finally! On February 6th, we announced JotForm Cards as our newest product. For 326 days, we’d worked on this project full-time, day and night: poring over details big and small, fixing more than 280 bugs and implementing 102 feature requests. Phew. Best off all, we succeeded in making a product that our users love. Launch day at Ankara Office We hope you love JotForm Cards as much as we do, and we can’t wait to hear your thoughts!
Catégories: News dév web

Are you a designer? These Portfolio WordPress Themes Were Created for You - 12 juillet, 2018 - 11:02

Advertise here via BSA

What does it take to have a decent portfolio? You will definitely need the right tools and a fair amount of creativity. Extra creativity isn’t something that someone can easily come up with. But there are some top-of-the-line WordPress themes that can help you. They are to some degree portfolio oriented. so they can take up the slack.

So, the good news is that you don’t have to be a web design wizard. You also do not have to be brilliantly artistic to create an amazing portfolio. Here are the themes that can lead the way in helping you create an amazing portfolio to showcase your work. They will present your products in a way that will encourage users to stop and study.


1. Porto – Ultimate WordPress + eCommerce Theme

Multi-purpose, blazing-fast, and very powerful compared to other WordPress themes are all apt descriptions of Porto. This Bootstrap4-based WordPress theme features a speed optimized wizard for producing the excellent site performance that makes it a better choice for your next eCommerce or portfolio website design.

Porto’s popularity over the past several years comes as no surprise as its authors have made it a point to follow the latest design trends, adhere to the best coding practices, and continuously make improvements in all aspects of this theme’s design.

Porto is 100% mobile responsive. With a host of demos and design options, it provides the ultimate in eCommerce and portfolio website functionality, it features Visual Composer and Revolution Slider, and it’s compatible with tons of plugins. Other features include header, menu, and breadcrumb options, and page and post layout configuration options and settings.

Porto features a variety of blog and shop pages in addition to its 19 portfolio pages, and there are some amazing ways in which you can put sliders to effective use in your home pages, portfolios, or blog posts.


2. BeTheme

With its 350+ pre-built websites, the largest selection on the market, and the wide-ranging and comprehensive variety of features it places at your disposal, BeTheme is an ideal choice for creating any type of portfolio website you have in mind, or any other type of website for that matter.

Be’s Muffin Builder and its powerful Options Panel working in combination with a variety of header options, shortcodes, design elements, grid and color schemes and many other options, settings, and special effects make it easy to build a portfolio website in as little as 4 hours. All you need is your ideas and your content. BeTheme takes care of the rest.

Be is responsive and SEO friendly and you don’t have to worry about coding as none is required. The documentation you’ll receive and the support you can expect are both reflective of Be’s belief in helping its customers.


3. Kalium

You can’t rely on a portfolio website to generate a whole lot of business for you when it resembles every other portfolio website out there. Web users scan, which means they’re apt to take on a “been there – seen that” attitude when they scan your portfolio. What you really want, and what Kalium can help you achieve, it to engage those visitors to the point where they actually study your work or want to find out more about your product or products.

The solution is a combination of ingenuity on your part and flexibility on the part of the tool you’re using. Kalium provides the latter in spades with its more than 30 portfolio layouts, the World’s best drag and drop page builder (WPBakery), shortcodes, bonus elements and more. Plenty of layouts are included to help you set up and online shop and Kalium offers a nice assortment of blog layouts as well.


4. TheGem – Creative Multi-Purpose High-Performance WordPress Theme

TheGem has been waiting to help you build your portfolio website. Even though this is a multipurpose WordPress theme, its portfolio-building features and functionalities are indeed impressive. You can start with any of TheGem’s 5 main   portfolio styles and customize them to your heart’s content. A host of options and settings are there with which you can adjust image sizes and positions, grid arrangements, alignments, and gap settings. You can also highlight individual works or products.


5. Studio 8

Select a theme that’s lightning fast, features clean code, and is 100% responsive and you can count on it to enable you to create as website or portfolio having those same characteristics. Studio 8 is oriented toward artists, photographers, web designers, and other creative professionals and creative agencies.

Find out more about how this premium WP theme can make it easy for you to showcase your work and sell it online.


6. Uncode

Uncode is a creative multiuse WP theme that’s tailored for portfolio-building. Consequently, it has all the features and functionality you’re ever going to need to present your work in the way you want it to be viewed by others.

Check out the impressive showcase of creative user’s websites and see what they’ve accomplished with Uncode’s 16 portfolio styles, advanced grid and thumbnails systems, Slides Scroll, and the Gallery Manager.


7. Pofo – Creative Portfolio and Blog WordPress Theme

Pofo is another premium theme created with portfolio-building users in mind – and blog-building and eCommerce users as well. The popular WPBakery drag and drop page builder and Revolution Slider are included in the package.

Pofo will give you blazing-fast performance and its large and impressive selection of home pages, demo pages, shortcodes, and pre-built design elements will provide all the flexibility you need.


8. Cesis – Responsive Multi-Purpose WordPress Theme

Whether you’re a freelancer, work for a creative agency, or work on a corporate business’s team, Cesis will make your job easier. With this new tool, you can create any kind or type of website without coding by using its pre-made templates or downloading your own.

Since everything you need to work with is on the frontend, portfolio building, page building, and editing tasks are as easy and simple as can be.



There you have it. 8 powerful, flexible, and easy to work with WordPress themes. They can free you from past constraints. They will also enable you to create the type of portfolio that will make users stop and study your work.

Feel free to be creative! You’re no longer constrained to creating a boring portfolio website. Now, it is high time to showcase and sell your work.


Professional Web Icons for Your Websites and Applications

Catégories: News dév web

There’s no such thing as motivation - 11 juillet, 2018 - 17:06

I’m not highly motivated.

I don’t have amazing willpower or self-control.

I don’t get up at 6 am to read, meditate, drink a green smoothie, and run 10K.

That’s because I don’t believe in motivation.

Instead, I’ve built …

Catégories: News dév web

UX Hacking Usability with Psychological Principles - 9 juillet, 2018 - 16:41

There’s no escaping it. Psychology in design is everywhere. It’s why Facebook notifications are red—the color of urgency—to demand our attention. It’s why glossy magazines like Vogue have extra-wide spacing in the typography of their logo. Those teensy gaps signal exclusivity to our subconscious.

Catégories: News dév web

How to use Chrome DevTools like a Pro - 6 juillet, 2018 - 09:43

As the name implies Chrome Developer Tools is a tool that allows web developers to interfere and manipulate applications via the browser. With this tool you can:

  • Manage interface problems
  • Debug Javascript Code with using breakpoints
  • Optimize your code

To open DevTools, you can right-click anywhere on the page and select inspect element or you can choose the “tools > developer tools” option from the top right menu.

The following examples are using the Canary version of Google Chrome.

1. Quick-edit a HTML Element

To try it:

  • Select the “Elements” panel.
  • Choose a DOM element within the Elements Panel editor.
  • Double click on the opening tag and edit it.

When you are finished, the closing tag is automatically updated.

2. Go to a Line Number

You can use this feature in the “:linenumber:columnnumber” format from the Sources panel.

To try it:

  • CMD + O

3. Expand All Child Nodes

To try it:

  • Select the “Elements” panel.
  • Choose a DOM element and Alt + Click the arrow within the Elements Panel editor to expand all child nodes.

4. Change DevTools Positions

To try it:

  • CMD + Shift + D

Dock options:

  • Undock DevTools
  • Dock to bottom
  • Dock to right

5. DOM Search by CSS Selectors

To try it:

  • CMD + F / CTRL + F and enter your class name or id name base search selector.

6. Material and Custom Color Palettes

You can click on the little switcher icon in front of hex code. you can choose from the following:

  1. Page Colors: This palette is auto generated from your web site (in your CSS).
  2. Material Design: This palette automatically generates primary colors from The Material Design palette.

7. Multiple Cursor

Move the cursor with the CMD + Click to add multiple cursors. You can also undo your last selection with CMD + U.

8. Copy Image as Data URI

To try it:

  • Select “Network” panel.
  • Choose your image within the Resources Panel
  • Right click and copy it as a Data URI (base 64 encoded)

9. Triggering of Pseudo Classes

To try it:

  • Right click in the left panel and select “Force Element State”.
  • Alternatively, the toggle element state icon can be clicked in the right panel.

10. Column Selection by Dragging

To try it:

  • Select “Sources” panel.
  • Choose your file within the Sources Panel editor.
  • Hold Alt and dragging the mouse.

11. Get the current element with “$0”

To try it:

  • Select “Elements” panel.
  • Choose a DOM element within the Elements Panel editor.
  • Click Console and write $0 to access it.

12. Reveal in Elements

To try it, if you choose an a DOM node:

  • Right click on it within the Console panel.
  • Select “Reveal in Elements Panel”.

13. View Event Listeners

To try it:

  • Select the “Elements” panel.
  • Navigate to the Event Listeners and choose an event.
  • You can also view source by right click and choose “Show Function Definition” in context menu.

14. Easing Previews

To try it:

  • Click the easing icon (purple icon) and see a preview.
  • You can view it via choose other previews or you can set new easing format.

15. Media Query

To try this:

  • In Device Mode, click the icon (‘bars’) in the upper left corner of the page.
  • Click the breakpoint (‘blue’, ‘green’, ‘orange’) bars and change.

If you right click on a bar, you can reveal its position within the source code.

16. Network Filmstrip

“Film Strip” shows page rendering screenshots and times from start to finish. You can click a screenshot and view in the timeline-style view.

To try this:

  • Select “Network” panel.
  • Click “Camera Icon”.
  • Reload page.

17. Copy Response

You can copy the response/request headers of a network resource.

To try it:

  • Select “Network” panel.
  • Choose your file within the Resources Panel.
  • Right click and click “Copy Response”.

18. Run Predefined Snippets

To try it:

  • In the left sidebar: Sources > Snippets
  • Right click > Select New
  • Enter a file name and write your snippets in the right panel
  • Right click on the snippet and select Run

19. Device Emulation Sensors

You can also simulate mobile devices sensors like:

  • Touch Screen
  • Geolocation Coordinates
  • Accelerometer

To try this:

  • Select “Elements” panel.
  • Click “Esc” and choose “Emulation > Sensors”

20. Workspaces

To try this:

  • Select “Sources” panel.
  • Right click within sources pane and choose “Add Folder to Workspace”
  • Choose your file and right click > Map to Network Resources
  • Change your file code and view it.




Make sure to subscribe to the newsletter below. We won’t send spam, I promise.

Catégories: News dév web

The power of doing nothing at all - 5 juillet, 2018 - 17:53

The old crocodile was floating at the river’s edge when a younger crocodile swam up next to him,

“I’ve heard from many that you’re the fiercest hunter in all of the river bottoms. Please, teach me your ways.”

Awoken from a nice long afternoon nap, the old crocodile glanced at the young crocodile with one of his reptilian eyes, said nothing and then fell back asleep atop the water.

Catégories: News dév web

HTTP/2: Background, Performance Benefits and Implementations - 5 juillet, 2018 - 02:20

On top of the infrastructure of the internet --- or the physical network layers --- sits the Internet Protocol, as part of the TCP/IP, or transport layer. It's the fabric underlying all or most of our internet communications.

A higher level protocol layer that we use on top of this is the application layer. On this level, various applications use different protocols to connect and transfer information. We have SMTP, POP3, and IMAP for sending and receiving emails, IRC and XMPP for chatting, SSH for remote sever access, and so on.

The best-known protocol among these, which has become synonymous with the use of the internet, is HTTP (hypertext transfer protocol). This is what we use to access websites every day. It was devised by Tim Berners-Lee at CERN as early as 1989. The specification for version 1.0 was released in 1996 (RFC 1945), and 1.1 in 1999.

The HTTP specification is maintained by the World Wide Web Consortium, and can be found at

The first generation of this protocol --- versions 1 and 1.1 --- dominated the web up until 2015, when HTTP/2 was released and the industry --- web servers and browser vendors --- started adopting it.


HTTP is a stateless protocol, based on a request-response structure, which means that the client makes requests to the server, and these requests are atomic: any single request isn't aware of the previous requests. (This is why we use cookies --- to bridge the gap between multiple requests in one user session, for example, to be able to serve an authenticated version of the website to logged in users.)

Transfers are typically initiated by the client --- meaning the user's browser --- and the servers usually just respond to these requests.

We could say that the current state of HTTP is pretty "dumb", or better, low-level, with lots of "help" that needs to be given to the browsers and to the servers on how to communicate efficiently. Changes in this arena are not that simple to introduce, with so many existing websites whose functioning depends on backward compatibility with any introduced changes. Anything being done to improve the protocol has to be done in a seamless way that won't disrupt the internet.

In many ways, the current model has become a bottleneck with this strict request-response, atomic, synchronous model, and progress has mostly taken the form of hacks, spearheaded often by the industry leaders like Google, Facebook etc. The usual scenario, which is being improved on in various ways, is for the visitor to request a web page, and when their browser receives it from the server, it parses the HTML and finds other resources necessary to render the page, like CSS, images, and JavaScript. As it encounters these resource links, it stops loading everything else, and requests specified resources from the server. It doesn't move a millimeter until it receives this resource. Then it requests another, and so on.

The number of requests needed to load world's biggest websites is often in couple of hundreds.

This includes a lot of waiting, and a lot of round trips during which our visitor sees only a white screen or a half-rendered website. These are wasted seconds. A lot of available bandwidth is just sitting there unused during these request cycles.

CDNs can alleviate a lot of these problems, but even they are nothing but hacks.

As Daniel Stenberg (one of the people working on HTTP/2 standardization) from Mozilla has pointed out, the first version of the protocol is having a hard time fully leveraging the capacity of the underlying transport layer, TCP.
Users who have been working on optimizing website loading speeds know this often requires some creativity, to put it mildly.

Over time, internet bandwidth speeds have drastically increased, but HTTP/1.1-era infrastructure didn't utilize this fully. It still struggled with issues like HTTP pipelining --- pushing more resources over the same TCP connection. Client-side support in browsers has been dragging the most, with Firefox and Chrome disabling it by default, or not supporting it at all, like IE, Firefox version 54+, etc.
This means that even small resources require opening a new TCP connection, with all the bloat that goes with it --- TCP handshakes, DNS lookups, latency… And due to head-of-line blocking, the loading of one resource results in blocking all other resources from loading.

A synchronous, non-pipelined connection vs a pipelined one, showing possible savings in load time.

Some of the optimization sorcery web developers have to resort to under the HTTP/1 model to optimize their websites include image sprites, CSS and JavaScript concatenation, sharding (distributing visitors' requests for resources over more than one domain or subdomain), and so on.

The improvement was due, and it had to solve these issues in a seamless, backward-compatible way so as not to interrupt the workings of the existing web.


In 2009, Google announced a project that would become a draft proposal of a new-generation protocol, SPDY (pronounced speedy), adding support to Chrome, and pushing it to all of its web services in subsequent years. Then followed Twitter and server vendors like Apache, nginx with their support, Node.js, and later came Facebook,, and most CDN providers.

SPDY introduced multiplexing --- sending multiple resources in parallel, over a single TCP connection. Connections are encrypted by default, and data is compressed. First, preliminary tests in the SPDY white paper performed on the top 25 sites showed speed improvements from 27% to over 60%.

After it proved itself in production, SPDY version 3 became basis for the first draft of HTTP/2, made by the Hypertext Transfer Protocol working group httpbis in 2015.

HTTP/2 aims to address the issues ailing the first version of the protocol --- latency issues --- by:

It also aims to solve head-of-line blocking. The data it transfers is in binary format, improving its efficiency, and it requires encryption by default (or at least, this is a requirement imposed by major browsers).

Header compression is performed with the HPACK algorithm, solving the vulnerability in SPDY, and reducing web request sizes by half.

Server push is one of the features that aims to solve wasted waiting time, by serving resources to the visitor's browser before the browser requires it. This reduces the round trip time, which is a big bottleneck in website optimization.

Due to all these improvements, the difference in loading time that HTTP/2 brings to the table can be seen on this example page by

Savings in loading time become more apparent the more resources a website has.

The post HTTP/2: Background, Performance Benefits and Implementations appeared first on SitePoint.

Catégories: News dév web

Improving Performance Perception: On-demand Image Resizing - 2 juillet, 2018 - 18:00

Over a series of articles, we've been building a sample application --- a multi-image gallery blog --- for performance benchmarking and optimizations. At this point, our application serves the same image regardless of the resolution and screen size it's being served in. In this tutorial, we'll modify it to serve a resized version depending on display size.


There are two stages to this improvement.

  1. We need to make all images responsive wherever this might be useful. One place is the thumbnails on the home page and in the gallery pages, and another is the full-size image when an individual image is clicked in the gallery.
  2. We need to add resizing-logic to our app. The point is to generate a resized image on the fly as it's demanded. This will keep non-popular images from polluting our hard drive, and it'll make sure the popular ones are, on subsequent requests, served in optimal sizes.
Responsive Images?

As this post explains, images in the modern web are incredibly complex. Instead of just <img src="mypic.jpg"> from the olden days, we now have something crazy like this:

<picture> <source media="(max-width: 700px)" sizes="(max-width: 500px) 50vw, 10vw" srcset="stick-figure-narrow.png 138w, stick-figure-hd-narrow.png 138w"> <source media="(max-width: 1400px)" sizes="(max-width: 1000px) 100vw, 50vw" srcset="stick-figure.png 416w, stick-figure-hd.png 416w"> <img src="stick-original.png" alt="Human"> </picture>

A combination of srcset, picture and sizes is necessary in a scenario where you're doubtful that if you use the same image for a smaller screen size, the primary subject of the image may become too small in size. You want to display a different image (more focused on the primary subject) in a different screen size, but still want to display separate assets of the same image based on device-pixel ratio, and want to customize height and width of the image based on viewport.

Since our images are photos and we always want them to be in their default DOM-specified position filling up the maximum of their parent container, we have no need for picture (which lets us define an alternative source for a different resolution or browser support --- like trying to render SVG, then PNG if SVG is unsupported) or sizes (which lets us define which viewport portion an image should occupy). We can get away with just using srcset, which loads a different size version of the same image depending on the screen size.

Adding srcset

The first location where we encounter images is in home-galleries-lazy-load.html.twig, the partial template that renders the home screen's galleries list.

<a class="gallery__link" href="{{ url('gallery.single-gallery', {id:}) }}"> <img src="{{ gallery.images.first|getImageUrl }}" alt="{{ }}" class="gallery__leading-image card-img-top"> </a>

We can see here that the image's link is fetched from a Twig filter, which can be found in the src/Twig/ImageRendererExtension.php file. It takes the image's ID and the route's name (defined in the annotation in ImageController's serveImageAction route) and generates a URL based on that formula: /image/{id}/raw -> replacing {id} with the ID given:

public function getImageUrl(Image $image) { return $this->router->generate('image.serve', [ 'id' => $image->getId(), ], RouterInterface::ABSOLUTE_URL); }

Let's change that to the following:

public function getImageUrl(Image $image, $size = null) { return $this->router->generate('image.serve', [ 'id' => $image->getId() . (($size) ? '--' . $size : ''), ], RouterInterface::ABSOLUTE_URL); }

Now, all our image URLs will have --x as a suffix, where x is their size. This is the change we'll apply to our img tag as well, in the form of srcset. Let's change it to:

<a class="gallery__link" href="{{ url('gallery.single-gallery', {id:}) }}"> <img src="{{ gallery.images.first|getImageUrl }}" alt="{{ }}" srcset=" {{ gallery.images.first|getImageUrl('1120') }} 1120w, {{ gallery.images.first|getImageUrl('720') }} 720w, {{ gallery.images.first|getImageUrl('400') }} 400w" class="gallery__leading-image card-img-top"> </a>

If we refresh the home page now, we'll notice the srcset's new sizes listed:

This isn't going to help us much, though. If our viewport is wide, this will request full-size images, despite them being thumbnails. So instead of srcset, it's better to use a fixed small thumbnail size here:

<a class="gallery__link" href="{{ url('gallery.single-gallery', {id:}) }}"> <img src="{{ gallery.images.first|getImageUrl('250') }}" alt="{{ }}" class="gallery__leading-image card-img-top"> </a>

We now have thumbnails-on-demand, but which get cached and fetched when they're already generated.

Let's hunt down other srcset locations now.

In templates/gallery/single-gallery.html.twig, we apply the same fix as before. We're dealing with thumbnails, so let's just shrink the file by adding the size parameter into our getImageUrl filter:

<img src="{{ image|getImageUrl(250) }}" alt="{{ image.originalFilename }}" class="single-gallery__item-image card-img-top">

And now for the srcset implementation, finally!

The individual image views are rendered with a JavaScript modal window at the bottom of the same single-gallery view:

{% block javascripts %} {{ parent() }} <script> $(function () { $('.single-gallery__item-image').on('click', function () { var src = $(this).attr('src'); var $modal = $('.single-gallery__modal'); var $modalBody = $modal.find('.modal-body'); $modalBody.html(''); $modalBody.append($('<img src="' + src + '" class="single-gallery__modal-image">')); $modal.modal({}); }); }) </script> {% endblock %}

There's an append call which adds the img element into the modal's body, so that's where our srcset attribute must go. But since our image URLs are dynamically generated, we can't really call the Twig filter from within the script. One alternative is to add the srcset into the thumbnails and then use it in the JS by copying it from the thumb elements, but this would not only make the full-sized images load in the background of the thumbnails (because our viewport is wide), but it would also call the filter 4 times for each thumbnail, slowing things down. Instead, let's create a new Twig filter in src/Twig/ImageRendererExtension.php which will generate the full srcset attribute for each image.

public function getImageSrcset(Image $image) { $id = $image->getId(); $sizes = [1120, 720, 400]; $string = ''; foreach ($sizes as $size) { $string .= $this->router->generate('image.serve', [ 'id' => $image->getId() . '--' . $size, ], RouterInterface::ABSOLUTE_URL).' '.$size.'w, '; } $string = trim($string, ', '); return html_entity_decode($string); }

We mustn't forget to register this filter:

public function getFilters() { return [ new Twig_SimpleFilter('getImageUrl', [$this, 'getImageUrl']), new Twig_SimpleFilter('getImageSrcset', [$this, 'getImageSrcset']), ]; }

We have to add these values into a custom attribute, which we'll call data-srcset on each individual thumbnail:

<img src="{{ image|getImageUrl(250) }}" alt="{{ image.originalFilename }}" data-srcset=" {{ image|getImageSrcset }}" class="single-gallery__item-image card-img-top">

Now each individual thumbnail has a data-srcset attribute with the required srcset values, but this doesn't trigger because it's in a custom attribute, data to be used later.

The final step is updating the JS to take advantage of this:

{% block javascripts %} {{ parent() }} <script> $(function () { $('.single-gallery__item-image').on('click', function () { var src = $(this).attr('src'); var srcset = $(this).attr('data-srcset'); var $modal = $('.single-gallery__modal'); var $modalBody = $modal.find('.modal-body'); $modalBody.html(''); $modalBody.append($('<img src="' + src + '" srcset="" + srcset + '" class="single-gallery__modal-image">')); $modal.modal({}); }); }) </script> {% endblock %}

The post Improving Performance Perception: On-demand Image Resizing appeared first on SitePoint.

Catégories: News dév web

Breaking News: Noupe Has Been Acquired by JotForm - 2 juillet, 2018 - 17:03

Ever since we started Noupe in 2009, we’ve been on a mission to be an authority on all things design. Whether it was providing tips on CSS, JavaScript, UI/UX, vector editing, typography, or WordPress — we’ve been here to provide helpful advice and reviews. We’re proud of what we’ve accomplished and all the designers we’ve helped.

But today marks the next evolution of Noupe. We’re excited to announce that Noupe has been fully acquired by JotForm!

You probably know JotForm, the easy-to-use online form building software with loads of features and a sleek UI. In fact, you may have heard about them from us. We told you about them when they released JotForm Cards, the JotForm Form Designer, and JotForm 4.0. We told you about the six reasons you should use JotForm for your web forms, and even invited you to enter JotForm’s web form design awards.

Now, JotForm and Noupe are one.

Why is  JotForm acquiring  Noupe?

The reasoning was simple. As a company, JotForm loves design. Its users include designers and design aficionados, and JotForm’s team is full of talented developers and designers who regularly read Noupe. But what really drove this acquisition is that JotForm loves writing about design.

The JotForm Blog is also a resource for thousands of designers and developers looking for tips and trade secrets, just like Noupe. Now that Noupe is part of the JotForm family, it’ll get exposure to even more readers than ever before. JotForm has nearly 4 million users worldwide. It’s a brand that has helped countless companies create better designs — something that made them a perfect fit to carry the Noupe torch.

What  to  Expect

As a devoted Noupe reader, you won’t miss a thing. JotForm’s team of writers will continue to write thoughtful, researched articles on creating great design. The major difference is that you’ll have exposure to even more articles and resources.

For a sampling of what JotForm writes about, check out popular recent articles, Why we decided to drop LESS for SCSS, and How to “Remote User Test”.

The former Noupe team will now focus on other projects, such as the German design magazine Dr. Web, which has been the initial spark setting fire to Smashing Magazine and Noupe, both of which wouldn’t even exist without the good ole Doctor. Wave Goodbye, say Hello!

About JotForm

JotForm was founded in 2006 as the first WYSIWYG online form building tool. Since then, it’s grown to be the leading online form creation software, with millions of users around the world and over 100 employees. You can find JotForm all over the web, powering application forms, registration forms, website contact forms, order forms, feedback forms, and more. If you aren’t a JotForm user yourself, chances are you’ve filled out someone else’s JotForm-powered form and never even realized it.

In addition to JotForm Blog, you can learn more about JotForm by reading advice and stories from their CEO, Aytekin Tank, through his articles in Entrepreneur and Medium.

Catégories: News dév web

How to Boost Your Server Performance with Varnish - 2 juillet, 2018 - 07:58

Varnish Cache is an HTTP accelerator and reverse proxy developed by Danish consultant and FreeBSD core developer Poul-Henning Kamp, along with other developers at Norwegian Linpro AS. It was released in 2006.

According to, a company focused on web performance, in 2012 Varnish was already famous among the world's top websites for its capacity to speed up web delivery, and it was being used by sites such as Wired, SlideShare, Zappos, SoundCloud,, Business Insider,, Urban Dictionary, MacRumors, DynDNS, OpenDNS, Lonely Planet, Technorati, ThinkGeek and

It is licensed under a two-clause BSD license. Varnish has a premium tier, Varnish Plus, focused on enterprise customers, which offers some extra features, modules, and support.

Although there are other solutions that also shine, Varnish is still a go-to solution that can dramatically improve website speed, reduce the strain on the web application server's CPU, and even serve as a protection layer from DDoS attacks. KeyCDN recommends deploying it on the origin server stack.

Varnish can sit on a dedicated machine in case of more demanding websites, and make sure that the origin servers aren't affected by the flood of requests.

At the time of this writing (November 2017), Varnish is at version 5.2.

How it Works

Caching in general works by keeping the pre-computed outputs of an application in memory, or on the disk, so that expensive computations don't have to be computed over and over on every request. Web Cache can be on the client (browser cache), or on the server. Varnish falls into the second category. It is usually configured so that it listens for requests on the standard HTTP port (80), and then serves the requested resource to the website visitor.

The first time a certain URL and path are requested, Varnish has to request it from the origin server in order to serve it to the visitor. This is called a CACHE MISS, which can be read in HTTP response headers, depending on the Varnish setup.

According to the docs,

when an object, any kind of content i.e. an image or a page, is not stored in the cache, then we have what is commonly known as a cache miss, in which case Varnish will go and fetch the content from the web server, store it and deliver a copy to the user and retain it in cache to serve in response to future requests.

When a particular URL or a resource is cached by Varnish and stored in memory, it can be served directly from server RAM; it doesn't need to be computed every time. Varnish will start delivering a CACHE HIT in a matter of microseconds.

This means that neither our origin server or our web application, including its database, are touched by future requests. They won't even be aware of the requests loaded on cached URLs.

The origin server --- or servers, in case we use Varnish as a load balancer --- are configured to listen on some non-standard port, like 8888, and Varnish is made aware of their address and port.

Varnish Features

Varnish is threaded. It's been reported that Varnish was able to handle over 200,000 requests per second on a single instance. If properly configured, the only bottlenecks of your web app will be network throughput and the amount of RAM. (This shouldn't be an unreasonable requirement, because it just needs to keep computed web pages in memory, so for most websites, a couple of gigabytes should be sufficient.)

Varnish is extendable via VMODS. These are modules that can use standard C libraries and extend Varnish functionality. There are community-contributed VMODS listed here. They range from header manipulation to Lua scripting, throttling of requests, authentication, and so on.

Varnish has its own domain-specific language, VCL. VCL provides comprehensive configurability. With a full-page caching server like Varnish, there are a lot of intricacies that need to be solved.

When we cache a dynamic website with dozens or hundreds of pages and paths, with GET query parameters, we'll want to exclude some of them from cache, or set different cache-expiration rules. Sometimes we'll want to cache certain Ajax requests, or exclude them from the cache. This varies from project to project, and can't be tailored in advance.

Sometimes we'll want Varnish to decide what to do with the request depending on request headers. Sometimes we'll want to pass requests directly to the back end with a certain cookie set.

To quote the Varnish book,

VCL provides subroutines that allow you to affect the handling of any single request almost anywhere in the execution chain.

Purging the cache often needs to be done dynamically --- triggered by publishing articles or updating the website. Purging also needs to be done as atomically as possible --- meaning it should target the smallest possible scope, like a single resource or path.

This means that specific rules need to be defined, with their order of priority in mind. Some examples can be found in the Varnish book (which is available to read online or as a downloadable PDF).

Varnish has a set of tools for monitoring and administering the server:

  • There's varnishtop, which lets us monitor requested URLs and their frequency.

  • varnishncsa can be used to print the Varnish Shared memory Log (VSL): it dumps everything pointing to a certain domain and subdomains.

  • varnishhist reads the VSL and presents a live histogram showing the distribution of the last number of requests, giving an overview of server and back-end performance.

  • varnishtest is used to test VCL configuration files and develop VMODS.

  • varnishstat displays statistics about our varnishd instance:

  • varnishlog is used to get data about specific clients and requests.

Varnish Software offers a set of commercial, paid solutions either built on top of Varnish cache, or extending its usage and helping with monitoring and management: Varnish Api Engine, Varnish Extend, Akamai Connector for Varnish, Varnish Administration Console (VAC), and Varnish Custom Statistics (VCS).

The post How to Boost Your Server Performance with Varnish appeared first on SitePoint.

Catégories: News dév web

Don’t listen to those productivity gurus: why waking up at 6am won’t make you successful - 1 juillet, 2018 - 00:01
If you want to be successful, many experts and life-hackers say you should wake up at 6 am, take a cold shower, exercise, meditate, journal and brainstorm, review and set goals, read news and industry sites, consume inspiring content, eat a protein-rich breakfast Whew. That’s a lot to accomplish before 8 am. I’m not sure when the dogma of morning routines began to spread, but suddenly, these mile-long checklists are everywhere?—?especially in the startup world. Routines can be great, but I think there’s a misplaced emphasis on morning. Everyone has different peak hours. If you want to enhance your productivity, it doesn’t matter whether you’re a morning person or a night owl, or if you go for a run at 6 am or 6 pm.
Catégories: News dév web

Optimization Auditing: A Deep Dive into Chrome’s Dev Console - 29 juin, 2018 - 20:00

Chrome DevTools incorporates many sub-tools for debugging web applications on the client side --- like recording performance profiles and inspecting animations --- most of which you've likely been using since your early days of learning web development, mostly through the DevTools console.

Let's look at some of those tools, focusing particularly on the console and the performance metrics.

To access Chrome's DevTools:

  • right click anywhere on a page, click Inspect from the context menu
  • use the keyboard shortcuts Ctrl + Shift + I on Windows and Linux systems or Alt + Command + I on macOS
  • use the keyboard shortcuts Ctrl + Shift + J on Windows and Linux systems or Alt + Command + J on macOS.
The Snippets Tool

If you're frequently writing JavaScript code right in the console, make sure to use the Snippets feature of DevTools instead, which is similar to a code editor and provides mechanisms to write JavaScript code snippets, run them in the context of the current page and save them for later. It's better than writing multi-line JavaScript code directly in the console.

You can access the Snippets tool from the Sources panel. Once open, the console gets stacked below (if it doesn't, just press Escape) so you can write, run your code and see the console output at the same time.

Using the Chrome DevTools Console

You can use the console to interact with any web page using JavaScript. You can query and change the DOM and query/output different types of performance information.

The console can be opened either as a full-screen dedicated panel or as a drawer next to any other DevTools panel by pressing Escape while DevTools is open and has focus.

When working with the browser's console, if you want to enter multi-line expressions you need to use Shift + Enter, because just Enter will execute what's in the input line at that moment.

The console history

You can clear the console history in different ways:

  • by typing clear() in the console
  • by calling console.clear() method in the console or JavaScript code
  • by clicking on the red circle in the top left corner of the console
  • by pressing CTRL+L in macOS, Windows and Linux
  • by right-clicking in the Console and then pressing Clear console.

You can preserve the log (by enabling the Preserve log checkbox) between page refreshes or changes until you clear the console or close the tab.

You can save the history in the Console as a text file by right-clicking in the console and selecting Save as…, then choosing the location of a log file.

Console variables

The variables you create in the Console are persisted until you do a page refresh, so pay attention to when you're using keywords such as let or const when declaring variables. Running the same code or function for the second time will throw an Uncaught SyntaxError, saying that the identifier has already been declared. You can either use the OR (||) operator to check if the variable is already defined or you can use var to declare variables, since it doesn't complain for previously declared variables.

The post Optimization Auditing: A Deep Dive into Chrome’s Dev Console appeared first on SitePoint.

Catégories: News dév web

Designer, Don’t Create Apps When Websites Suffice - 29 juin, 2018 - 06:30

With that many smartphones around, you definitely need an app. This is what many inexperienced people, also known as clients, think. However, even some experts recommend using native apps for redesigns, rather than a website. This article explains why that’s wrong.

Let’s first define the terms. When speaking of websites and apps, we mean a presence accessible on the web, and the native app as we know it from the world’s app stores. A web app, in that sense, would be a website with expanded functionalities.

Photo: Depositphotos People Spend More and More Time on Their Mobile Devices

There are tons of studies on the topic of native app usage, supporting different points of view. Oftentimes, this only depends on how we read the results. Let’s take a look at the most striking examples.

In the current US Mobile App Report for 2017, the statistics company Comscore released numbers on the time users spend on their mobile devies. It turns out that mobile users spend 87 percent of their time in apps, and only 13 percent using mobile browsers on the web. This number has remained consistent for years, though it has been declining for mobile browsers over the past two years.

Well, this is a very obvious statement, is what your client may think. I need an app for my business. After all, this gives me a chance of 87:13 of me being noticed on mobile. This assumption is wrong.

If we look at the top 10 apps, it becomes obvious that this is not a rivalry between the open web and the app cosmos. The users simply use their devices differently.

Source: comScore

Here, it makes sense to take the Facebook app out of consideration, as it is nothing but an appified form of web usage. Facebook is by far the biggest digital presence of the planet. This can’t be considered a reference. The same goes for YouTube. Here, using the mobile site comes with no advantages. The app accesses the same content.

Noteworthy: eight of the ten most used apps either belong to Facebook or Google. Does your client have a chance to compete? The statistics are meant to be read like this, by the way: 81 percent of smartphone users use the Facebook app, and so forth.

Let’s use eMarketer to look at the usage areas of mobile app users. Most of them are mostly irrelevant on the stationary computer. The main reason for this being the very specific orientation of mobile apps towards mobile devices. Of course, I’d rather play a little game on my smartphone. After all, it has sensors to make playing more interesting, and I have it on me at all times. Of course, I’d rather use productivity apps like task managers, calendars, and so on on my smartphone, as they’re always accessible that way. Small utilities have only created their share via the availability of smartphones.

The gaming section has a solid share of 14,3 percent. However, they stand no chance against social networks and their share of 23,9 percent. Mobile video apps have a share of 18,7 percent. The number wasn’t on previous lists. Musically and Co have created a real boom. All of these application cases share the fact that they are destined for mobile devices.

To wrap this up, let’s take a look at a screenshot of today’s top apps in the Google Play Store:

No app version of a website in sight. (Screenshot. D. Petereit)

What did you notice for both studies above, as well as the screenshot? Right, there is no large brand with an app that would cover the classic tasks of the existing website.

Learning #01:

Apps are being used very selectively, and their application purpose has to be suitable for mobile usage. Pure information procurement on mobile devices only takes place in the form of the thirteen percent of mobile browser usage. Thus, it’s not worth it to create an app for that sole purpose. You’ll understand this if you ask yourself if you’ve ever searched for a restaurant, hairdresser, or IT service provider on the app store. Nope, you haven’t.

The Regular Average App Doesn’t Exist Anymore

In 2014, the average smartphone user installed 8.8 apps a month. At that point in time, this number had barely changed in three years. More recent numbers from 2017 show that this value has dropped significantly. Only 49 percent of the surveyed users still install apps; 32 percent install between one and three apps a month.

Things get even worse if we take a look at Localystics, as they found out that the average Android app loses more than 71 percent of their active users within the first 90 days of usage. After only thirty days, the value is already at 57 percent. Here, you also have to consider the fact that this number is an average across all apps. Here, games improve the average. If we left them out, the loss rate would sit around 90 percent.

In the first quarter of 2018, the available number of apps was around 2 million for iOS alone. This number has remained rather consistent since 2016. In the Google Play Store, we even find 3.8 million apps at the same time. This number has almost doubled since 2016.

Photo: Depositphotos

There’s only one logical conclusion to draw from these numbers. Don’t offer an app to your clients, unless they are some of the few that fit into the profile described above.

Let’s take Snapchat as an example. Here, the app is the product. The website only points towards the download of the app. Of course, this business needs an app, as it pretty much is the app. But this won’t work for the average customer.

Learning #02

Mobile internet usage is still rising, though not as rapidly as it did in the first ten smartphone years. App usage, on the other hand, is declining. Thus, I don’t recommend suggesting an app to clients. In almost any case, a responsive website as a progressive web app is more likely to be the means of choice. 

Advantages of Responsive Websites in Comparison to Native Apps

This may seem superficial, but of course, there are a few solid advantages responsive websites have over native apps. These are only actual advantages if you’ve come to the conclusion that a native app is not the right choice for the client.

Before we get to the advantages, we want to note that the standardization of web technologies has lead to the irrelevance of former disadvantages web apps had in comparison to native apps, including the access to device functions, above all else. Read our articles on PWA here and here, and convince yourself.

Now, let’s get to the advantages a web app has over native mobile apps:

The Costs Are Much Lower

The costs of a responsive website are much lower than the costs of an app. At least, this is the case if you have certain aesthetic aspirations regarding the app, and aren’t satisfied with the next best building kit system.

I have created an app version for an existing website’s sensible functions, and it took about three times the development time for far less functionality. This was hard to explain to the client.

You Don’t Need to Abide By App Store Rules

Native apps have to be handed in to be checked, and sometimes, they only arrive in the app store after a few days, from where they can make their way onto the consumer’s device. Each update has to undergo this process again. It is necessary to create and maintain app store developer accounts. A responsive website can simply be put online.

This Makes for Higher, Basically Immediate, Availability

The last sentence says it all. We can just put responsive websites online, and they become accessible right away. They don’t need to be installed. Nonetheless, it is possible to prepare our responsive website for pseudo-installation. The user can create an icon on the home screen which allows him to access the website at any time. With PWA, we have even more extensive options.

The Visibility in the Open Web is Higher Than in the App Store as Well

A responsive website can be designed with all the SEO tricks at our disposal, making it end up high in the search results. With an app, the only way to do so is to set up a website promoting the download, following the same SEO rules. Who’d think of this as a sensible step? Especially since this visibility wouldn’t even include the content of the app. Another point for the responsive website.

(Post Image Source: Depositphotos)

Catégories: News dév web

Improving Page Load Performance: Pingdom, YSlow and GTmetrix - 28 juin, 2018 - 20:00

Optimizing websites for speed is a craft, and each craft requires tools. The most-used website optimization tools are GTmetrix, YSlow and Pingdom Tools.

GTmetrix is a rather advanced tool that offers a lot on its free tier, but it also offers premium tiers. If you sign up, you can compare multiple websites, multiple versions of the same website, tested under different conditions, and save tests for later viewing.

YSlow is still relevant, although its best days were those when Firebug ruled supreme among the browser inspectors. It offers a Chrome app and other implementations --- such as add-ons for Safari and Opera, a bookmarklet, an extension for PhantomJS, and so on.

For advanced users, PhantomJS integration means that one could, for example, automate the testing of many websites --- hundreds or thousands --- and export the results into the database.

YSlow's Ruleset Matrix has for a number of years been a measuring stick for website performance.

Pingdom Tools is a SaaS service that offers monitoring and reporting of website performance, and it has strengthened its market position in recent years. It also offers a DNS health check and website speed testing on its free tier, which is comparable to GTMetrix and YSlow.

For the purposes of this article, we purchased a fitting domain name --- --- and installed Drupal with some demo content on it. We also installed WordPress on, and demo installations of Yii and Symfony on their respective subdomains.

We used the default WordPress starting installation. For Drupal, we used the Devel and Realistic Dummy Content extensions to generate demo content. For Symfony we used the Symfony demo application, and for Yii we used basic application template.

This way, we'll be able to compare these installations side-by-side, and point out the things that deserve attention.

Please be aware that these are development-level installations, used only for demonstration purposes. They aren't optimized for running in production, so our results are likely to be subpar.

The post Improving Page Load Performance: Pingdom, YSlow and GTmetrix appeared first on SitePoint.

Catégories: News dév web

Visual Design Tool for WordPress: Elementor Lets You Design Pages as Well as Your Entire Theme - 28 juin, 2018 - 16:00

The still rather new WordPress Page Builder Elementor already has over 900,000 active installations. I took a look at this whizkid for you.

This month, the design tool by Pojo Me Digital Ltd., which started out as a page builder, is celebrating its second anniversary. Since then, the plugin has established itself and became one of the market leaders in this rather overseeable branch.

By now, Elementor is more than a pure page builder, as it is also able to design areas of your site that have not been in your reach without coding before. Thus, calling it a real Theme Builder is legitimate.

Since this advanced functionality is exclusive to the premium version called Elementor Pro 2, however, we’ll take a closer look at the page builder features first. I’ll get back to the Theme Builder later.

Page Builder Plugins, the Homepage Builders for WordPress

Page builders for WordPress have a lot in common with the concept of the classic homepage builder, but they’re prepared for being used within the world’s most popular CMS. As usual, you click together pages element by element and fill these elements with content. This doesn’t require any coding knowledge, and no design knowledge either. Both are helpful, though.

Page builders are not to be confused with themes, although they fulfill the same task by principle. While a theme is a static template for giving a consistent frame for your content with very limited customizability via the WordPress customizer, a page builder provides far more flexibility regarding the design and presentation of your content.

As you can tell by the name, page builders let you build WordPress pages, but not posts. Page builders are only to be used for the static parts of your website. Further down, you’ll see how Elementor got rid of this limitation.

In order to complete the confusion, it should be mentioned that you still need a theme to be able to use a page builder. The WordPress default themes are a good fit. The makers of Elementor even offer a basic template as a foundation.

That’s not all, though. In Elementor’s library, you can choose from more than 100 themes, specifically made to be used in the Elementor design tool.

Elementor: From 0 to 900,000 Installations in Two Years

In 2016 Elementor started under the open source license which was pretty uncommon for this kind of plugin. Thus, I wasn’t surprised that Elementor got a lot of attention and goodwill right off the bat, especially since the developer promised that nothing would change about the project being available for free.

The development advanced quickly. New features were implemented week after week. Now, the scope of functions leaves little to be desired. For a while now, Pojo has also been offering a commercial version of the Page Builder, called Elementor Pro. Since then, new features have been developed for both the free and the commercial version. It seems like Pojo is set to keep their promise. The free version keeps getting supplied with new features.

Theme developers can integrate the free version into their offers, while the pro version can only be purchased by the end user. Pojo is not only the developer of Elementor but is also a key player in the distribution of premium turn-key themes. Logically, the company integrates their own Page Builder into each of their themes.

Elementor: Installation and Commissioning

Elementor is installed just like every other plugin. As it is available in the WordPress plugin repository, you can actually install and activate it right from within your site’s backend. Currently, since June of 2018, version 2.0.16 is the most recent one.

Once it’s active, the prominent button above the text editor window shows you the page builder’s availability.

This prominent button starts the editor. (Screenshot: Noupe)

On the left side, in the page navigation, you’ll find a menu item called Elementor. This is where you change global settings, and where you have access to all templates you set up. Maintenance tools and system information regarding the most critical parameters of your WordPress environment round off the feature set.

Elementor’s Catchy Interface Concept

Pushing the mentioned button on articles or pages opens a fullscreen editing window.

Elementor in action while working on a page. (Screenshot: Noupe)

The underlying theme’s design elements are displayed unedited, and uneditable. In the shown example, all changes that can be made with Elementor only affect the space dedicated to the page. This allows you to enhance pages in a way that was only known from print magazines before.

Access the templates right from within the editor. (Screenshot: Noupe)

If you’re missing out on ideas, choose one of the over 100 ready-to-use templates. This approach is also recommended for newbies, as each template is entirely editable once it has been implemented. This allows you to learn which results are possible while working on the living object. You can get an overview of all available templates in the Template Library.

Elementor comes with a whole bunch of professional templates. (Screenshot: Noupe)

Aside from the default features, such as adding text, images, or videos, Elementor also provides you with a wide range of additional elements, also known as widgets. These include accordions, sliders, carousels, media integrations, tabs, and more. You’re also able to access WordPress standards, such as the latest posts, most recent comments, and so forth.

As soon as a design finally meets your demands, you can test it in different resolutions via a small screen icon at the bottom right. Desktop, tablet, and smartphone are available, and Elementor sticks to the conventional breakpoints, such as 360 pixels for smartphones, for instance.

If you want the layout to break out of the theme’s default limitations, you have to head to the page attributes, and select the value “Elementor Canvas” instead of the default value “Default Template”.

A simple selection change comes with massive consequences. (Screenshot: Noupe)

With the help of the community, Elementor got translated into more than 50 languages, putting it into the top ten of the most translated WordPress plugins.

I’m especially impressed by two recent new additions that almost revolutionize the feature set of the Page Builder. One of them is called History and provides a full-fledged undo/redo and revision history. This is especially handy as soon as you notice a mistake you made quite some time ago. Instead of having to start over, you simply make use of Elementor’s undo, and reset the project to the last version before the error. Redo, on the other hand, lets you repeat an action.

Elementor’s History function helps you avoid design disasters. (Screenshot: Elementor)

The second innovation is Inline Editing. In Elementor wording, inline editing means that you’re able to create and edit text right from the frontend. This way, you get a much better feel for the look of your content, and you’ll catch yourself trying to realize (typo)graphic ideas more often than before.

What Happens When You Deactivate Elementor?

Page Builders belong to the group of plugins that you can’t just uninstall. Of course, nothing is stopping you from doing so, but you’ll undoubtedly be wondering what happened to your website’s design soon afterward.

Most Page Builders on the market work with shortcodes that they embed in contents. If you deinstall this kind of plugin, all shortcodes remain, but don’t make sense to WordPress anymore, destroying your contents as a result. Other plugins don’t leave their shortcodes behind, but also take all content that was created within the builder with them.

Elementor is a very commendable representative of its kind. While you do lose the entire layout upon uninstallation of Elementor, the contents remain as pure HTML. This doesn’t look as good as before anymore, but it still works.

If you think that a page builder generates a layout that continues to exist regardless of this page builder, you’re wrong. Thus, the decision for a page builder is crucial, as a switch is not all that easy either.

That’s because page builders aren’t themes, but plugins. Here, a framework with no static foundation, like a theme would have, is kept up for the runtime. Looking at it that way, page builders don’t build pages, but more a presentation framework that is applied when needed.

The statement that page builders would work with any theme out there is to be taken with a grain of salt. Of course, this statement is only meant to lower the inhibition level, suggesting that choosing such a product does not result in a long-term attachment. This is not unreservedly correct. You just have to try it.

More and more theme developers bundle their themes with a page builder. This looks highly comfortable at first, but, aside from the mentioned disadvantages, it also means that users of these combinations move outside of the WordPress standard, making them less flexible in dealing with the system.

Designers will rightfully criticize the fact that page builders always have their own design philosophy. Handling these attachments doesn’t have much to do with handling WordPress. It’s not consistent either. Design decisions made by the WordPress team for a good reason are thrown overboard. All users depend on their trust in the plugin creator to design a good usability. This trust is warranted for Elementor, though.

Fortunately, the risk of running into dealbreakers is low for Elementor, as the plugin’s basic version is available for free. This allows for in-depth testing before your final decision. Please don’t test it on your live website, but use something along the lines of WP-Staging to create a test environment.

Conclusion: Page Builder? Elementor

In comparison to others of its kind, Elementor is one of the tops in many regards. You have to keep in mind that switching between different Page Builders comes with a lot of effort. For instance, you’ll lose the layout if you decide to stop using Elementor or any competitor at one point.

Still, I wouldn’t say that Elementor was a bad choice. The opposite is the case. The decisive considerations are of a general nature. Do you want to use a Page Builder or not? As soon as you decide to use one, Elementor could be the plugin of your choice. With the new theme builder from Elementor Pro 2, the solution has become even more attractive – more on that in a bit.

Enthusiastic feedback on (Screenshot: Noupe)

This evaluation can be verified by the user feedback on the web. Criticism regarding Elementor is pretty rare, while excitement and sympathy for the product are common. According to the developer, the most lauded features are the performance, the compatibility with existing themes, the variety of turnkey templates, and the flexible editing.

Extended Functionality With Elementor Pro

Aside from the free version, there is Elementor Pro, which targets potential power users with its exclusive features. Elementor Pro is an extension to the free plugin, and can simply be added on top of the free variant. From there, you can seamlessly continue to work on your designs, while having additional features available to you.

Elegant search design for your WordPress site. (Screenshot: Elementor)

With the Pro version, comfortable ways to integrate WooCommerce elements into Elementor layouts become available. This is not possible in the free version. On top of that, you gain access to the steadily growing number of widgets that affect the entire site, such as the Search Widget, or the Menu Widget. The widget Animated Headline, which lets you use the popular text flip effect which allows you to exchange normally fixed text components, as well as the live form editor, are also exclusive to pro users. If you need more details about the differences between free and pro, you should visit this overview.

The menu widget in action. (GIF: Elementor)

The prices for the Pro version start at 49 USD in the personal plan for a one-year license on one domain. For 99 USD, you can use Elementor on three domains, while 199 USD gets you unlimited domains. The feature set is identical on all three plans. The one-year license means that you have access to all updates and support for one year. After that year, you can still continue to use that, then increasingly outdated version but won’t receive any more updates.

Elementor Pro 2 and the Theme Builder

Aside from the above-mentioned aspects, another unique benefit of Elementor is the high innovation speed of its development. It is very rare for a week to go by without any new features, templates, or other changes.

During April of this year, the developers launched the Elementor Theme Builder. It removes the limitation of a page builder to purely static content, allowing you to design areas that, without coding, you didn’t have access to before.

The Theme Builder also lets you build headers and footers, archives, and other overview pages, the search results, the 404, as well as the dynamic posts of your actual blog area; all visually.

To provide this, Elementor works with so-called Blocks. Blocks are ready-to-use content elements that you can adjust to your personal needs. The concept is somewhat reminiscent of Lego. Your edited blocks can then be saved as custom blocks, letting you slowly grow your own block collection, which will massively speed up your workflow. Out of the gate, Elementor’s Theme Builder comes with 235 finished blocks, covering the entire application range.

Elementor’s Blocks Concept. (Screenshot: Elementor)

I’m especially excited about the option to design dynamic blog content. For that, Elementor grants you access to the WordPress hooks that you would also use for coding. The dynamic preview, which can be filled with existing content, is convenient, making sure that your posts look good in the new design. This is hard to judge from just looking at one single post.

Using conditions, you define where your element will be applied. (Screenshot: Elementor)

Once completed, freely adjustable condition cascades allow you to choose where your freshly designed element, like your new header, should appear. You can even restrict designs to individual pages or posts, or other taxonomies. This enables you to design an entirely custom-made website, without having to write a single snippet of code.

The following video gives you an excellent first impression of what the theme builder’s capable of, although the presentation of the interactions necessary is a bit fast:

One thing the theme builder can’t do is to create a complete theme that you could then export, to sell it, for example. Thus, you always need a basic template to use as the foundation. But I mentioned that already.

The above-shown video is one of over 100 videos Elementor has produced as to support their users via YouTube. By now, their YouTube channel has close to 28,000 subscribers. Community support can be found in the dedicated Facebook group, the Elementor Community, which counts almost 19,000 members.

On top of all that, Pojo provides a complete code reference for Elementor, making the work of developers easier. About 70 plugins based on Elementor in some form or another, are proof of that idea’s success. In contrast to other page builders, Elementor is not a closed system, but more of an open standard that many can agree on. That’s always a good thing. This way, a project gains more long-term stability and grows faster.

To Buy or Not to Buy?

Let me put it this way; I bought Elementor Pro 2. I will use it to create client websites where the budget doesn’t fit the aspirations. This way, Elementor turns into my internal homepage building kit. The license allows explicitly for the creation of websites for third parties, so I’m in the clear. The alternative option would be using a dedicated website builder. But why should I bother? It is way more comfortable to use WordPress, which I already know well, in conjunction with a visual tool to speed up the workflow.

Thus, the answer is: Yes, buy it!

Catégories: News dév web

How to Use Varnish and Cloudflare for Maximum Caching - 27 juin, 2018 - 20:00

This article is part of a series on building a sample application --- a multi-image gallery blog --- for performance benchmarking and optimizations. (View the repo here.)

As we can see in this report, our site's landing page loads very quickly and generally scores well, but it could use another layer of caching and even a CDN to really do well.

To learn more about GTMetrix and other tools you can use to measure and debug performance, see Improving Page Load Performance: Pingdom, YSlow and GTmetrix

Let's use what we've learned in our previous Varnish post, along with the knowledge gained in the Intro to CDN and Cloudflare posts to really tune up our server's content delivery now.


Varnish was created solely for the purpose of being a type of super-cache in front of a regular server.

Note: Given that Nginx itself is a pretty good server already, people usually opt for one or the other, not both. There's no harm in having both, but one does have to be wary of cache-busting problems which can occur. It's important to set them both up properly so that the cache of one of them doesn't remain stale while the other's is fresh. This can lead to different content being shown to different visitors at different times. Setting this up is a bit outside the context of this post, and will be covered in a future guide.

We can install Varnish by executing the following:

curl -L | sudo apt-key add - sudo apt-get update sudo apt-get install -y apt-transport-https

The current list of repos for Ubuntu does not have Varnish 5+ available, so additional repositories are required. If the file /etc/apt/sources.list.d/varnishcache_varnish5.list doesn't exist, create it. Add to it the following:

deb xenial main deb-src xenial main

Then, run:

sudo apt-get update sudo apt-get install varnish varnishd -V

The result should be something like:

$ varnishd -V varnishd (varnish-5.2.1 revision 67e562482) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2015 Varnish Software AS

We then change the server's default port to 8080. We're doing this because Varnish will be sitting on port 80 instead, and forwarding requests to 8080 as needed. If you're developing locally on Homestead Improved as instructed at the beginning of this series, the file you need to edit will be in /etc/nginx/sites-available/ Otherwise, it'll probably be in /etc/nginx/sites-available/default.

server { listen 8080 default_server; listen [::]:8080 default_server ipv6only=on;

Next up, we'll configure Varnish itself by editing /etc/default/varnish and replacing the default port on the first line (6081) with 80:

DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"

The same needs to be done in /lib/systemd/system/varnish.service:

ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

Finally, we can restart both Varnish and Nginx for the changes to take effect:

sudo service nginx restart sudo /etc/init.d/varnish stop sudo /etc/init.d/varnish start systemctl daemon-reload

The last command is there so that the previously edited varnish.service daemon settings also reload, otherwise it'll only take into account the /etc/default/varnish file's changes. The start + stop procedure is necessary for Varnish because of a current bug which doesn't release ports properly unless done this way.

Comparing the result with the previous one, we can see that the difference is minimal due to the landing page already being extremely optimized.


Both of the low grades are mainly the result of us "not serving from a consistent URL", as GTMetrix would put it:

This happens because we used random images to populate our galleries, and the sample of randomness was small, so some of them are repeated. This is fine and won't be an issue when the site is in production. In fact, this is one of the very rare cases where a site will by default score better in production than it does in development.

The post How to Use Varnish and Cloudflare for Maximum Caching appeared first on SitePoint.

Catégories: News dév web


S'abonner à agrégateur - News dév web


Une question, une remarque ?
Une demande de devis ?


A propos...

Yves Bresson, ingénieur en informatique, consultant freelance, spécialisé dans le développement web (CMS, PHP, Laravel, Ajax, jQuery, Bootstrap, HTML5, CSS3) et d'applications mobiles (iPhone, Android). Voir le profil de Yves Bresson sur LinkedIn