Industry Buzz

HTTP/3: the past, the present, and the future

CloudFlare Blog -

During last year’s Birthday Week we announced preliminary support for QUIC and HTTP/3 (or “HTTP over QUIC” as it was known back then), the new standard for the web, enabling faster, more reliable, and more secure connections to web endpoints like websites and APIs. We also let our customers join a waiting list to try QUIC and HTTP/3 as soon as they became available.Since then, we’ve been working with industry peers through the Internet Engineering Task Force, including Google Chrome and Mozilla Firefox, to iterate on the HTTP/3 and QUIC standards documents. In parallel with the standards maturing, we’ve also worked on improving support on our network.We are now happy to announce that QUIC and HTTP/3 support is available on the Cloudflare edge network. We’re excited to be joined in this announcement by Google Chrome and Mozilla Firefox, two of the leading browser vendors and partners in our effort to make the web faster and more reliable for all.In the words of Ryan Hamilton, Staff Software Engineer at Google, “HTTP/3 should make the web better for everyone. The Chrome and Cloudflare teams have worked together closely to bring HTTP/3 and QUIC from nascent standards to widely adopted technologies for improving the web. Strong partnership between industry leaders is what makes Internet standards innovations possible, and we look forward to our continued work together.”What does this mean for you, a Cloudflare customer who uses our services and edge network to make your web presence faster and more secure? Once HTTP/3 support is enabled for your domain in the Cloudflare dashboard, your customers can interact with your websites and APIs using HTTP/3. We’ve been steadily inviting customers on our HTTP/3 waiting list to turn on the feature (so keep an eye out for an email from us), and in the coming weeks we’ll make the feature available to everyone.What does this announcement mean if you’re a user of the Internet interacting with sites and APIs through a browser and other clients? Starting today, you can use Chrome Canary to interact with Cloudflare and other servers over HTTP/3. For those of you looking for a command line client, curl also provides support for HTTP/3. Instructions for using Chrome and curl with HTTP/3 follow later in this post.The Chicken and the EggStandards innovation on the Internet has historically been difficult because of a chicken and egg problem: which needs to come first, server support (like Cloudflare, or other large sources of response data) or client support (like browsers, operating systems, etc)? Both sides of a connection need to support a new communications protocol for it to be any use at all.Cloudflare has a long history of driving web standards forward, from HTTP/2 (the version of HTTP preceding HTTP/3), to TLS 1.3, to things like encrypted SNI. We’ve pushed standards forward by partnering with like-minded organizations who share in our desire to help build a better Internet. Our efforts to move HTTP/3 into the mainstream are no different.Throughout the HTTP/3 standards development process, we’ve been working closely with industry partners to build and validate client HTTP/3 support compatible with our edge support. We’re thrilled to be joined by Google Chrome and curl, both of which can be used today to make requests to the Cloudflare edge over HTTP/3. Mozilla Firefox expects to ship support in a nightly release soon as well.Bringing this all together: today is a good day for Internet users; widespread rollout of HTTP/3 will mean a faster web experience for all, and today’s support is a large step toward that.More importantly, today is a good day for the Internet: Chrome, curl, and Cloudflare, and soon, Mozilla, rolling out experimental but functional, support for HTTP/3 in quick succession shows that the Internet standards creation process works. Coordinated by the Internet Engineering Task Force, industry partners, competitors, and other key stakeholders can come together to craft standards that benefit the entire Internet, not just the behemoths.Eric Rescorla, CTO of Firefox, summed it up nicely: “Developing a new network protocol is hard, and getting it right requires everyone to work together. Over the past few years, we've been working with Cloudflare and other industry partners to test TLS 1.3 and now HTTP/3 and QUIC. Cloudflare's early server-side support for these protocols has helped us work the interoperability kinks out of our client-side Firefox implementation. We look forward to advancing the security and performance of the Internet together.”How did we get here?Before we dive deeper into HTTP/3, let’s have a quick look at the evolution of HTTP over the years in order to better understand why HTTP/3 is needed.It all started back in 1996 with the publication of the HTTP/1.0 specification which defined the basic HTTP textual wire format as we know it today (for the purposes of this post I’m pretending HTTP/0.9 never existed). In HTTP/1.0 a new TCP connection is created for each request/response exchange between clients and servers, meaning that all requests incur a latency penalty as the TCP and TLS handshakes are completed before each request.Worse still, rather than sending all outstanding data as fast as possible once the connection is established, TCP enforces a warm-up period called “slow start”, which allows the TCP congestion control algorithm to determine the amount of data that can be in flight at any given moment before congestion on the network path occurs, and avoid flooding the network with packets it can’t handle. But because new connections have to go through the slow start process, they can’t use all of the network bandwidth available immediately.The HTTP/1.1 revision of the HTTP specification tried to solve these problems a few years later by introducing the concept of “keep-alive” connections, that allow clients to reuse TCP connections, and thus amortize the cost of the initial connection establishment and slow start across multiple requests. But this was no silver bullet: while multiple requests could share the same connection, they still had to be serialized one after the other, so a client and server could only execute a single request/response exchange at any given time for each connection.As the web evolved, browsers found themselves needing more and more concurrency when fetching and rendering web pages as the number of resources (CSS, JavaScript, images, …) required by each web site increased over the years. But since HTTP/1.1 only allowed clients to do one HTTP request/response exchange at a time, the only way to gain concurrency at the network layer was to use multiple TCP connections to the same origin in parallel, thus losing most of the benefits of keep-alive connections. While connections would still be reused to a certain (but lesser) extent, we were back at square one.Finally, more than a decade later, came SPDY and then HTTP/2, which, among other things, introduced the concept of HTTP “streams”: an abstraction that allows HTTP implementations to concurrently multiplex different HTTP exchanges onto the same TCP connection, allowing browsers to more efficiently reuse TCP connections.But, yet again, this was no silver bullet! HTTP/2 solves the original problem — inefficient use of a single TCP connection — since multiple requests/responses can now be transmitted over the same connection at the same time. However, all requests and responses are equally affected by packet loss (e.g. due to network congestion), even if the data that is lost only concerns a single request. This is because while the HTTP/2 layer can segregate different HTTP exchanges on separate streams, TCP has no knowledge of this abstraction, and all it sees is a stream of bytes with no particular meaning.The role of TCP is to deliver the entire stream of bytes, in the correct order, from one endpoint to the other. When a TCP packet carrying some of those bytes is lost on the network path, it creates a gap in the stream and TCP needs to fill it by resending the affected packet when the loss is detected. While doing so, none of the successfully delivered bytes that follow the lost ones can be delivered to the application, even if they were not themselves lost and belong to a completely independent HTTP request. So they end up getting unnecessarily delayed as TCP cannot know whether the application would be able to process them without the missing bits. This problem is known as “head-of-line blocking”.Enter HTTP/3This is where HTTP/3 comes into play: instead of using TCP as the transport layer for the session, it uses QUIC, a new Internet transport protocol, which, among other things, introduces streams as first-class citizens at the transport layer. QUIC streams share the same QUIC connection, so no additional handshakes and slow starts are required to create new ones, but QUIC streams are delivered independently such that in most cases packet loss affecting one stream doesn't affect others. This is possible because QUIC packets are encapsulated on top of UDP datagrams.Using UDP allows much more flexibility compared to TCP, and enables QUIC implementations to live fully in user-space — updates to the protocol’s implementations are not tied to operating systems updates as is the case with TCP. With QUIC, HTTP-level streams can be simply mapped on top of QUIC streams to get all the benefits of HTTP/2 without the head-of-line blocking.QUIC also combines the typical 3-way TCP handshake with TLS 1.3's handshake. Combining these steps means that encryption and authentication are provided by default, and also enables faster connection establishment. In other words, even when a new QUIC connection is required for the initial request in an HTTP session, the latency incurred before data starts flowing is lower than that of TCP with TLS.But why not just use HTTP/2 on top of QUIC, instead of creating a whole new HTTP revision? After all, HTTP/2 also offers the stream multiplexing feature. As it turns out, it’s somewhat more complicated than that.While it’s true that some of the HTTP/2 features can be mapped on top of QUIC very easily, that’s not true for all of them. One in particular, HTTP/2’s header compression scheme called HPACK, heavily depends on the order in which different HTTP requests and responses are delivered to the endpoints. QUIC enforces delivery order of bytes within single streams, but does not guarantee ordering among different streams.This behavior required the creation of a new HTTP header compression scheme, called QPACK, which fixes the problem but requires changes to the HTTP mapping. In addition, some of the features offered by HTTP/2 (like per-stream flow control) are already offered by QUIC itself, so they were dropped from HTTP/3 in order to remove unnecessary complexity from the protocol.HTTP/3, powered by a delicious quicheQUIC and HTTP/3 are very exciting standards, promising to address many of the shortcomings of previous standards and ushering in a new era of performance on the web. So how do we go from exciting standards documents to working implementation?Cloudflare's QUIC and HTTP/3 support is powered by quiche, our own open-source implementation written in Rust.You can find it on GitHub at github.com/cloudflare/quiche.We announced quiche a few months ago and since then have added support for the HTTP/3 protocol, on top of the existing QUIC support. We have designed quiche in such a way that it can now be used to implement HTTP/3 clients and servers or just plain QUIC ones.How do I enable HTTP/3 for my domain?As mentioned above, we have started on-boarding customers that signed up for the waiting list. If you are on the waiting list and have received an email from us communicating that you can now enable the feature for your websites, you can simply go to the Cloudflare dashboard and flip the switch from the "Network" tab manually:We expect to make the HTTP/3 feature available to all customers in the near future.Once enabled, you can experiment with HTTP/3 in a number of ways:Using Google Chrome as an HTTP/3 clientIn order to use the Chrome browser to connect to your website over HTTP/3, you first need to download and install the latest Canary build. Then all you need to do to enable HTTP/3 support is starting Chrome Canary with the “--enable-quic” and “--quic-version=h3-23” command-line arguments.Once Chrome is started with the required arguments, you can just type your domain in the address bar, and see it loaded over HTTP/3 (you can use the Network tab in Chrome’s Developer Tools to check what protocol version was used). Note that due to how HTTP/3 is negotiated between the browser and the server, HTTP/3 might not be used for the first few connections to the domain, so you should try to reload the page a few times.If this seems too complicated, don’t worry, as the HTTP/3 support in Chrome will become more stable as time goes on, enabling HTTP/3 will become easier.This is what the Network tab in the Developer Tools shows when browsing this very blog over HTTP/3:Note that due to the experimental nature of the HTTP/3 support in Chrome, the protocol is actually identified as “http2+quic/99” in Developer Tools, but don’t let that fool you, it is indeed HTTP/3.Using curlThe curl command-line tool also supports HTTP/3 as an experimental feature. You’ll need to download the latest version from git and follow the instructions on how to enable HTTP/3 support.If you're running macOS, we've also made it easy to install an HTTP/3 equipped version of curl via Homebrew: % brew install --HEAD -s https://raw.githubusercontent.com/cloudflare/homebrew-cloudflare/master/curl.rb In order to perform an HTTP/3 request all you need is to add the “--http3” command-line flag to a normal curl command: % ./curl -I https://blog.cloudflare.com/ --http3 HTTP/3 200 date: Tue, 17 Sep 2019 12:27:07 GMT content-type: text/html; charset=utf-8 set-cookie: __cfduid=d3fc7b95edd40bc69c7d894d296564df31568723227; expires=Wed, 16-Sep-20 12:27:07 GMT; path=/; domain=.blog.cloudflare.com; HttpOnly; Secure x-powered-by: Express cache-control: public, max-age=60 vary: Accept-Encoding cf-cache-status: HIT age: 57 expires: Tue, 17 Sep 2019 12:28:07 GMT alt-svc: h3-23=":443"; ma=86400 expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" server: cloudflare cf-ray: 517b128df871bfe3-MAN Using quiche’s http3-clientFinally, we also provide an example HTTP/3 command-line client (as well as a command-line server) built on top of quiche, that you can use to experiment with HTTP/3.To get it running, first clone quiche’s GitHub repository:$ git clone --recursive https://github.com/cloudflare/quiche Then build it. You need a working Rust and Cargo installation for this to work (we recommend using rustup to easily setup a working Rust development environment).$ cargo build --examples And finally you can execute an HTTP/3 request:$ RUST_LOG=info target/debug/examples/http3-client https://blog.cloudflare.com/ What’s next?In the coming months we’ll be working on improving and optimizing our QUIC and HTTP/3 implementation, and will eventually allow everyone to enable this new feature without having to go through a waiting list. We'll continue updating our implementation as standards evolve, which may result in breaking changes between draft versions of the standards.Here are a few new features on our roadmap that we're particularly excited about:Connection migrationOne important feature that QUIC enables is seamless and transparent migration of connections between different networks (such as your home WiFi network and your carrier’s mobile network as you leave for work in the morning) without requiring a whole new connection to be created.This feature will require some additional changes to our infrastructure, but it’s something we are excited to offer our customers in the future.Zero Round Trip Time ResumptionJust like TLS 1.3, QUIC supports a mode of operation that allows clients to start sending HTTP requests before the connection handshake has completed. We don’t yet support this feature in our QUIC deployment, but we’ll be working on making it available, just like we already do for our TLS 1.3 support.HTTP/3: it's alive!We are excited to support HTTP/3 and allow our customers to experiment with it while efforts to standardize QUIC and HTTP/3 are still ongoing. We'll continue working alongside other organizations, including Google and Mozilla, to finalize the QUIC and HTTP/3 standards and encourage broad adoption.Here's to a faster, more reliable, more secure web experience for all.

Closing the Network Gap

LinkedIn Official Blog -

At LinkedIn, we believe that two people with equal talent should have equal access to opportunity. But unfortunately, that’s not always the case.  We’ve all heard that “who you know” matters, and research proves that’s true. More than 70% of professionals get hired at companies where they already have a connection. And on LinkedIn, applicants who are referred to a job by a current employee are nine times more likely to get hired.  In other words, networks matter a lot. But, like opportunity,... .

The Best 6 Online Tools for Side Hustlers

HostGator Blog -

The post The Best 6 Online Tools for Side Hustlers appeared first on HostGator Blog. The nature of a side hustle is that you build your business in your free time. What’s the main problem with building a business during free time? Most people have a demanding 9-5, families, a rigorous exercise schedule, Netflix shows to catch up on, and other pressing goals. Everyone only has 24 hours in a day, so how do people successfully balance their lives all while growing a new business? The secret lies in time management.  By time management, I don’t just mean sticking to a rigorous schedule. I mean finding literal Hermione Granger Time-Turners to help free up more of your time (aka online tools that help you manage tasks and time efficiently).  Here is a list of essential online tools for side hustlers that will help you multitask, automate the mundane, and keep you organized. Project Management Tools for Side Hustlers Side hustlers need a way to organize tasks, keep track of clients, organize workflows, and keep any members of their team on the same page. Thankfully, there are several online project management tools that will help you stay organized and productive, no matter what your side hustle is. Here are two crowd pleasers. Asana Asana is one of the most popular project management tools for a good reason. It’s an online cloud software that helps you schedule tasks, visualize your workflow, plan how your project pieces fit together, and quickly identify any overlaps in your schedule. Asana also integrates with other top productivity tools to make it even easier to use. Trello If you’re a more visual person, then Trello might be a better fit than Asana. Trello helps you organize your tasks into boards, lists, and cards. You can move task cards from board to board as you complete tasks. Everyone on your team has the same access to cards, making it easy to see where a project stands and what needs to happen to move a project from inception to completion. Both of these tools will help you stay organized and boost productivity rates, especially if you have a team of individuals working with you.  It’s worth mentioning that if you own a smaller side hustle and are just starting out, a Google calendar on your iPhone may be sufficient to help keep you organized. Invoice Tracking Software for Side Hustlers It’s true you can create invoices using Word or Google Docs, but with highly sophisticated (and free!) software available, why would you opt for the more time-consuming route?  There are several free invoicing tools on the market that will help you keep your finances organized, store client information in one convenient location, and provide a comprehensive view into which invoices have been paid, how many invoices are pending, and how much money you’ve made. Here is my favorite free invoicing tool. invoicely invoicely is a free tool that makes invoicing effortless. With this tool, you can quickly enter and store client information, add your logo and personal information to invoices, and then create invoices with the click of a button. Invoicely also has a powerful dashboard that shows you pending and paid invoices. Clients can even pay invoices via Mollie, Stripe, PayPal, and more. If you’re looking for an excellent resource to track finances in one place, invoicely is an excellent resource. Did I mention invoicely provides a free plan? Of course, you can always upgrade to a paid plan for more features, but the free plan is comprehensive. Payment Processors for Side Hustlers There are so many options for collecting payment as a side hustler. You can collect cold, hard cash, ask clients to write checks, or use one of the many mobile payment options like Venmo, PayPal or Cash. If you’re looking for a payment processor that you can use via mobile device that also integrates with your side hustle website, your options are limitless. You can’t go wrong with Stripe. Stripe Stripe is an awesome payment processor for side hustlers with an online business. Its integrations are broad and its features are robust. Things you can do with Stripe include the ability to accept payments via mobile device, secure payment information, manage business operations through an intuitive dashboard, and much more. Pricing starts at a 2.9% + .30 cents for each successful transaction, but there are no hidden fees, set up fees, or monthly fees. Payment processing is a must for any side hustler. What you end up using will depend on your needs as a business owner. If your business is smaller, Venmo or PayPal should be sufficient. If you need a payment processor that integrates with your website, look into Stripe. Time Management Apps for Side Hustlers Are you a side hustler that works hourly? Awesome! There are so many time tracking tools available to you, and most of them are free or at least have a free, yet limited, version of the software. If you need a time tracking software, it’s time to check out Hubstaff and Toggl. Hubstaff Hubstaff has both free and paid versions of their product. The free version allows one user to track their time, track limited activity rates, provides random screen captures, and send limited payments. If you manage a team as part of your side hustle, it’s worth it to look into the paid versions because the Hubstaff features are helpful for any business owner. Features include: Time trackingOnline timesheetsProductivity monitoringPayroll softwareGeofencingTeam schedulingAnd more! Toggl Toggl is another popular time tracking app to consider. With Toggl, you have access to one-click timers, tracking reminders, and over 100+ app integrations. If you don’t want to track your hours in real-time, Toggl also allows you to manually enter time after-the-fact. Another cool feature of Toggl is the ability to view your project dashboard and get reports. This helps you see where you can save time and work more efficiently. Toggl recently conducted a study and found that not only was Toggl a huge time-saver, but a money-saver as well. Toggl found that the average estimate of money saved using Toggl was $12,441 per team/year with consultancies reporting up to $16,203 saved. Creating Your Side Hustle Toolkit There are several resources to help you grow your side hustle including online tools that will help you make the best use out of the short 24 hour day you have. There are no shortage of tools to help you create a successful side business, and tools from HostGator are no exception. If you’re ready to get started, check out Gator Builder—our drag-and-drop website builder will help you get your feet off the ground. Find the post on the HostGator Blog

Usability 101: Building User-friendly Websites and Applications

Reseller Club Blog -

Can you tell the difference between these two images? The answer is not very hard to guess, is it?  Usability lies at the nucleus of all ideas. No matter what form these ideas may be translated into – objects, products, software, etc., the significance that they deserve is directly proportional to their usability quotient. Ideas that aren’t usable can only be passed off as good stories. Same goes for websites and applications. The usability of a website helps users find their way on the website and helps them complete their goals in the best possible way. But how can one ensure that they are hitting the nail on its head when it comes to making websites and applications perfectly usable? The answer is – ALWAYS start with the user-first approach! Before getting started with any design project, it is vital to answer two questions – Who is my user? With what intention is he/she coming to my website? Creating a user profile will help you answer both these questions.  This knowledge not only helps in understanding and predicting user behaviour, but also helps in meeting two of the most crucial goals of UI/UX design – Goal #1: Helping the user find what he/she is looking for as quickly as possible Goal #2: Reducing cognitive load i.e. eliminating questions from the user’s mind Even though these goals sound a bit complex, they are, in fact, achievable. Let’s learn about the rules of usability that give direction and guide us towards meeting these goals. Rule #1: Design an overarching structure of your website Users often tend to get lost between all the text that web pages are filled with. In order to prevent this from happening, it is important to guide the user to help him/her take the right direction. The key to achieving this is to organize the contents of the web pages. Break the content into logical sections in a way that it tells the same story despite being a part of different content blocks.  Emphasize important pieces of content by using typography.  Organize the content based on its degree of importance. Identify common elements that you want all your web pages to contain in order to maintain repetition and consistency. Rule #2: Create effective visual hierarchies Studies suggest that users don’t really read web pages; they scan them to find only those words that closely resemble what they are looking for. Most website visitors only read 20% of the website content because they don’t read web pages the same way as they would while reading a book or a newspaper. Web-users visit websites to get quick answers. This is exactly why prominence, grouping, and nesting are essential concepts: Prominence: Using font styles, sizes, and colours to establish a content hierarchy Grouping: Using proximity to create a visual closeness between related content Nesting: Segregating and classifying content under a parent line to display what is part of what Rule #3: Use conventions You don’t have to reinvent the wheel. After years of usage and exposure to specific kinds of icons, colours, shapes, placements, etc. used to convey any given idea, humans have been subconsciously trained to associate the same icons, colours, shapes, placements, etc. with specific meanings. For example, we all know that a logo always sits on the header of the website, we all know that the magnifying glass denotes the search box, we all know that a green button is most likely to convey the affirmative option, so on and so forth. These are tried and tested methods and they have been working fine. So try and stick to these conventional means of representation. Rule #4: Make your clickable items obvious Design for mindless clicks. In other words, do not leave any space for confusion when it comes to prompting your users to click on your CTA (call to action) buttons. Make your buttons discoverable by using conventional formats in terms of shape, size, colour, placement, and text. We’ve spoken about designing better buttons at length in this article.  Rule #5: Eliminate distractions Reduce clutter wherever and as much as you can. Focus on what is important so that even your visitors follow suite. Designers and content writers, alike, find themselves walking a tightrope when it comes to deciding the length of content that needs to go on any given web page, and the amount of design elements that need to be flaunted. Steer clear of unnecessary elements on the web page so as to prevent your website visitors from getting distracted from the main goal that you want them to achieve. Rule #6: Reduce your content Get rid of half of your content, and then get rid of half of what’s left. Use a combination of a handful of text and a bunch of lively graphics to say what you initially wanted to say with buckets full of text. Practise minimalism and only keep what is necessary. Your website visitors only read 20% of your content, remember? In conclusion, we have one thing to say – when your ultimate aim is to convince your users to buy into your idea or even buy your product, you must do whatever you can to help your users find what they are looking for quickly and effortlessly. Try your best, and then try a little more, to eliminate any question marks from popping in the minds of your users. It only takes one positive website surfing experience to pave the way for repeated user interactions in the future; so make sure that you nail it in the first go! (Originally published as part of our TechTalks series.) .fb_iframe_widget_fluid_desktop iframe { width: 100% !important; } The post Usability 101: Building User-friendly Websites and Applications appeared first on ResellerClub Blog.

IGTV for Business: New Research for Marketers

Social Media Examiner -

Thinking about adding IGTV to your marketing activities? Want to know how other businesses and marketers are finding success with IGTV? In this article, you’ll discover insights from new research that shows what types of businesses use IGTV, how marketers are reaching IGTV viewers in the Instagram feed, and more. Why Consider IGTV? According to […] The post IGTV for Business: New Research for Marketers appeared first on Social Media Marketing | Social Media Examiner.

Designing with Compassion

Facebook Design -

Keeping people at the heart of product developmentBy Davina Baum and Jessica MetroAs content strategists, researchers and product designers at Facebook, we aim to create experiences that are clear, consistent and compassionate through both the language and the design. Everything from the tone we use to the controls we provide helps to make products across Facebook that are more thoughtful, more human and better for the people using them.Building for People FirstWe work together to consider the entire user experience, paying close attention to both the product design and the content strategy. The two must coexist in a way that ensures that the products we make actually solve the problems people are facing, that the user experience is intuitive and easy-to-use, and that the visual design feels familiar and engaging. Across Facebook’s family of apps, our teams are dedicated to designing for well-being. We take on topics like suicide prevention, including tools and resources for people at risk and their concerned family and friends; memorialization, to preserve the wishes of people who’ve passed away and support the bereaved; and harassment.A Case StudyAs we learn about how people engage with our products, key insights help guide the decisions we make to launch new products and features, evolve what is already in market, sunset certain features and identify and build teams around new opportunities to create better experiences for people. Back in 2017, our team explored the ways people experience harassment on Facebook, especially through receiving unwanted messages. As a result of these explorations, we built the capability to ignore a conversation in Messenger. Let’s look at the content and product design process through the lens of that product. Our team sees it as a process in four stages — understand, design, gather feedback, build — with some fluidity between each stage as we go.Stage 1: UnderstandWe start each project by doing the work to understand the problem. This helps us recognize people’s needs and uncover opportunities to improve the products we build. The core product team consists of a product manager, data scientist, content strategist, product designers, researchers and engineers. In the case of the work on harassment, the team first aligned on the goal to explore whether our harassment-mitigation tools were serving people’s needs. To understand what people were experiencing, we looked at foundational research insights and survey responses. We also dove into the data to understand behavior at scale and find patterns. To narrow our focus and scope, we condensed all of this information into “people problems,” which are concise explanations of the issues people are facing. The team discussed and debated which ones to address, combining what we knew from existing data and research — as well as engineering constraints — to define the biggest opportunities.People problems and opportunities surfaced during a team sprintLet’s take a step back here, because in many cases, and on our team in particular, “people problems” are serious, real-world problems. A people problem might be, “I want to stop someone I’ve just met online from sending me inappropriate images on Messenger.” These scenarios, reframed as people problems, allow us to abstract and generalize the problem so that it’s solvable — but individuals can’t be abstracted and generalized. So we never lose sight of the people who are facing these problems in the real world — where safety and reputation may be at risk. As a result of our work to understand the problems, we decided that building additional tools to help address harassment over Messenger was the biggest opportunity. Specifically, we heard that the concept of blocking someone on Messenger or Facebook felt extreme for repetitive badgering or for those who knew the harasser in person. While the block feature did not explicitly declare to the person that they’d been blocked, there were indicators that a savvy user might be able to figure out. Even for the person doing the blocking, the action might feel rude. And in cases of harassment, blocking someone on Facebook can prevent you from being able to report them, because they’re hidden from you.Stage 2: DesignWe started to think of our harassment-mitigation tools on Messenger along a spectrum: from muting, which merely turns off notifications, to blocking messages, to blocking on Facebook. But between muting and blocking messages, there was a hole we sought to fill. We wondered, how might the capability to “hide” a conversation work?Spectrum of harassment-mitigation toolsIn broad strokes, we outlined the user experience: The person being hidden could continue to send messages without knowing that their messages were going unseen, and the person hiding the conversation could proceed without being aware of annoying or harassing messages. If the recipient needed to seek out the conversation, they could find it easily and unhide it if necessary. They could also block someone they had hidden. We had extensive conversations about product functionality, from the very specific to the very broad. We discussed questions like:Where would people expect to find the option to hide a conversation?How do we communicate what will happen without overwhelming someone?Where should the balance be between feeling lightweight versus robust and satisfying?What exactly does the person who’s being ignored see?What is the visual affordance to indicate the feature is on or off?Where do we surface the ability to escalate to a block?How will this work across Android, iOS, mobile web, desktop web and all the other platforms we support?Whiteboard wireframes mapping out the flowWhile answering these questions, we sketched out design solutions, starting wide and narrowing to what might have the greatest impact. We created mid-fidelity mocks to get a better sense of how the top solution would fit in the existing product, explored content options in context and visualized the design details. We talked a lot amongst ourselves and with our content and design colleagues to get feedback and ensure that we were thinking deeply from the perspective of people experiencing these problems. To flesh out the interaction design and make our ideas feel like a real product, we eventually created high-fidelity prototypes.High-fidelity interface explorationsStage 3: Gather FeedbackHow could we deepen our understanding of this problem space? We needed to do in-person research. Data plus existing research on harassment got us part of the way to understanding the problem. In order to ensure our solutions truly meet people’s needs, our content strategy and design teams rely heavily on research — and that often takes us away from our offices and into the world. In our case, we’re based in California, so our team planned a trip to India to get a first-hand understanding of how people who live in a culture different than our own experience harassment on Facebook and Messenger. Our team — including two researchers, a product manager, two product designers, a content strategist and an engineer — traveled to Delhi and Ghaziabad, a smaller city near Delhi. We conducted focus groups (grouped by men and women) and in-home interviews, speaking with a wide range of people. To get a sense of how they understand and use the current blocking options, we showed them the existing tools for blocking messages, receiving message requests, or turning on the ability to review the posts you’re tagged in. We then sought their feedback on prototypes for new ideas including the feature to hide conversations and a promotion to raise awareness about message blocking.Early prototypes used for feedback in researchIn doing this research, we wanted to understand both the perspective of someone who’s being harassed or bothered on Messenger, and that of a person who’s repeatedly trying to contact someone. People in our focus groups talked about seeing Facebook as a way to connect with anyone in the world; there’s a real curiosity and interest in meeting new people online. Both men and women said that they accept any and all friend requests, no matter how remote the connection. We also heard from women who told us how easily and often the line can be crossed from friendly hellos to unwanted contact and harassment. We got a strong sense of the pervasive ways that harassment plays out in the real world, in all sorts of interactions. We spoke to participants who said they had experienced a lot of harassment on Facebook, so we knew we’d hear difficult stories. But we also heard strength and courage — as well as a deep familiarity with the tools at hand. Men and women understood the functionality to block both a message as well as a person on Facebook, and they had no issues with blocking someone who was bothering them. “I just blocked him” was a refrain we heard over and over. But we also confirmed that in certain situations, there’s a need to stop hearing from someone who’s sending harassing messages without explicitly blocking them because it could cause serious real-world implications.Unwanted and harassing messages have no place on our platform.This is where the work becomes really, really hard. Harassment affects millions of people every day — well beyond Messenger. We know that a button on Messenger will not take away the memory of a harassment experience, and it won’t mean that something upsetting won’t happen again. Unwanted and harassing messages have no place on our platform. To help combat this behavior, we work to adjust and augment the tools that someone might be using. In the early stages of this project, we had been referring to the functionality as “hide.” We learned on this research trip that people were already familiar with the capability to hide a comment on Facebook, which didn’t align with the idea of hiding an entire conversation with someone on Messenger. So, after much discussion and exploration of options, we shifted our language to “ignore.”Stage 4: BuildAs with any product, we collaborated with our engineering colleagues who were building the back-end functionality and front-end interface. We needed to ensure that the product we designed was technically feasible, while still being intuitive to use. Once we launched the ignore functionality, we ran surveys and analyzed data to understand how it was (and is) performing. We found that it was quickly adopted and coexisted harmoniously with blocking and other harassment-mitigation tools. However, we also needed to account for group messages, so we iterated and did another round of usability research to ensure that the built product was intuitive, valuable and easy to understand.Final prototype for the feature to ignore messagesA Learner’s MindsetAs product designers, content strategists, and researchers, everyone can leverage each other’s skills on the team to deeply understand the problems people are facing, lead the team’s efforts to design solutions for those problems, show prototypes to real people for their feedback, and work collaboratively with engineers to bring the final product experience to life. But our design work does not stop there. Testing, learning, iterating and sometimes making decisions to sunset products and features is all part of the journey to getting it right for the people who use our products. This work has been one step along that journey to determine the best way to help people avoid harassment on Messenger. We’re proud to have the opportunity to continue learning and designing for well-being, keeping people at the center of our work each day.Designing with Compassion was originally published in Facebook Design on Medium, where people are continuing the conversation by highlighting and responding to this story.

Five reason .INC is the perfect domain for a new business

Name.com Blog -

.INC is a new top-level domain that is perfect for business. Big brands have already registered their .INC domains, including Gap.inc, Fox.inc, PayPal.inc, along with 20% of Forbes “Most Valuable” brands. The TLD creates new opportunities for exact match domain names, is valuable for brand protection, and is a logical option for any incorporated business. […] The post Five reason .INC is the perfect domain for a new business appeared first on Name.com Blog.

Agency Spotlight Series: LaneTerralever

WP Engine -

A key part of our business at WP Engine is the partnerships we’ve built with digital agencies. With emerging technologies and trends, increasing competitiveness, and the pressure to deliver memorable digital experiences, agencies have enough to worry about. WP Engine allows agencies to focus on creation and execution instead of worrying about performance and security.… The post Agency Spotlight Series: LaneTerralever appeared first on WP Engine.

WARP is here (sorry it took so long)

CloudFlare Blog -

Today, after a longer than expected wait, we're opening WARP and WARP Plus to the general public. If you haven’t heard about it yet, WARP is a mobile app designed for everyone which uses our global network to secure all of your phone’s Internet traffic.We announced WARP on April 1 of this year and expected to roll it out over the next few months at a fairly steady clip and get it released to everyone who wanted to use it by July. That didn’t happen. It turned out that building a next generation service to secure consumer mobile connections without slowing them down or burning battery was… harder than we originally thought.Before today, there were approximately two million people on the waitlist to try WARP. That demand blew us away. It also embarrassed us. The common refrain is consumers don’t care about their security and privacy, but the attention WARP got proved to us how wrong that assumption actually is.This post is an explanation of why releasing WARP took so long, what we've learned along the way, and an apology for those who have been eagerly waiting. It also talks briefly about the rationale for why we built WARP as well as the privacy principles we’ve committed to. However, if you want a deeper dive on those last two topics, I encourage you to read our original launch announcement.And, if you just want to jump in and try it, you can download and start using WARP on your iOS or Android devices for free through the following links: If you’ve already installed the 1.1.1.1 App on your device, you may need to update to the latest version in order to get the option to enable Warp.Mea CulpaLet me start with the apology. We are sorry making WARP available took far longer than we ever intended. As a way of hopefully making amends, for everyone who was on the waitlist before today, we're giving 10 GB of WARP Plus — the even faster version of WARP that uses Cloudflare’s Argo network — to those of you who have been patiently waiting.For people just signing up today, the basic WARP service is free without bandwidth caps or limitations. The unlimited version of WARP Plus is available for a monthly subscription fee. WARP Plus is the even faster version of WARP that you can optionally pay for. The fee for WARP Plus varies by region and is designed to approximate what a McDonald’s Big Mac would cost in the region. On iOS, the WARP Plus pricing as of the publication of this post is still being adjusted on a regional basis, but that should settle out in the next couple days.WARP Plus uses Cloudflare’s virtual private backbone, known as Argo, to achieve higher speeds and ensure your connection is encrypted across the long haul of the Internet. We charge for it because it costs us more to provide. However, in order to help spread the word about WARP, you can earn 1GB of WARP Plus for every friend you refer to sign up for WARP. And everyone you refer gets 1GB of WARP Plus for free to get started as well.Okay, Thanks, That’s Nice, But What Took You So Long?So what took us so long?WARP is an ambitious project. We set out to secure Internet connections from mobile devices to the edge of Cloudflare's network. In doing so, however, we didn't want to slow devices down or burn excess battery. We wanted it to just work. We also wanted to bet on the technology of the future, not the technology of the past. Specifically, we wanted to build not around legacy protocols like IPsec, but instead around the hyper-efficient WireGuard protocol.At some level, we thought it would be easy. We already had the 1.1.1.1 App that was securing DNS requests running on millions of mobile devices. That worked great. How much harder could securing all the rest of the requests on a device be? Right??It turns out, a lot. Zack Bloom has written up a great technical post describing many of the challenges we faced and the solutions we had to invent to deal with them. If you're interested, I encourage you to check it out.Some highlights:Apple threw us a curveball by releasing iOS 12.2 just days before the April 1 planned roll out. The new version of iOS significantly changed the underlying network stack implementation in a way that made some of what we were doing to implement WARP unstable. Ultimately we had to find work-arounds in our networking code, costing us valuable time.We had a version of the WARP app that (kind of) worked on April 1. But, when we started to invite people from outside of Cloudflare to use it, we quickly realized that the mobile Internet around the world was far more wild and varied than we'd anticipated. The Internet is made up of diverse network components which do not always play nicely, we knew that. What we didn’t expect was how much more pain is introduced by the diversity of mobile carriers, mobile operating systems, and mobile device models.And, while phones in our testbed were relatively stationary, phones in the real world move around — a lot. When they do, their network settings can change wildly. While that doesn't matter much for stateless, simple DNS queries, for the rest of Internet traffic that makes things complex. Keeping WireGuard fast requires long-lived sessions between your phone and a server in our network, maintaining that for hours and days was very complex. Even beyond that, we use a technology called Anycast to route your traffic to our network. Anycast meant your traffic could move not just between machines, but between entire data centers. That made things very complex.Overcoming ChallengesBut there is a huge difference between hard and impossible. From long before the announcement, the team has been hard at work and I’m deeply proud of what they’ve accomplished. We changed our roll out plan to focus on iOS and solidify the shared underpinnings of the app to ensure it would work even with future network stack upgrades. We invited beta users not in the order of when they signed up, but instead based on networks where we didn't yet have information to help us discover as many corner cases as possible. And we invented new technologies to keep session state even when the wild west of mobile networks and Anycast routing collide.I've been running WARP on my phone since April 1. The first few months were… rough. Really rough. But, today, WARP has blended into the background of my mobile. And I sleep better knowing that my Internet connections from my phone are secure. Using my phone is as fast, and in some cases faster, than without WARP. In other words, WARP today does what we set out to accomplish: securing your mobile Internet connection and otherwise getting out of the way.There Will Be BugsWhile WARP is a lot better than it was when we first announced it, we know there are still bugs. The most common bug we’re seeing these days is when WARP is significantly slower than using the mobile Internet without WARP. This is usually due to traffic being misrouted. For instance, we discovered a network in Turkey earlier this week that was being routed to London rather than our local Turkish facility. Once we’re aware of these routing issues we can typically fix them quickly.Other common bugs involved captive portals — the pages where you have to enter information, for instance, when connecting to a hotel WiFI. We’ve fixed a lot of them but we haven’t had WARP users connecting to every hotel WiFi yet, so there will inevitably still be some that are broken.We’ve made it easy to report issues that you discover. From the 1.1.1.1 App you can click on the little bug icon near the top of the screen, or just shake your phone with the app open, and quickly send us a report. We expect, over the weeks ahead, we’ll be squashing many of the bugs that you report.Even Faster With PlusWARP is not just a product, it’s a testbed for all of the Internet-improving technology we have spent years developing. One dream was to use our Argo routing technology to allow all of your Internet traffic to use faster, less-congested, routes through the Internet. When used by Cloudflare customers for the past several years Argo has improved the speed of their websites by an average of over 30%. Through some hard work of the team we are making that technology available to you as WARP Plus.The WARP Plus technology is not without cost for us. Routing your traffic over our network often costs us more than if we release it directly to the Internet. To cover those costs we charge a monthly fee — $4.99/month or less — for WARP Plus. The fee depends on the region that you’re in and is intended to approximate what a Big Mac would cost in the same region.Basic WARP is free. Our first priority is not to make money off of WARP however, we want to grow it to secure every single phone. To help make that happen, we wanted to give you an incentive to share WARP with your friends. You can earn 1GB of free WARP Plus for every person you share WARP with. And everyone you refer also gets 1GB of WARP Plus for free as well. There is no limit on how much WARP Plus data you can earn by sharing.Privacy FirstThe free consumer security space has traditionally not been the most reputable. Many other companies that have promised to keep consumers’ data safe but instead built businesses around selling it or using it help target you with advertising. We think that’s disgusting. That is not Cloudflare’s business model and it never will be. WARP continues all the strong privacy protections that 1.1.1.1 launched with including:We don't write user-identifiable log data to disk;We will never sell your browsing data or use it in any way to target you with advertising data;Don’t need to provide any personal information — not your name, phone number, or email address — in order to use WARP or WARP Plus; andWe will regularly work with outside auditors to ensure we're living up to these promises.What WARP Is NotFrom a technical perspective, WARP is a VPN. But it is designed for a very different audience than a traditional VPN. WARP is not designed to allow you to access geo-restricted content when you’re traveling. It will not hide your IP address from the websites you visit. If you’re looking for that kind of high-security protection then a traditional VPN or a service like Tor are likely better choices for you.WARP, instead, is built for the average consumer. It’s built to ensure that your data is secured while it’s in transit. So the networks between you and the applications you’re using can’t spy on you. It will help protect you from people sniffing your data while you’re at a local coffee shop. It will also help ensure that your ISP isn’t hoovering up data on your browsing patterns to sell to advertisers.WARP isn’t designed for the ultra-techie who wants to specify exactly what server their traffic will be routed through. There’s basically only one button in the WARP interface: ON or OFF. It’s simple on purpose. It’s designed for my mom and dad who ask me every holiday dinner what they can do to be a bit safer online. I’m excited this year to have something easy for them to do: install the 1.1.1.1 App, enable WARP, and rest a bit easier.How Fast Is It?Once we got WARP to a stable place, this was my first question. My initial inclination was to go to one of the many Speed Test sites and see the results. And the results were… weird. Sometimes much faster, sometimes much slower. Overall, they didn’t make a lot of sense. The reason why is that these sites are designed to measure the speed of your ISP. WARP is different, so these test sites don’t give particularly accurate readings.The better test is to visit common sites around the Internet and see how they load, in real conditions, on WARP versus off. We’ve built a tool that does this. Generally, in our tests, WARP is around the same speed as non-WARP connections when you’re on a high performance network. As network conditions get worse, WARP will often improve performance more. But your experience will depend on the particular conditions of your network.We plan, in the next few weeks, to expose the test tool within the 1.1.1.1 App so you can see how your device loads a set of popular sites without WARP, with WARP, and with WARP Plus. And, again, if you’re seeing particularly poor performance, please report it to us. Our goal is to provide security without slowing you down or burning excess battery. We can already do that for many networks and devices and we won’t rest until we can do it for everyone.Here’s to a More Secure, Fast InternetCloudflare’s mission is to help build a better Internet. We’ve done that by securing and making more performance millions of Internet properties since we launched almost exactly 9 years ago. WARP furthers Cloudflare’s mission by extending our network to help make every consumer’s mobile device a bit more secure. Our team is proud of what we’ve built with WARP — albeit a bit embarrassed it took us so long to get into your hands. We hope you’ll forgive us for the delay, give WARP a try, and let us know what you think.

The Technical Challenges of Building Cloudflare WARP

CloudFlare Blog -

If you have seen our other post you know that we released WARP to the last members of our waiting list today. With WARP our goal was to secure and improve the connection between your mobile devices and the Internet. Along the way we ran into problems with phone and operating system versions, diverse networks, and our own infrastructure, all while working to meet the pent up demand of a waiting list nearly two million people long.To understand all these problems and how we solved them we first need to give you some background on how the Cloudflare network works:How Our Network WorksThe Cloudflare network is composed of data centers located in 194 cities and in more than 90 countries. Every Cloudflare data center is composed of many servers that receive a continual flood of requests and has to distribute those requests between the servers that handle them. We use a set of routers to perform that operation:Our routers listen on Anycast IP addresses which are advertised over the public Internet. If you have a site on Cloudflare, your site is available via two of these addresses. In this case, I am doing a DNS query for “workers.dev”, a site which is powered by Cloudflare:➜ dig workers.dev;; QUESTION SECTION: ;workers.dev. IN A ;; ANSWER SECTION: workers.dev. 161 IN A 198.41.215.162 workers.dev. 161 IN A 198.41.214.162 ;; SERVER: 1.1.1.1#53(1.1.1.1) workers.dev is available at two addresses 198.41.215.162 and 198.41.214.162 (along with two IPv6 addresses available via the AAAA DNS query). Those two addresses are advertised from every one of our data centers around the world. When someone connects to any Internet property on Cloudflare, each networking device their packets pass through will choose the shortest path to the nearest Cloudflare data center from their computer or phone.Once the packets hit our data center, we send them to one of the many servers which operate there. Traditionally, one might use a load balancer to do that type of traffic distribution across multiple machines. Unfortunately putting a set of load balancers capable of handling our volume of traffic in every data center would be exceptionally expensive, and wouldn’t scale as easily as our servers do. Instead, we use devices built for operating on exceptional volumes of traffic: network routers.Once a packet hits our data center it is processed by a router. That router sends the traffic to one of a set of servers responsible for handling that address using a routing strategy called ECMP (Equal-Cost Multi-Path). ECMP refers to the situation where the router doesn’t have a clear ‘winner’ between multiple routes, it has multiple good next hops, all to the same ultimate destination. In our case we hack that concept a bit, rather than using ECMP to balance across multiple intermediary links, we make the intermediary link addresses the final destination of our traffic: our servers.Here's the configuration of a Juniper-brand router of the type which might be in one of our data centers, and which is configured to balance traffic across three destinations:user@host# show routing-options static { route 172.16.1.0/24 next-hop [ 172.16.2.1 172.16.2.2 172.16.2.3 ]; } forwarding-table { export load-balancing-policy; } Since the ‘next-hop’ is our server, traffic will be split across multiple machines very efficiently.TCP, IP, and ECMPIP is responsible for sending packets of data from addresses like 93.184.216.34 to 208.80.153.224 (or [2606:2800:220:1:248:1893:25c8:1946] to [2620:0:860:ed1a::1] in the case of IPv6) across the Internet. It's the "Internet Protocol".TCP (Transmission Control Protocol) operates on top of a protocol like IP which can send a packet from one place to another, and makes data transmission reliable and useful for more than one process at a time. It is responsible for taking the unreliable and misordered packets that might arrive over a protocol like IP and delivering them reliably, in the correct order. It also introduces the concept of a ‘port’, a number from 1-65535 which help route traffic on a computer or phone to a specific service (such as the web or email). Each TCP connection has a source and destination port which is included in the header TCP adds to the beginning of each packet. Without the idea of ports it would not be easy to figure out which messages were destined for which program. For example, both Google Chrome and Mail might wish to send messages over your WiFi connection at the same time, so they will each use their own port.Here's an example of making a request for https://cloudflare.com/ at 198.41.215.162, on the default port for HTTPS: 443. My computer has randomly assigned me the port 51602 which it will listen on it for a response, which will (hopefully) receive the contents of the site:Internet Protocol Version 4, Src: 19.5.7.21, Dst: 198.41.215.162 Protocol: TCP (6) Source: 19.5.7.21 Destination: 198.41.215.162 Transmission Control Protocol, Src Port: 51602, Dst Port: 443, Seq: 0, Len: 0 Source Port: 51602 Destination Port: 443 Looking at the same request from the Cloudflare side will be a mirror image, a request from my public IP address originating at my source port, destined for port 443 (I’m ignoring NAT for the moment, more on that later):Internet Protocol Version 4, Src: 198.41.215.16, Dst: 19.5.7.21 Protocol: TCP (6) Source: 198.41.215.162 Destination: 19.5.7.21 Transmission Control Protocol, Src Port: 443, Dst Port: 51602, Seq: 0, Len: 0 Source Port: 443 Destination Port: 51602 We can now return to ECMP! It could be theoretically possible to use ECMP to balance packets between servers randomly, but you would almost never want to do that. A message over the Internet is generally composed of multiple TCP packets. If each packet were sent to a different server it would be impossible to reconstruct the original message in any one place and act on it. Even beyond that, it would be terrible for performance: we rely on being able to maintain long-lived TCP and TLS sessions which require a persistent connection to a single server. To provide that persistence, our routers don’t balance traffic randomly, they use a combination of four values: the source address, the source port, the destination address, and the destination port. Traffic with the same combination of those four values will always make it to the same server. In the case of my example above, all of my messages destined to cloudflare.com will make it to a single server which can reconstruct the TCP packets into my request and return packets in a response.Enter WARPFor a conventional request it is very important that our ECMP routing sends all of your packets to the same server for the duration of your request. Over the web a request commonly lasts less than ten seconds and the system works well. Unfortunately we quickly ran into issues with WARP.WARP uses a session key negotiated with public-key encryption to secure packets. For a successful connection, both sides must negotiate a connection which is then only valid for that particular client and the specific server they are talking to. This negotiation takes time and has to be completed any time a client talks to a new server. Even worse, if packets get sent which expect one server, and end up at another, they can’t be decrypted, breaking the connection. Detecting those failed packets and restarting the connection from scratch takes so much time that our alpha testers experienced it as a complete loss of their Internet connection. As you can imagine, testers don’t leave WARP on very long when it prevents them from using the Internet.WARP was experiencing so many failures because devices were switching servers much more often than we expected. If you recall, our ECMP router configuration uses a combination of (Source IP, Source Port, Destination IP, Destination Port) to match a packet to a server. Destination IP doesn’t generally change, WARP clients are always connecting to the same Anycast addresses. Similarly, Destination Port doesn’t change, we always listen on the same port for WARP traffic. The other two values, Source IP and Source Port, were changing much more frequently than we had planned.One source of these changes was expected. WARP runs on cell phones, and cell phones commonly switch from Cellular to Wi-Fi connections. When you make that switch you suddenly go from communicating over the Internet via your cellular carrier’s (like AT&T or Verizon) IP address space to that of the Internet Service Provider your Wi-Fi connection uses (like Comcast or Google Fiber). It’s essentially impossible that your IP address won’t change when you move between connections.The port changes occurred even more frequently than could be explained by network switches however. For an understanding of why we need to introduce one more component of Internet lore: Network Address Translation.NATAn IPv4 address is composed of 32 bits (often written as four eight-bit numbers). If you exclude the reserved addresses which can’t be used, you are left with 3,706,452,992 possible addresses. This number has remained constant since IPv4 was deployed on the ARPANET in 1983, even as the number of devices has exploded (although it might go up a bit soon if the 0.0.0.0/8 becomes available). This data is based on Gartner Research predictions and estimates:IPv6 is the definitive solution to this problem. It expands the length of an address from 32 to 128 bits, with 125 available in a valid Internet address at the moment (all public IPv6 addresses have the first three bits set to 001, the remaining 87.5% of the IPv6 address space is not considered necessary yet). 2^125 is an impossibly large number and would be more than enough for every device on Earth to have its own address. Unfortunately, 21 years after it was published, IPv6 still remains unsupported on many networks. Much of the Internet still relies on IPv4, and as seen above, there aren’t enough IPv4 addresses for every device to have their own.To solve this problem many devices are commonly put behind a single Internet-addressable IP address. A router is used to do Network Address Translation; to take messages which arrive on that single public IP and forward them to the appropriate device on their local network. In effect it’s as if everyone in your apartment building had the same street address, and the postal worker was responsible for sorting out what mail was meant for which person.When your devices send a packet destined for the Internet your router intercepts it. The router then rewrites the source address to the single public Internet address allocated for you, and the source port to a port which is unique for all the messages being sent across all the Internet-connected devices on your network. Just as your computer chooses a random source port for your messages which was unique between all the different processes on your computer, your router chooses a random source port which is unique for all the Internet connections across your entire network. It remembers the port it is selecting for you as belonging to your connection, and allows the message to continue over the Internet.When a response arrives destined for the port it has allocated to you, it matches it to your connection and again rewrites it, this time replacing the destination address with your address on the local network, and the destination port with the original source port you specified. It has transparently allowed all the devices on your network to act as if they were one big computer with a single Internet-connected IP address.This process works very well for the duration of a common request over the Internet. Your router only has so much space however, so it will helpfully delete old port assignments, freeing up space for new ones. It generally waits for the connection to not have any messages for thirty seconds or more before deleting an assignment, making it unlikely a response will arrive which it can no longer direct to the appropriate source. Unfortunately, WARP sessions need to last much longer than thirty seconds.When you next send a message after your NAT session has expired, you are given a new source port. That new port causes your ECMP mapping (based on source IP, source port, destination IP, destination port) to change, causing us to route your requests to a new machine within the Cloudflare data center your messages are arriving at. This breaks your WARP session, and your Internet connection.We experimented extensively with methods of keeping your NAT session fresh by periodically sending keep-alive messages which would prevent routers and mobile carriers from evicting mappings. Unfortunately waking the radio of your device every thirty seconds has unfortunate consequences for your battery life, and it was not entirely successful at preventing port and address changes. We needed a way to always map sessions to the same machine, even as their source port (and even source address) changed.Fortunately, we had a solution which came from elsewhere at Cloudflare. We don’t use dedicated load balancers, but we do have many of the same problems load balancers solve. We have long needed to map traffic to Cloudflare servers with more control than ECMP allows alone. Rather than deploying an entire tier of load balancers, we use every server in our network as a load balancer, forwarding packets first to an arbitrary machine and then relying on that machine to forward the packet to the appropriate host. This consumes minimal resources and allows us to scale our load balancing infrastructure with each new machine we add. We have a lot more to share on how this infrastructure works and what makes it unique, subscribe to this blog to be notified when that post is released.To make our load balancing technique work though we needed a way to identify which client a WARP packet was associated with before it could be decrypted. To understand how we did that it’s helpful to understand how WARP encrypts your messages. The industry standard way of connecting a device to a remote network is a VPN. VPNs use a protocol like IPsec to allow your device to send messages securely to a remote network. Unfortunately, VPNs are generally rather disliked. They slow down connections, eat battery life, and their complexity makes them frequently the source of security vulnerabilities. Users of corporate networks which mandate VPNs often hate them, and the idea that we would convince millions of consumers to install one voluntarily seemed ridiculous.After considering and testing several more modern options, we landed on WireGuard®. WireGuard is a modern, high performance, and most importantly, simple, protocol created by Jason Donenfeld to solve the same problem. Its original code-base is less than 1% the size of a popular IPsec implementation, making it easy for us to understand and secure. We chose Rust as the language most likely to give us the performance and safety we needed and implemented WireGuard while optimizing the code heavily to run quickly on the platforms we were targeting. Then we open sourced the project.WireGuard changes two very relevant things about the traffic you send over the Internet. The first is it uses UDP not TCP. The second is it uses a session key negotiated with public-key encryption to secure the contents of that UDP packet.TCP is the conventional protocol used for loading a website over the Internet. It combines the ability to address ports (which we talked about previously) with reliable delivery and flow control. Reliable delivery ensures that if a message is dropped, TCP will eventually resend the missing data. Flow control gives TCP the tools it needs to handle many clients all sharing the same link who exceed its capacity. UDP is a much simpler protocol which trades these capabilities for simplicity, it makes a best-effort attempt to send a message, and if the message is missing or there is too much data for the links, messages are simply never heard of again.UDP’s lack of reliability would normally be a problem while browsing the Internet, but we are not simply sending UDP, we are sending a complete TCP packet _inside_ our UDP packets.Inside the payload encrypted by WireGuard we have a complete TCP header which contains all the information necessary to ensure reliable delivery. We then wrap it with WireGuard’s encryption and use UDP to (less-than-reliably) send it over the Internet. Should it be dropped TCP will do its job just as if a network link lost the message and resend it. If we instead wrapped our inner, encrypted, TCP session in another TCP packet as some other protocols do we would dramatically increase the number of network messages required, destroying performance.The second interesting component of WireGuard relevant to our discussion is public-key encryption. WireGuard allows you to secure each message you send such that only the specific destination you are sending it to can decrypt it. That is a powerful way of ensuring your security as you browse the Internet, but it means it is impossible to read anything inside the encrypted payload until the message has reached the server which is responsible for your session.Returning to our load balancing issue, you can see that only three things are accessible to us before we can decrypt the message: The IP Header, the UDP Header, and the WireGuard header. Neither the IP Header or UDP Header include the information we need, as we have already failed with the four pieces of information they contain (source IP, source port, destination IP, destination port). That leaves the WireGuard header as the one location where we can find an identifier which can be used to keep track of who the client was before decrypting the message. Unfortunately, there isn’t one. This is the format of the message used to initiate a connection:sender looks temptingly like a client id, but it’s randomly assigned every handshake. Handshakes have to be performed every two minutes to rotate keys making them insufficiently persistent. We could have forked the protocol to add any number of additional fields, but it is important to us to remain wire-compatible with other WireGuard clients. Fortunately, WireGuard has a three byte block in its header which is not currently used by other clients. We decided to put our identifier in this region and still support messages from other WireGuard clients (albeit with less reliable routing than we can offer). If this reserved section is used for other purposes we can ignore those bits or work with the WireGuard team to extend the protocol in another suitable way.When we begin a WireGuard session we include our clientid field which is provided by our authentication server which has to be communicated with to begin a WARP session:Data messages similarly include the same field:It's important to note that the clientid is only 24 bits long. That means there are less possible clientid values than the current number of users waiting to use WARP. This suits us well as we don't need or want the ability to track individual WARP users. clientid is only necessary for load balancing, once it serves its purpose we get it expunged from our systems as quickly as we can.The load balancing system now uses a hash of the clientid to identify which machine a packet should be routed to, meaning  WARP messages always arrive at the same machine even as you change networks or move from Wi-Fi to cellular, and the problem was eliminated.Client SoftwareCloudflare has never developed client software before. We take pride in selling a service anyone can use without needing to buy hardware or provision infrastructure. To make WARP work, however, we needed to deploy our code onto one of the most ubiquitous hardware platforms on Earth: smartphones.While developing software on mobile devices has gotten steadily easier over the past decade, unfortunately developing low-level networking software remains rather difficult. To consider one example: we began the project using the latest iOS connection API called Network, introduced in iOS 12. Apple strongly recommends the use of Network, in their words “Your customers are going to appreciate how much better your connections, how much more reliable your connections are established, and they'll appreciate the longer battery life from the better performance.” The Network framework provides a pleasantly high-level API which, as they say, integrates well with the native performance features built into iOS. Creating a UDP connection (connection is a bit of a misnomer, there are no connections in UDP, just packets) is as simple as:self.connection = NWConnection(host: hostUDP, port: portUDP, using: .udp)And sending a message can be as easy as:self.connection?.send(content: content)Unfortunately, at a certain point code actually gets deployed, and bug reports begin flowing in. The first issue was the simplicity of the API made it impossible for us to process more than a single UDP packet at a time. We commonly use packets of up to 1500 bytes, running a speed test on my Google Fiber connection currently results in a speed of 370 Mbps, or almost thirty-one thousand packets per second. Attempting to process each packet individually was slowing down connections by as much as 40%. According to Apple, the best solution to get the performance we needed was to fallback to the older NWUDPSession API, introduced in iOS 9.IPv6If we compare the code required to create a NWUDPSession to the example above you will notice that we suddenly care which protocol, IPv4 or IPv6, we are using:let v4Session = NWUDPSession(upgradeFor: self.ipv4Session) v4Session.setReadHandler(self.filteringReadHandler, maxDatagrams: 32) In fact, NWUDPSession does not handle many of the more tricky elements of creating connections over the Internet. For example, the Network framework will automatically determine whether a connection should be made over IPv4 or 6:NWUDPSession does not do this for you, so we began creating our own logic to determine which type of connection should be used. Once we began to experiment, it quickly became clear that they are not created equal. It’s fairly common for a route to the same destination to have very different performance based on whether you use its IPv4 or IPv6 address. Often this is because there are simply fewer IPv4 addresses which have been around for longer, making it possible for those routes to be better optimized by the Internet’s infrastructure.Every Cloudflare product has to support IPv6 as a rule. In 2016, we enabled IPv6 for over 98% of our network, over four million sites, and made a pretty big dent in IPv6 adoption on the web:We couldn’t release WARP without IPv6 support. We needed to ensure that we were always using the fastest possible connection while still supporting both protocols with equal measure. To solve that we turned to a technology we have used with DNS for years: Happy Eyeballs. As codified in RFC 6555 Happy Eyeballs is the idea that you should try to look for both an IPv4 and IPv6 address when doing a DNS lookup. Whichever returns first, wins. That way you can allow IPv6 websites to load quickly even in a world which does not fully support it.As an example, I am loading the website http://zack.is/. My web browser makes a DNS request for both the IPv4 address (an “A” record) and the IPv6 address (an “AAAA” record) at the same time:Internet Protocol Version 4, Src: 192.168.7.21, Dst: 1.1.1.1 User Datagram Protocol, Src Port: 47447, Dst Port: 53 Domain Name System (query) Queries zack.is: type A, class IN Internet Protocol Version 4, Src: 192.168.7.21, Dst: 1.1.1.1 User Datagram Protocol, Src Port: 49946, Dst Port: 53 Domain Name System (query) Queries zack.is: type AAAA, class INIn this case the response to the A query returned more quickly, and the connection is begun using that protocol:Internet Protocol Version 4, Src: 1.1.1.1, Dst: 192.168.7.21 User Datagram Protocol, Src Port: 53, Dst Port: 47447 Domain Name System (response) Queries zack.is: type A, class IN Answers zack.is: type A, class IN, addr 104.24.101.191 Internet Protocol Version 4, Src: 192.168.7.21, Dst: 104.24.101.191 Transmission Control Protocol, Src Port: 55244, Dst Port: 80, Seq: 0, Len: 0 Source Port: 55244 Destination Port: 80 Flags: 0x002 (SYN) We don’t need to do DNS queries to make WARP connections, we know the IP addresses of our data centers already, but we do want to know which of the IPv4 and IPv6 addresses will lead to a faster route over the Internet. To accomplish that we perform the same technique but at the network level: we send a packet over each protocol and use the protocol which returns first for subsequent messages. With some error handling and logging removed for brevity, it appears as:let raceFinished = Atomic<Bool>(false) let happyEyeballsRacer: (NWUDPSession, NWUDPSession, String) -> Void = { (session, otherSession, name) in // Session is the session the racer runs for, otherSession is a session we race against let handleMessage: ([Data]) -> Void = { datagrams in // This handler will be executed twice, once for the winner, again for the loser. // It does not matter what reply we received. Any reply means this connection is working. if raceFinished.swap(true) { // This racer lost return self.filteringReadHandler(data: datagrams, error: nil) } // The winner becomes the current session self.wireguardServerUDPSession = session session.setReadHandler(self.readHandler, maxDatagrams: 32) otherSession.setReadHandler(self.filteringReadHandler, maxDatagrams: 32) } session.setReadHandler({ (datagrams) in handleMessage(datagrams) }, maxDatagrams: 1) if !raceFinished.value { // Send a handshake message session.writeDatagram(onViable()) } } This technique successfully allows us to support IPv6 addressing. In fact, every device which uses WARP instantly supports IPv6 addressing even on networks which don’t have support. Using WARP takes the 34% of Comcast’s network which doesn’t support IPv6 or the 69% of Charter’s network which doesn’t (as of 2018), and allows those users to communicate to IPv6 servers successfully.This test shows my phone’s IPv6 support before and after enabling WARP:Dying ConnectionsNothing is simple however, with iOS 12.2 NWUDPSession began to trigger errors which killed connections. These errors were only identified with a code ‘55’. After some research it appears 55 has referred to the same error since the early foundations of the FreeBSD operating system OS X was originally built upon. In FreeBSD it’s commonly referred to as ENOBUFS, and it’s returned when the operating system does not have sufficient BUFfer Space to handle the operation being completed. For example, looking at the source of a FreeBSD today, you see this code in its IPv6 implementation:In this example, if enough memory cannot be allocated to accommodate the size of an IPv6 and ICMP6 header, the error ENOBUFS (which is mapped to the number 55) will be returned. Unfortunately, Apple’s take on FreeBSD is not open source however: how, when, and why they might be returning the error is a mystery. This error has been experienced by other UDP-based projects, but a resolution is not forthcoming.What is clear is once an error 55 begins occurring, the connection is no longer usable. To handle this case we need to reconnect, but doing the same Happy Eyeballs mechanic we do on initial connection is both unnecessary (as we were already talking over the fastest connection), and will consume valuable time. Instead we add a second connection method which is only used to recreate an already working session:/** Create a new UDP connection to the server using a Happy Eyeballs like heuristic. This function should be called when first establishing a connection to the edge server. It will initiate a new connection over IPv4 and IPv6 in parallel, keeping the connection that receives the first response. */ func connect(onViable: @escaping () -> Data, onReply: @escaping () -> Void, onFailure: @escaping () -> Void, onDisconnect: @escaping () -> Void) /** Recreate the current connections. This function should be called as a response to error code 55, when a quick connection is required. Unlike `happyEyeballs`, this function will use viability as its only success criteria. */ func reconnect(onViable: @escaping () -> Void, onFailure: @escaping () -> Void, onDisconnect: @escaping () -> Void) Using reconnect we are able to recreate sessions broken by code 55 errors, but it still adds a latency hit which is not ideal. As with all client software development on a closed-source platform however, we are dependent on the platform to identify and fix platform-level bugs.Truthfully, this is just one of a long list of platform-specific bugs we ran into building WARP. We hope to continue working with device vendors to get them fixed. There are an unimaginable number of device and connection combinations, and each connection doesn’t just exist at one moment in time, they are always changing, entering and leaving broken states almost faster than we can track. Even now, getting WARP to work on every device and connection on Earth is not a solved problem, we still get daily bug reports which we work to triage and resolve.WARP+WARP is meant to be a place where we can apply optimizations which make the Internet better. We have a lot of experience making websites more performant, WARP is our opportunity to experiment with doing the same for all Internet traffic.At Cloudflare we have a product called Argo. Argo makes websites' time to first byte more than 30% faster on average by continually monitoring thousands of routes over the Internet between our data centers. That data builds a database which maps every IP address range with the fastest possible route to every destination. When a packet arrives it first reaches the closest data center to the client, then that data center uses data from our tests to discover the route which will get the packet to its destination with the lowest possible latency. You can think of it like a traffic-aware GPS for the Internet.Argo has historically only operated on HTTP packets. HTTP is the protocol which powers the web, sending messages which load websites on top of TCP and IP. For example, if I load http://zack.is/, an HTTP message is sent inside a TCP packet:Internet Protocol Version 4, Src: 192.168.7.21, Dst: 104.24.101.191 Transmission Control Protocol, Src Port: 55244, Dst Port: 80 Source Port: 55244 Destination Port: 80 TCP payload (414 bytes) Hypertext Transfer Protocol GET / HTTP/1.1\r\n Host: zack.is\r\n Connection: keep-alive\r\n Accept-Encoding: gzip, deflate\r\n Accept-Language: en-US,en;q=0.9\r\n \r\n The modern and secure web presents a problem for us however: When I make the same request over HTTPS (https://zack.is) rather than just HTTP (http://zack.is), I see a very different result over the wire:Internet Protocol Version 4, Src: 192.168.7.21, Dst: 104.25.151.102 Transmission Control Protocol, Src Port: 55983, Dst Port: 443 Source Port: 55983 Destination Port: 443 Transport Layer Security TCP payload (54 bytes) Transport Layer Security TLSv1.2 Record Layer: Application Data Protocol: http-over-tls Encrypted Application Data: 82b6dd7be8c5758ad012649fae4f469c2d9e68fe15c17297… My request has been encrypted! It’s no longer possible for WARP (or anyone but the destination) to tell what is in the payload. It might be HTTP, but it also might be any other protocol. If my site is one of the twenty-million which use Cloudflare already, we can decrypt the traffic and accelerate it (along with a long list of other optimizations). But for encrypted traffic destined for another source existing HTTP-only Argo technology was not going to work.Fortunately we now have a good amount of experience working with non-HTTP traffic through our Spectrum and Magic Transit products. To solve our problem the Argo team turned to the CONNECT protocol.As we now know, when a WARP request is made it first communicates over the WireGuard protocol to a server running in one of our 194 data centers around the world. Once the WireGuard message has been decrypted, we examine the destination IP address to see if it is an HTTP request destined for a Cloudflare-powered site, or a request destined elsewhere. If it’s destined for us it enters our standard HTTP serving path; often we can reply to the request directly from our cache in the very same data center.If it’s not destined for a Cloudflare-powered site we instead forward the packet to a proxy process which runs on each machine. This proxy is responsible for loading the fastest path from our Argo database and beginning an HTTP session with a machine in the data center this traffic should be forwarded to. It uses the CONNECT command to both transmit metadata (as headers) and turn the HTTP session into a connection which can transmit the raw bytes of the payload:CONNECT 8.54.232.11:5564 HTTP/1.1\r\n Exit-Tcp-Keepalive-Duration: 15\r\n Application: warp\r\n \r\n <data to send to origin> Once the message arrives at the destination data center it is either forwarded to another data center (if that is best for performance), or directed directly to the origin which is awaiting the traffic.Smart routing is just the beginning of WARP+; We have a long list of projects and plans which are all aimed at making your Internet faster, and couldn’t be more thrilled to finally have a platform to test them with.Our MissionToday, after well over a year of development, WARP is available to you and to your friends and family. For us though, this is just the beginning. With the ability to improve full network connection for all traffic, we unlock a whole new world of optimizations and security improvements which were simply impossible before. We couldn't be more excited to experiment, play, and eventually release, all sorts of new WARP and WARP+ features.Cloudflare’s mission is to help build a better Internet. If we are willing to experiment and solve hard technical problems together we believe we can help make the future of the Internet better than the Internet of today, and we are all grateful to play a part in that. Thank you for trusting us with your Internet connection.WARP was built by Vlad Krasnov, Chris Branch, Dane Knecht, Naga Tripirineni, Andrew Plunk, Adam Schwartz, Irtefa, and intern Michelle Chen with support from members of our Austin, San Francisco, Champaign, London, Warsaw, and Lisbon offices.

How to Offer Free Shipping on Your WooCommerce Site

Liquid Web Official Blog -

Everyone loves free shipping. It’s a great way to encourage customers to buy in the moment and helps you level the playing field against larger online stores. And if you’re hesitating, just remember that customers have a choice. When faced with a site adding a “$5 shipping charge” or one with “Free shipping included” which one would you choose? As a small to medium-size business, free shipping should be in your marketing toolbox, so I’m going to show you how to offer free shipping on your WooCommerce site, and how to set up a WooCommerce free shipping coupon. Why Should You Offer Free Shipping? The offer of free shipping can win customers, but it can also be expensive for small business owners. Shipping costs are a key factor, however, when your customer is deciding whether to buy your product. Studies have shown that online shoppers value “Free shipping” much more than a discount coupon — even if the price works out the same. Customers are often willing to accept longer delivery times if it means they avoid paying for shipping. And a survey by SmartInsights showed that 61% of online shoppers abandon their cart if they discover a shipping charge has been added to their purchase. Customers object to paying extra for shipping as they look on it as part of the whole online shopping experience. On the other hand, some customers are happy to pay premium shipping charges if they want an item to arrive quickly. You can use this premium option to offset those free shipping costs, and reduce the hit on your profit margins. A lack of shipping options is another reason for abandoned carts. So a popular choice for business owners is “Free shipping with conditions” — and 60% of eCommerce sites say it’s their top marketing tool. How do these tools and options benefit your business? Subscribe to the Liquid Web eCommerce newsletter for more ways to increase profitability for your store. How to Offer Free Shipping Without Losing Money There are several ways to offer free shipping and the easiest to set up is free shipping on everything you sell. Another option that lessens the impact on your business is to only offer this at specific times of the year like during a spring sale or around major holidays. But as a startup or small to medium-size business, it’s not always possible to offer free shipping across your product range — especially on big-ticket items. If you ship goods around the world, you already know international shipping is expensive, but domestic shipping costs can also be high to places like Hawaii, the Caribbean, or Alaska. By offering “Free shipping with conditions” — for example, free shipping once you spend a certain amount — you can still attract customers and offset the cost to you. WooCommerce makes this easy to do. You can set up your WooCommerce site to offer free shipping after a minimum purchase amount. This will encourage your customer to add something extra to get their goods shipped free. Or offer free shipping on specific, low cost-shipping product lines, or if consumers buy multiples of items. Another way to generate sales using free shipping is by offering discount coupons or loyalty programs to your email subscribers or your social media tribe. Testing Free Shipping If you are not sure whether free shipping is going to be profitable for your business, there are a few ways you can test it. To launch a meaningful test, you need to know your base cost and profit margins for every product, and you must factor in the cost of shipping heavy items. Once you know the size and weight of your big items, check with your preferred shipping agents for accurate costs. Set up an A/B test that offers free shipping only on certain products. For example, you could start with your top-selling items and compare conversion rates between the customers offered free shipping and those who weren’t. For the “Free with conditions” option, you could slowly increase your minimum free-shipping order value and again compare margins. Another obvious way to absorb free shipping costs is by increasing the price of all your products and then comparing conversion and sales. The risk here is that you could make your products too expensive in your market. Although it takes up valuable time, by continually testing your free shipping options you’ll quickly identify the methods that are the most profitable for your business, and the ones to avoid. What matters is to do something about it – the cost of not presenting attractive shipping options is too high. Benefits of Free Shipping Your customers are more likely to buy if there are no hidden surprises when they check out. Free shipping reduces cart abandonment. There’s also the potential bonus for you if the customer adds an extra item to meet the minimum amount and claim their free shipping. And by offering free shipping with longer delivery times, you reduce the pressure on your business to ship fast. You can take advantage of lower costs offered by shipping agents. Results from a comScore survey showed that many customers will only buy from online stores offering free shipping. This is not surprising when you consider the massive choice of online stores, and how easy it is to compare suppliers. By marketing your free shipping to this customer demographic, you can increase your conversion rate and build a loyal following. So, let’s dive in and work through how to set up WooCommerce free shipping options. Free Shipping: How to Set up for Everything You Sell Go to your WooCommerce menu Settings > Shipping. Select the Shipping zone. Click on Add shipping method. Select the Free shipping option from the menu. Configure the Free Shipping option by selecting N/A. Save your changes. Your customers will now get free shipping with every purchase they make on your store. Free Shipping: How to Set up With a Minimum Spend Select the Shipping zone. Select the Free shipping Settings. Enter a title e.g., Free shipping with minimum spend. Enter the minimum amount your customer must spend and/or the free shipping conditions. Save changes. Customers will get free shipping when they spend the minimum amount, use a coupon, or use a combination. How to Set up Free Shipping Coupons You should think of discount coupons as another tool in your marketing strategy. It’s a way to mix up your marketing promotions. You can: Send coupons to your social media followers and email subscribers to say thank you for following your business or individual products. Add coupons to your newsletters or use them as part of your email marketing campaigns. Encourage past customers to return and buy again. This can be very effective if you time-limit the coupon to create a sense of urgency e.g., valid for 24 hours only. To offer a WooCommerce free shipping coupon, you need to enable this feature on your dashboard. On the WooCommerce menu, go to Settings > General. Check the box Enable the use of coupons codes. Save changes. Once you’ve enabled the use of coupon codes, you can go ahead and create individual coupons. Go to your WooCommerce menu Settings > Coupons. Select Add Coupon then configure the settings. Here are some of the choices you’ll need to make as you create your coupon. Coupon Code: Your customer will enter the code at checkout to claim their free shipping. Therefore, every coupon you create must have a unique name or number. Description: This is optional and only visible to you, not the customer. If you want, you can use it to add useful notes. You might add promotion details, start or end date, or the subscriber list. Discount type: You can set a percentage discount for specific products, a fixed cart discount that offers a discount on the total value of the customer’s cart, or a fixed product discount, which offers a fixed discount (in dollars) per item. Coupon amount: To set the amount of the discount you want to offer, simply enter a basic number. It doesn’t need a currency or percent symbol. WooCommerce will adjust the cart automatically depending on the type of discount you set e.g., 15 for 15% or $15. Allow free shipping: This gives the customer free shipping when the coupon is used. Enable “Free shipping” to use this feature. Coupon expiry date: This option allows you to set a date after which the coupon is no longer valid. Coupon Usage Restrictions This screen allows you to set a variety of options to restrict how the coupon can be used. You can exclude sale or individual products or specify items that must be purchased in order to qualify for free shipping. Here are definitions for the options available. Minimum spend: The amount your customer must spend to use the coupon.Maximum spend: A maximum amount allowed using the coupon.Individual use only: Prevents customers from combining this offer with other coupons.Exclude sale items: Prevents customers from applying the coupon to sale items.Products: Specifies products that must be in the cart to allow the coupon to be used.Exclude products: Specifies products that may not be included in the coupon discount.Product categories: Specifies product categories the coupon can be used for, or that must be in the cart for the coupon discount to work.Exclude categories: Specifies product categories that the coupon cannot be used for (i.e. they must not be in the cart).Allowed emails: Specifies email address(es) that can use the coupon. Usage Limit Usage limit per coupon: Specifies the number of times a coupon can be applied.Limit usage to X items: Specifies a maximum number of items to which the coupon can be applied.Usage limit per user: Specifies the number of times a customer can use the coupon. Hit Publish to save your settings. Congratulations! Your coupon is now ready for use. Test Free Shipping to Help Your Business Grow With careful planning, offering WooCommerce free shipping on all or some product lines can provide startups and small to medium-size businesses several benefits: Build trust and customer loyalty Boost online sales Increase conversion rates Nothing is guaranteed, but WooCommerce makes it easy to test a free shipping offer, assess the results, and determine the mix of discounts and charges that’s optimal for your business. Are You Ready to Grow Your eCommerce Business With Liquid Web Managed WooCommerce Hosting? In addition to the shipping strategies we’ve listed here, a great hosting plan can be instrumental to growing your business. Fortunately, Liquid Web has you covered. Our Managed WooCommerce Hosting Plan is ideal for growing businesses. Specially designed to convert more sales, the plan is packed with cutting-edge technologies to reduce query load times and cart abandonment rates. Best of all, our plan arms you with more than 20 different performance tests so you’ll know you can accommodate tons of web traffic. Visit our product page today. The post How to Offer Free Shipping on Your WooCommerce Site appeared first on Liquid Web.

7 Best WordPress Social Media Plugins

HostGator Blog -

The post 7 Best WordPress Social Media Plugins appeared first on HostGator Blog. For small businesses, content distribution is critical in spreading the word about your products and services. WordPress plugins serve as a tool to grow brand awareness and increase your site traffic. Every WordPress plugin isn’t the same. They offer different types of value and can engage your audience in various ways. So, you want to select the right plugin for your business’s goals. Start optimizing your social distribution channel. Check out these 7 WordPress social media plugins below. 1. Social Login Customers’ schedules are jam-packed with a laundry list of activities. From kids’ soccer practices to major work projects, their time is limited.  Your business can streamline customer interaction with the Social Login plugin. This WordPress tool allows your visitors to login, register, and comment on your website through social networks, like Facebook, Twitter, and LinkedIn. That way, your loyal fans don’t have to start from scratch or deal with a clunky registration system.  Without the complex forms, your business can improve your visitor data quality and eliminate spam registrations from bots. It’s also likely to increase your registration rates because visitors aren’t wasting time with multiple form fields. Plus, this social media integration is maintenance fee. Social Login monitors the APIs of the social networks and updates its services accordingly. 2. Mashshare Small businesses must take steps to inform customers about their products. Social media is an effective channel to attract new people to your site.  “When we use social media to gain reach, tie into influencer audiences, and find ways to amplify the content, then we allow our audiences to determine the quality of the content and authority status we deserve in the industry,” writes Corey Morris, vice president of marketing for Voltage.  And with Mashshare, you can encourage visitors to share your content with their family and friends on social media networks. This free plugin centers around social sharing optimization, including a total share counter beside prominent share buttons. MashShare doesn’t depend on external script. So, your WordPress website’s load speed won’t slow down and your visitor’s privacy will be safe. 3. Social Locker Engagement keeps your business moving forward. Rather than giving away all your content for free, consider locking highly valuable content in exchange for a desired action. Social Locker makes this strategy possible. This premium WordPress plugin requires your visitors to share your page on social media to unlock specific content. So, until the reader likes, shares, or tweets your page, the content stays hidden.  This technique helps improve social performance of your website—building quality followers and attracting more social traffic. You’ll want to gate content that matters to your visitors, such as a video, checklist, or cheat sheet. It’s super easy to do, too. Select the content you want to lock, and just click the Social Locker button on your toolbar. The plugin also includes built-in advanced analytics. You can identify which lockers perform the best and optimize them future marketing campaigns. 4. TweetDis Most marketers underestimate the value of spending time on strategy development. Sharron Nelson, a digital marketing specialist, explains: “By applying a social media strategy, it will help you significantly increase your brand recognition. By spending only a few hours per week, over 91% marketers claimed that their social marketing efforts greatly increased their brand visibility and heightened user experience.” Plan your next steps by making it easy for visitors to share your content. TweetDis is a WordPress plugin that helps increase the number of website visitors who tweet your content to their followers. All you need is a quotable tweet, like a catchy phrase, statistic, or key takeaway.  It’s also simple for you to use. Just highlight the content and click on TweetDis button. No coding involved. You’ll get this remarkable tweetable below: 5. Floating Social Media Icon Brandwatch reports that “only 20 Fortune 500 companies actually engage with their customers on Facebook.” This gap in the social market is an opportunity for your small business.  As your customers’ interactions with your site change, it’s your responsibility to adapt to their behaviors. For example, static social media buttons can get overlooked. It’s hard to grab your visitor’s attention in a few seconds.  Floating Social Media Icon offers a solution. This plugin sets up social media icons to float on your pages. The icons will move from the top left corner to the bottom right corner of the screen.  You can configure the plugin to show specific social channels and decide the display order. It’s a small reminder to the reader to share your site with their network.  6. Flow Flow Good content without distribution (and vice versa) isn’t helpful to your small business. You want your content noticed and read by your audience. Branimir Hrženjak, content writer at Paldesk, offers his perspective: “That’s why the backbone of any good social media plan are relevant articles. Therefore, your content should be aligned with your other resources, such as a blog or a similar product. Evaluate what your users want, and provide them with context and valuable insights.” Flow Flow provides a stream of your different social feeds. The plugin displays visually appealing galleries of your Facebook, Instagram, and Twitter posts. Simply select your layout and build your gallery with the drag-and-drop tool. It also lets you exclude specific posts by URL, by username, or by words. 7. Social Fans Social proof plays a key factor in why customers follow and purchase businesses. Customers feel comfortable if they know other people, especially their peers, are engaging with a brand.  Social Fans gives your small business credibility. This premium social counter adds social links to your WordPress site and displays the number of your fans and followers on popular social media channels.  Choose from different display views, colored skins, and column options. The plugin aggregates the total of your social audience and instantly shows off your value. Expand Your Social Media Efforts with WordPress Plugins Social media is a medium to introduce your content to new audiences. Experiment with plugins to accelerate your social strategy. Take your WordPress site to the next level with our managed WordPress hosting. Find the post on the HostGator Blog

How to Reduce Facebook Ad Costs With Manual Bidding

Social Media Examiner -

Want more control over your Facebook campaign costs? Have you considered using manual Facebook ad bidding? In this article, you’ll discover three ways to control your Facebook advertising costs with manual bid strategies. Understand How Facebook’s Ad Delivery System Works Facebook uses an auction system to determine which advertisers get their ads shown. Advertisers bid […] The post How to Reduce Facebook Ad Costs With Manual Bidding appeared first on Social Media Marketing | Social Media Examiner.

Introducing Batch Mode Processing for Amazon Comprehend Medical

Amazon Web Services Blog -

Launched at AWS re:Invent 2018, Amazon Comprehend Medical is a HIPAA-eligible natural language processing service that makes it easy to use machine learning to extract relevant medical information from unstructured text. For example, customers like Roche Diagnostics and The Fred Hutchinson Cancer Research Center can quickly and accurately extract information, such as medical condition, medication, dosage, strength, and frequency from a variety of sources like doctors’ notes, clinical trial reports, and patient health records. They can also identify protected health information (PHI) present in these documents in order to anonymize it before data exchange. In a previous blog post, I showed you how to use the Amazon Comprehend Medical API to extract entities and detect PHI in a single document. Today we’re happy to announce that this API can now process batches of documents stored in an Amazon Simple Storage Service (S3) bucket. Let’s do a demo! Introducing the Batch Mode API First, we need to grab some data to test batch mode: MT Samples is a great collection of real-life anonymized medical transcripts that are free to use and distribute. I picked a few transcripts, and converted them to the simple JSON format that Amazon Comprehend Medical expects: in a production workflow, converting documents to this format could easily be done by your application code, or by one of our analytics services such as AWS Glue. {"Text": " VITAL SIGNS: The patient was afebrile. He is slightly tachycardic, 105, but stable blood pressure and respiratory rate.GENERAL: The patient is in no distress. Sitting quietly on the gurney. HEENT: Unremarkable. His oral mucosa is moist and well hydrated. Lips and tongue look normal. Posterior pharynx is clear. NECK: Supple. His trachea is midline.There is no stridor. LUNGS: Very clear with good breath sounds in all fields. There is no wheezing. Good air movement in all lung fields. CARDIAC: Without murmur. Slight tachycardia. ABDOMEN: Soft, nontender. SKIN: Notable for a confluence erythematous, blanching rash on the torso as well as more of a blotchy papular, macular rash on the upper arms. He noted some on his buttocks as well. Remaining of the exam is unremarkable.} Then, I simply upload the samples to an Amazon S3 bucket located in the same region as the service… and yes, ‘esophagogastroduodenoscopy’ is a word. Now let’s head to the AWS console and create a entity detection job. The rest of the process would be identical for PHI. Samples are stored under the ‘input/’ prefix, and I’m expecting results under the ‘output/’ prefix. Of course, you could use different buckets if you were so inclined. Optionally, you could also use AWS Key Management Service (KMS) to encrypt output results. For the sake of brevity, I won’t set up KMS here, but you’d certainly want to consider it for production workflows. I also need to provide a data access role in AWS Identity and Access Management (IAM), allowing Amazon Comprehend Medical to access the relevant S3 bucket(s). You can use a role that you previously set up in AWS Identity and Access Management (IAM), or you can use the wizard in the Amazon Comprehend Medical console. For detailed information on permissions, please refer to the documentation. Then, I create the batch job, and wait for it to complete. After a few minutes, the job is done. Results are available at the output location: one output for each input, containing a JSON-formatted description of entities and their relationships. A manifest also includes global information: number of processed documents, total amount of data, etc. Paths are edited out for clarity. { "Summary" : {     "Status" : "COMPLETED",     "JobType" : "EntitiesDetection",     "InputDataConfiguration" : {         "Bucket" : "jsimon-comprehend-medical-uswest2",         "Path" : "input/"     },     "OutputDataConfiguration" : {         "Bucket" : "jsimon-comprehend-medical-uswest2",         "Path" : ...     },     "InputFileCount" : 4,     "TotalMeteredCharacters" : 3636,     "UnprocessedFilesCount" : 0,     "SuccessfulFilesCount" : 4,     "TotalDurationSeconds" : 366,     "SuccessfulFilesListLocation" : ... ,     "UnprocessedFilesListLocation" : ... } } After retrieving the ‘rash.json.out‘ object from S3, I can use a JSON editor to view its contents. Here are some of the entities that have been detected. Of course, this data is not meant to be read by humans. In a production workflow, it would be processed automatically by the Amazon Comprehend Medical APIs. Results would then stored in an AWS backend, and made available to healthcare professionals through a business application. Now Available! As you can see, it’s extremely easy to use Amazon Comprehend Medical in batch mode, even at very large scale. Zero machine learning work and zero infrastructure work required! The service is available today in the following AWS regions: US East (North Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), Asia Pacific (Sydney). The free tier covers 25,000 units of text (2.5 million characters) for the first three months when you start using the service, either with entity extraction or with PHI detection. As always, we’d love to hear your feedback: please post it to the AWS forum for Amazon Comprehend, or send it through your usual AWS contacts. Julien

AWS DataSync News – S3 Storage Class Support and Much More

Amazon Web Services Blog -

AWS DataSync helps you to move large amounts of data into or out of the AWS Cloud (read my post, New – AWS DataSync – Automated and Accelerated Data Transfer, to learn more). As I explained in my post DataSync is a great fit for you Migration, Upload & Process, and Backup / DR use cases. DataSync is a managed service, and can be used to do one-time or periodic transfers of any size. Newest Features We launched DataSync at AWS re:Invent 2018 and have been adding features to it ever since. Today I would like to give you a brief recap of some of the newest features, and also introduce a few new ones: S3 Storage Class Support SMB Support Additional Regions VPC Endpoint Support FIPS for US Endpoints File and Folder Filtering Embedded CloudWatch Metrics Let’s take a look at each one… S3 Storage Class Support If you are transferring data to an Amazon S3 bucket, you now have control over the storage class that is used for the objects. You simply choose the class when you create a new location for use with DataSync: You can choose from any of the S3 storage classes: Objects stored in certain storage classes can incur additional charges for overwriting, deleting, or retrieving. To learn more, read Considerations When Working with S3 Storage Classes in DataSync. SMB Support Late last month we announced that AWS DataSync Can Now Transfer Data to and from SMB File Shares. SMB (Server Message Block) protocol is common in Windows-centric environments, and is also the preferred protocol for many file servers and network attached storage (NAS) devices. You can use filter patterns to control the files that are included in or excluded from the transfer, and you can use SMB file shares as the data transfer source or destination (Amazon S3 and Amazon EFS can also be used). You simply create a DataSync location that references your SMB server and share: To learn more, read Creating a Location for SMB. Additional Regions AWS DataSync is now available in more locations. Earlier this year it became available in the AWS GovCloud (US-West) and Middle East (Bahrain) Regions. VPC Endpoint Support You can deploy AWS DataSync in a Virtual Private Cloud (VPC). If you do this, data transferred between the DataSync agent will not traverse the public internet: The VPC endpoints for DataSync are powered by AWS PrivateLink; to learn more read AWS DataSync Now Supports Amazon VPC Endpoints and Using AWS DataSync in a Virtual Private Cloud. FIPS for US Endpoints In addition to support for VPC endpoints, we announced that AWS DataSync supports FIPS 140-2 Validated Endpoints in US Regions. The endpoints in these regions use a FIPS 140-2 validated cryptographic security module, making it easier for you to use DataSync for regulated workloads. You can use these endpoints by selecting them when you create your DataSync agent: File and Folder Filtering Earlier this year we added the ability to use file path and object key filters to exercise additional control over the data copied in a data transfer. To learn more, read about Excluding and including specific data in transfer tasks using AWS DataSync filters. Embedded CloudWatch Metrics Data transfer metrics are available in the Task Execution Details page so that you can track the progress of your transfer: Other AWS DataSync Resources Here are some resources to help you to learn more about AWS DataSync: Migrating Data to AWS: Understanding Your Options (AWS Online Tech Talk). Cloud Data Migration. AWS DataSync User Guide. AWS DataSync API Reference. AWS DataSync Quick Start In-cloud Transfer and Scheduler. Migrating storage with AWS DataSync (blog post). Migrating hundreds of TB of data to Amazon S3 with AWS DataSync (blog post). — Jeff;

Cloud-Powered, Next-Generation Banking

Amazon Web Services Blog -

Traditional banks make extensive use of labor-intensive, human-centric control structures such as Production Support groups, Security Response teams, and Contingency Planning organizations. These control structures were deemed necessary in order to segment responsibilities and to maintain a security posture that is risk averse. Unfortunately, this traditional model tends to keep the subject matter experts in these organizations at a distance from the development teams, reducing efficiency and getting in the way of innovation. Banks and other financial technology (fintech) companies have realized that they need to move faster in order to meet the needs of the newest generation of customers. These customers, some in markets that have not been well-served by the traditional banks, expect a rich, mobile-first experience, top-notch customer service, and access to a broad array of services and products. They prefer devices to retail outlets, and want to patronize a bank that is responsive to their needs. AWS-Powered Banking Today I would like to tell you about a couple of AWS-powered banks that are addressing these needs. Both of these banks are born-in-the-cloud endeavors, and take advantage of the scale, power, and flexibility of AWS in new and interesting ways. For example, they make extensive use of microservices, deploy fresh code dozens or hundreds of times per day, and use analytics & big data to better understand their customers. They also apply automation to their compliance and control tasks, scanning code for vulnerabilities as it is committed, and also creating systems that systemically grant and enforce use of least-privilege IAM roles. NuBank – Headquartered in Brazil and serving over 10 million customers, NuBank has been recognized by Fast Company as one of the most innovative companies in the world. They were founded in 2013 and reached unicorn status (a valuation of one billion dollars), just four years later. After their most recent round of funding, their valuation has jumped to ten billion dollars. Here are some resources to help you learn more about how they use AWS: NuBank Case Study. How the Cloud Helps NuBank Support Millions of Daily Customers (video). Starling – Headquartered in London and founded in 2014, Starling is backed by over $300M in funding. Their mobile apps provide instant notification of transactions, support freezing and unfreezing of cards, and provide in-app chat with customer service representatives. Here are some resources to help you learn more about how they use AWS: They Said it Couldn’t Be Done – Starling Bank. Starling Bank Case Study. Automated Privilege Management via Slack with Starling Bank on AWS (video). Both banks are strong supporters of open banking, with support for APIs that allow third-party developers to build applications and services (read more about the NuBank API and the Starling API). I found two of the videos (How the Cloud… and Automated Privilege Management…) particularly interesting. The two videos detail how NuBank and Starling have implemented Compliance as Code, with an eye toward simplifying permissions management and increasing the overall security profile of their respective banks. I hope that you have enjoyed this quick look at how two next-generation banks are making use of AWS. The videos that I linked above contain tons of great technical information that you should also find of interest! — Jeff;            

How to Create a Real Estate Website (In 4 Steps)

DreamHost Blog -

The real estate business can be both highly lucrative and very competitive. Setting yourself apart from your rivals with a professional real estate website may be on your wishlist, but getting started can be daunting. A great website is within reach, however. Combining WordPress with the power of page builders and other plugins can help you more easily achieve your goals. As a result, your real estate website should be a substantial advertising asset for your business, and keep buyers and sellers interested in learning more with quality images and valuable information. In this article, we’ll cover four steps for creating a real estate agent website with WordPress. We’ll also discuss why WordPress is the best platform to use, and how website builder tools created for WordPress can help you put together a more professional site. Let’s get started! Your Home Online? WordPress HostingOur automatic updates and strong security defenses take server management off your hands so you can focus on real estate listings, not website details.Check Out Plans Why You Should Consider a WordPress Website for Your Real Estate Business Whether you’re an independent agent or you work for a broker, having an online presence for your real estate business can be a key factor in your success. In fact, over the past few years, the National Association of Realtors (NAR) has noted that 42% of home buyers begin their searches online. While an app or a social media-only approach might seem appealingly simple, there are downsides to that technique. There are a few things a WordPress website can provide that most social media platforms can’t, such as: Built-in data tracking. You’ll be able to track your site’s data with ease from your WordPress dashboard and even see where visitors are coming from. Exceptional flexibility. You’ll be getting a lot of functionality right out of the box, which means you’ll have to spend less time searching for external solutions. A sophisticated database. WordPress is built on a powerful database system that’s well-suited for cataloging your property listings. A user-friendly media library. Whether you need to feature a single image or a dynamic gallery of photos, WordPress has an easy-to-use media library with built-in editing options.   Search Engine Optimization (SEO). While social profiles do show up in search engines, you’ll see higher rankings if you have unique content on a website. That’s because Google can’t determine the authority of a social profile. Linking back to your site can increase your overall rankings. In other words, you’re in good hands with WordPress. For seven years in a row, this platform has held the largest share of the Content Management System (CMS) market. In fact, 14.75% of the top 100 websites in the world trust WordPress with their content. Best of all, getting your own site off the ground is surprisingly simple. How to Create Your Real Estate Website With WordPress (In 4 Steps) You can get up and running with your real estate listings website quickly, while still having time to keep your finger on the pulse of the housing market. Below, we’ll cover four easy steps to get you set up with WordPress. Step 1: Choose Your Domain Name and Web Host A memorable domain name is your first step towards getting your real estate directory set up. While a .com name is a pretty standard choice, there are quite a few other Top-Level Domains (TLDs) available that might be just right for your business. Next, you’ll need to select a web host. This task can seem overwhelming at first. However, there are a few things to keep in mind as you shop for web hosting, which should help you make this crucial decision: Security. You’ll want to thoroughly review what your web host offers in terms of protection from viruses and hacks. Look for information about security certificates, daily backups, and the process for restoring a damaged site. Software. Not all hosts are created equal. If you need more software to help you get your properties online, make sure your host has what you want. For example, are there optimization features or software options that will boost your site’s speed? Support. Being able to get in touch with technical support night or day can be a vital feature. If you can’t afford downtime, getting a full understanding of the support that comes with your hosting plan is essential. Extras. If you’re really on the fence about which host to go with, check to see whether each offers any extra features that can help you decide. Some hosts come with built-in themes, design tools, staging websites, or site builders. No matter what type of hosting you ultimately decide you need, here at DreamHost we offer a wide range of WordPress plans. Be Awesome on the InternetJoin our monthly newsletter for tips and tricks to build your dream website!Sign Me Up Step 2: Install a Dedicated Real Estate Theme Creating a professional site that really stands out can be a challenge. Property listings have a lot of information attached to them, and the NAR has its own rules and regulations for advertising online. Therefore, you’ll need to pay extra attention to your website’s theme. It will be your main opportunity for dressing up your website and organizing your properties. With that in mind, choosing a real estate-friendly theme for your WordPress site is an excellent place to start. Fortunately, if you’re using DreamHost as your WordPress hosting service, you’ll have access to WP Website Builder. It comes with a drag-and-drop page editor, along with many customizable themes — including several quality options for real estate sites. Plus, setting your chosen theme up with DreamHost is a snap, and it even comes packed with starter content that you can swap out with your own. To get started, you’ll need to select “WP Website Builder” as an option when purchasing your DreamHost plan. Then, we’ll automatically install WordPress and premium website builder plugins for WordPress — including Inspirations and Page & Post Builder — which were built by our friends over at BoldGrid. After you log into your new WordPress dashboard, you’ll see the Inspirations setup page. Once you’re ready, select Let’s Get Started! On the next screen, you’ll see lots of theme design categories to choose from. The Inspirations feature will display a wide variety of professional and stylish real estate-friendly themes. Another bonus is that you’ll be able to quickly test the responsiveness of your chosen layout on three different screen types, right from your dashboard. If you need more help getting started, your WordPress dashboard will now include some tutorial videos. Plus, you’ll find a new Inspirations menu that will lead you through switching to a different theme, in case you change your mind later on. Step 3: Select Helpful Plugins to Enhance Your Site Plugins can be essential to extending the functionality of your website. To manage your property listings and appeal to potential homebuyers, you might want to look into some plugins to help you design your site. One plugin worth checking out is the Estatik Real Estate Plugin. Estatik includes many important key features, such as saveable searches and property wish lists. There are also several widget options, as well as a customizable search function, information request forms, and slideshows. This plugin has both free and premium options. The premium plugin will cost you $89 and includes additional functionality like agent support, private fields for admins and agents, and subscription plans with PayPal payment options. Alternatively, If you’re looking for a low-risk plugin that’s gentle on the wallet, Easy Property Listings is worth a test drive. This is a very dynamic and feature-heavy tool. Easy Property Listings offers a user-friendly approach to getting property listings online in a fast and straightforward way. With over 150 custom fields and seven custom post types, you won’t need developer skills to get your website set up just the way you want it. This plugin enables your visitors to sort listings by date, price, or location. Additionally, individual listings can be flagged as sold, under contract, and so on. The number of listings you can create is unlimited, which is a nice touch from a completely free plugin. Step 4: Set Up Your First Listings At this point, you’re ready to get your first listings online. When doing this, it can help to keep some listing best practices in mind. For instance, you’ll want to choose your adjectives wisely and work on highlighting the unique features of each property. In this listing, for example, the ceilings “soar,” the guest bedroom is “charming,” and the pool is “sparkling.” The Trinity Hawaii property site uses WordPress to create an equally-beautiful online catalog for the many properties it has for sale. The grid-style setup is perfect for property listings. Choosing a strong headline and crafting your descriptions to do each property justice takes practice. However, the effort you put in now can pay off over time in increased visits and conversions. Build a Following with Real Estate Marketing Now that you have some stunning images and listings up on your new website, you may be wondering about the best way to get the word out. There are a couple of marketing tactics real estate agents should consider at this stage. One way to build a following is to add testimonials to your site. As consumers, we typically like to hear what other people are saying about a service or product before we try it. Even if you haven’t been in business long, you can ask permission to post a testimonial from a previous client to get started. Another popular way to draw attention to your site is to use drone photography to capture amazing shots of your properties. You can invest in a drone if you’re interested, but there are services you can employ as well if you just want to give it a try. Additionally, letting your potential clients get to know and trust you through a blog can be a smart move. If you do decide to set up a blog, there are some best practices to consider for keeping its information up-to-date. Featuring lots of new and accurate content on your website lets visitors know that you’re active and trustworthy. Lead Generation for Agents and Brokers The real estate business might have you on the run all the time, but you can rest easy knowing your listings are displayed beautifully thanks to our professional WordPress website builder. Plus, many plugins can help you manage image galleries, property information, and more. Here at DreamHost, we want you to focus on making your customers’ home buying dreams come true, rather than worrying about whether your website maintenance or support is taken care of. That’s why we offer complete WordPress hosting solutions with reliable support, so you can focus on selling that dream home! The post How to Create a Real Estate Website (In 4 Steps) appeared first on Website Guides, Tips and Knowledge.

SEO Tool Roundup: 10 Subscription Tools Worth the Cost

HostGator Blog -

The post SEO Tool Roundup: 10 Subscription Tools Worth the Cost appeared first on HostGator Blog. Developing a strong SEO (search engine optimization) strategy that helps you meet your website goals requires doing the right research first. While there are a number of useful free SEO tools that you can use for that, there’s also a whole marketplace of SEO products that provide greater depth, and make it easier to learn what you need more quickly and efficiently.   For small businesses on a budget, any product you consider has to provide tangible value. It better either make you money, save you money or, even better, do both.  10 Top SEO Subscription Tools To help you decide if an SEO tool is really worth the investment, here’s a roundup of the best paid SEO tools to consider.  1. Moz Moz is one of the most familiar names in the SEO world. In addition to their free Link Explorer tool, they offer a suite of SEO products as part of their Moz Pro plan that helps customers: Perform richer keyword research and organize your results based on factors like search volume, difficulty level, and an analysis of the keyword’s SERP.More efficiently track your website’s rankings for different keywords and stay on top of who your main competitors are for each.Perform an ongoing analysis of your website to catch issues like broken links and missing title tags that can hurt you in the rankings.Audit your content to find opportunities to improve your on-site optimization across the site.Find new link opportunities and determine which to prioritize based on a website’s SEO authority.  For SEO professionals, Moz Pro is one of the main go-to tools for building a stronger SEO strategy. 2. Ahrefs Ahrefs is another popular option with a suite of tools that provide some similar functionalities. These include: Keywords Explorer – a keyword research tool that provides difficulty scores, search volume, and predicted clicks metrics.Content Explorer – a tool that reveals the most popular content on your topic to help provide inspiration and show you what pages you need to beat.Rank Tracker – just what it sounds like, this provides an easy way to track your rankings for your target keywords.Site Audit – an auditing tool that identifies issues like slow pages, missing meta tags, and low-quality content.Site Explorer – a competitor research tool that helps you analyze organic traffic and backlinks for other websites. Their tools provide the option to set up alerts so you learn quickly about web mentions, changes in your rankings, and new backlinks.    3. SEMRush SEMRush is an SEO platform with a number of useful features for building an SEO strategy. They provide similar functionality to Moz and Ahrefs when it comes to keyword research, rank tracking, backlink tracking, and site audits. For companies that do online advertising, they also provide features to help you compare your PPC advertising efforts to those of your competitors.  They have a feature that makes it easy to see how your website stacks up against those of top competitors in the keywords you’re targeting and ranking for. They also help you identify your top competition in different geographic areas based on how search results vary. And they provide a traffic analysis tool that estimates how much traffic competitors are getting and where it comes from.  4. Majestic SEO Majestic SEO’s suite of tools has many of the core features you need for SEO. That includes: A site explorer that provides a quick visual summary of a website’s top pages, the main anchor text it uses, and its link breakdown.Link tracking which quickly alerts you to new links you’ve gained and old ones you’ve lost. A backlink checker and comparison tool to see how your website’s link profile compares to other websites in your industry.A Clique Hunter tool that helps you easily spot any website linking to multiple competitors, suggesting they’re a valuable link building opportunity.A keyword checker that compares terms based on how competitive and popular they are.  Their tools can help you perform a thorough site audit, identify target keywords, and conduct a link-building campaign.  5. Raven Tools Raven Tools packs a number of useful SEO features into an intuitive interface. They offer a Website Auditor tool to quickly identify errors on your pages. Their tool taps into the data collected by Moz, Majestic, Report Garden, and Tapclicks to deliver comprehensive rank tracking, keyword research, and site performance data.  They make it easy to put metrics for your site and competitor sites side-by-side to better understand where you stand, and what steps you can take to improve. And they provide a Backlink Checker and Link Spy features to help you identify opportunities for link building.  6. WooRank WooRank provides features to help you do three main things: Perform a website audit – with the help of website review reports, competitive analysis reports, and a site crawl analysis.Track keyword performance – the tool tracks your own ranking positions, and those of your top competitors. Take next steps – based on the audit and keyword data, WooRank produces a prioritized marketing checklist of actions you can take to improve your rankings.  While a simpler tool than some of the others on the list, it provides straightforward insights and suggestions that many website owners will value.  7. Advanced Web Ranking One of the tricky aspects of rank tracking is that the search engine results page (SERP) isn’t consistent. A user’s location and browser history influences what they’ll see, meaning that one of your prospects will get a different result than another, and they could both be seeing something different than you do. Advanced Web Ranking (AWR) lets you track rankings across all the different possible results pages.  You can see what a keyword’s rankings are for different search engines, locations, and device types. You also get data on what other features show up on the SERP, such as videos and ads. And you can see how current rankings in all those categories compare to historical ones.    8. BuzzSumo Creating great content and promoting it are huge parts of SEO. BuzzSumo is a tool for analyzing what content is resonating with your audience and why. You can track which articles in your target topic areas are getting the most shares around the web so you can better understand what works. And you can see who’s sharing them, which will help you identify influencers who can be valuable in helping amplify the content you create.  9. BuzzStream Similar to BuzzSumo, BuzzStream is a tool for identifying and connecting with influencers—a key part of link building and content promotion. It makes finding relevant bloggers, websites, and popular social media profiles easier using keyword searches and engagement data. You can use the tool to create a list of people you’d like to reach out to, find contact information, and keep track of your contact efforts. For anyone doing influencer outreach as part of your SEO efforts, it can make the process more efficient and effective.  10. Remove’em Link building has always been a big part of SEO, but in recent years link removal has become important as well. Recent Google updates have increasingly penalized the kind of spammy, low-quality links that black-hat SEO companies use to try and inflate their clients’ rankings.  Remove’em is a tool for identifying and removing bad links. It taps into several sources for link data in order to help you spot all the low-quality links in your profile. It provides templates for contacting webmasters of the sites you want your link removed from, and helps you check for the right contact information before you send. And it has features for keeping track of who you’ve contacted and which links have been successfully removed.  SEO Is Worth the Cost For any website that helps you make money—whether a personal site that serves ads, a business website, or an eCommerce store—investing in SEO will help you increase your profits. This is one area where the old adage about having to spend money to make money is accurate. But you don’t necessarily need to invest in a lot of tools and learn how to use them all to get your SEO efforts to pay off. As an alternative, you can hire SEO experts to do all the research and work for you.  Good SEO consultants will already have access to the tools needed to do the job. And on top of that, they’ll have the knowledge to use them effectively to get the best results. Set up a free consultation with HostGator’s SEO specialists, so you can hand off the work to someone with experience.  Find the post on the HostGator Blog

Pages

Recommended Content

Subscribe to Complete Hosting Guide aggregator