Thursday, September 8, 2016

Shyre

SHYRE is an intelligent platform to optimize time and increase productivity of the field team.


by csreladm via CSSREEL | CSS Website Awards | World best websites | website design awards | CSS Gallery

12 Things to Know Before You Launch on Product Hunt

A hunting trophy

Product Hunt is a popular site that curates new products from all over the globe. It started on Listserv and transformed into a multi-million dollar company. It has big name investors, such as Reddit founder Alexis Ohanian. These investors believe the site can compete with TechCrunch one day.

Gary Gasper is a savvy Product Hunt veteran and a young entrepreneur from Belgium. He is also the CEO of Marker, a SaaS company that helps businesses annotate screenshots on Trello, Slack, Github, and other places. Gary experienced highs and lows on Product Hunt. During his first rendezvous, he had 60 visitors from Product Hunt. His second attempt netted him 1600 free trial signups.

Gary agreed to share 12 tips for success in an exclusive interview.

1. Don’t Incentivize People to Upvote

Product Hunt is built on upvotes. The more upvotes you get, the more success you have. Gary adds:

"The whole idea of Product Hunt is to have the community give you credit for your product. If the community likes it, your product will bubble up to the top. If they don’t, you don’t deserve to be on the front page."

However, don’t keep your launch to yourself. You should tell your friends, family, and customers about your launch on Product Hunt. It’s true that Product Hunt bans users who pressure or incentivize people to vote. Still, there’s nothing wrong with letting people know about your launch, and asking them to upvote if they like your product. Gary says:

"I don’t think it has to be an all black or white decision. You can ask a few friends or family, or even your own customers to give you an upvote, if they think you deserve it. I don’t think you should sit on your [butt] and wait for upvotes to come. You can help by getting the ball rolling a little bit. 10% should be absolute maximum of votes coming from [personal requests]."

2. Expected the Unexpected

Product Hunt has a special system. You can launch your own product, or someone else can submit your product for you. If they do, you need to be ready. Gary wasn’t, and his first launch was unsuccessful. Gary wistfully recalls,

"We did two launches. The first one wasn’t done by us and it was a big failure. We only got 20 upvotes and 60 unique visitors coming from Product Hunt.”

Basically, someone launched Marker before Gary was ready, and it was a disaster. This wasn’t malicious, it was just a fan who wanted to share Marker with the world. Yet, it didn’t do Gary any favors. Products on Product Hunt have 24 hours to strike it big. Gary wasn’t ready, and it appeared he lost his chance. You’re not allowed to submit the same product twice.

3. You Can Relaunch on Product Hunt

Gary believed he didn’t get what he could have out of Product Hunt. That’s why he decided to pursue a second launch — Marker 2.0. He also saw a silver lining. This time, he would have full control over the timing of the launch.

"You’re not allowed to submit [products] twice. We knew we had 100% of control for our [second] launch."

Hopefully, you won’t have to launch twice. Yet, it’s always a possibility someone will submit you to Product Hunt early. If you can revamp your product, it’s worth considering a second launch.

4. Relaunching Isn’t For Everyone

When Gary relaunched on Product, Ben Tossell, the community manager, was skeptical. He asked Gary about the big updates. Gary was unfazed. He had a list ready.

  1. A complete redesign of the tool as well as the UX
  2. A new onboarding flow
  3. New integrations with Jira
  4. A new screenshot editor
  5. Emoji!

As you can see, there were major updates. Relaunching products is a system ripe for abuse. That’s why Product Hunt makes sure every relaunch has substantial improvements over the original. Relaunching is a major investment. In a perfect world, you want to get it right the first time.

5. Product Hunt Users Convert Differently Than Regular Users

After the free trials expired, Gary found that customers from Product Hunt didn’t convert as well as typical customers. They were interested, yet they didn’t fit his buyer persona. Gary explains more:

"Maybe you will discover that [only a few Product Hunt Sign-ups] will really stick. Then you have to figure out why this subset of users is successful. Agency owners are the best customers we have and most users from PH weren’t agency owners."

All exposure is not created equal. Gary got over 6,000 signups, but his success rate with non-agency customers was poor. After he analyzed this data, he was able to better serve his target market.

6. The Product Hunt Algorithm Prioritizes Speed

This quote from Medium explains the ever-changing tide of Product Hunt.

"At the stroke of midnight (PST), the Product Hunt day begins again, the product slate is wiped clean, and new products begin to be hunted."

That’s why speed is essential.

"You want to get as many upvotes as you can in a 24 hour window. If you were going to get 500 upvotes, you would rather get the vast majority of them during the first day,” says Gary.

Exposure on Product Hunt is time sensitive. In that sense, it’s closer to Facebook then email. Once something disappears from the Facebook feed, it’s gone. Out of sight, out of mind. The same is true of Product Hunt, but unlike Facebook, you can’t post again.

7. Effective Taglines are Useful

Coming up with a catchy tagline is far from trival. It’s a task that takes a lot of work. Gary spent an entire week with his team to craft a tagline. Here’s an Excel sheet of some of the ideas.

Continue reading %12 Things to Know Before You Launch on Product Hunt%


by Zachary Moore via SitePoint

Laravel Quick Tip: Model Route Binding

One of the great things that Laravel provides is the easy to use routing component. It offers simple URLs, parameters, grouping, naming and event guarding route groups, to name a few of the different options.

Laravel logo

Let's pretend we have a list of categories in a database, and the admin can manage categories from the back end. Here's how your routes file should look like.

Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => 'admin'], function () {
    Route::resource('categories', 'CategoriesController');
});

Inside your CategoriesController class, you'll have the seven resource methods. Inside the edit action, we should check if the category being edited exists in the database, otherwise we redirect back with an error message.

public function edit($id)
{
    $category = Category::find($id);
    if (!$category) {
        return redirect()->route('admin.categories.index')->withErrors([trans('errors.category_not_found')]);
    }

    // ...
}

Model Binding

This is the usual way of doing it, but Laravel also has a nicer way of optimizing this repetitive task called route model binding. You basically type hint the model name instead of the ID parameter.

Continue reading %Laravel Quick Tip: Model Route Binding%


by Bruno Skvorc via SitePoint

5 Most Common Wireframing Mistakes (And How to Avoid Them)

A client comes up to you with a web project, you sit with them and determine the outcomes you're looking for. After you finish you need to organize your ideas and explain your vision back to your client in a simple, understandable way. This is where wireframes come into play.

But what is a wireframe?

A wireframe is a visual representation or a mockup of an interface using only simple shapes. They're void of any design elements such as colors, fonts or images and they're used to communicate ideas and represent the layout of a website in the early stages of a project

That being said, wireframing is an area that's often either neglected or poorly executed by many designers.

So today let's take a look at some of the most common wireframing mistakes and how to avoid them.

Mistake 1: Overcomplicating the Design

Although your wireframe is a representation of a future website, always remember that it is a product designed for a very different target audience. Your wireframe is designed to communicate ideas to clients, bosses, developers and other stakeholders. Too many details and graphical elements on a page might confuse users, so keep those to a minimum. If the only person who understands your wireframe is another designer/developer then something has gone wrong.

Use this as a rule of thumb: whenever you finish sketching and ask people without any design/development backgrounds – the office manager, a friend, your barista – whether they understand the basic function of the page .

Mistake 2: Prioritizing Style Over Functionality

Unfortunately, this is one of the most ignored facts by web designers who let their personal taste get in the way. Designers who add elements such as logos, colors and complex typography to wireframes are a case in point. When you add graphical elements to a wireframe you confuse its function with a graphic mockup. This makes it harder to define the visual clarity of the wireframe thus it'll lose its purpose which is communicating ideas.

A wireframe should always represent the function and content flow of a website, not how good it looks. Therefore there's no actual point in including graphical details in them.

Mistake 3: Taking shortcuts

When you sketch a wireframe you might come across moments where you'll say "The sign-up page is not important lets not do it" or "The navigation is simple, I'll skip it", doing so will put your whole sketch to danger since you'll eventually destroy the flow of pages in the website when viewing the final document to the stakeholders.

You need to move that pen and sketch every single detail even if it's a simple line, so in the end you get a fully functional wireframe that you can show to your client and explain the function of each page and how it relates to others. Most projects end up at around 10 to 15 different wireframes in order to accommodate the different page types so keep that in mind.

Mistake 4: Not Getting Proper Feedback

Hear no evil

Before starting to wireframe, someone has to be in charge of the project (Generally, in small companies / startups it's the founder). They'll be the ones with the idea and vision of the project thus they know the end goal or product and give you proper feedback accordingly.

In small projects and single clients, it's generally the designer who's in charge, so he has to understand the end goal and vision of the product and discuss it thoroughly with the client.

Continue reading %5 Most Common Wireframing Mistakes (And How to Avoid Them)%


by Saad Al-Sabbagh via SitePoint

Native Infinite Scrolling with the IntersectionObserver API

Recently an interesting new client-side JavaScript API appeared on the Web Platform, the IntersectionObserver API.

This tiny but useful API provides a means to efficiently monitor (observe) the visibility of specified DOM elements, that is, when they are in or out of a viewport (the viewport of the browser window or of an element). The definition of element visibility can be made precise specifying the fraction of the area of the element that intersects the viewport rectangle.

Some common applications and use cases for this feature include:

  • Lazy-loading of content
  • Infinite scrolling
  • Ads visibility
  • Animations triggered by scrolling (note: this is not a target use case. The visibility information reported by the API might come with a slight delay and pixel-perfect data are not guaranteed).

Browser Support

Being a fairly new API, its support at the time of this writing is still limited:

  • Chrome desktop 51
  • Chrome for Android 51
  • Android WebView 51
  • Opera 38
  • Opera for Android 38

However, an in-development polyfill (there is no support for the root margin) is available on Github, so we can start to play with Intersection Observers right now.

In this article, we'll implement the infinite scrolling UX pattern. We'll use the aforementioned polyfill and even several ES6/ES2015 features along the way such as promises, template strings, and arrow functions.

Infinite Scrolling

Imagine we have a long list of items that we want to browse with infinite scrolling, so that when the user approaches the bottom of the document the next batch of items are loaded and appended to the end of the list.

Here is what we'll be building:

Continue reading %Native Infinite Scrolling with the IntersectionObserver API%


by Giulio Mainardi via SitePoint

Quick Tip: The Many Ways to Create a Hash in Ruby

As Rubyists, we use Hashes for everything. They are just so danged easy and useful. I mean, how often do you need something keyed to something else? A lot, if you're like me. For example, I have four (4) kids, which is a lot. I like to carry around a Hash like this one so I don't forget their names:

$> kids = {1: "Logan", 2: "Emma", 3: "Lily", 4: "Becca"}

Well, this is how I started, but that is little more than a glorified array. Plus, I found myself needing all kinds of information about them, so I changed the hash:

$> kids = {logan: { gender: :boy, dob: Date.new(2000, 12,24), sports: [:soccer], favorite: false } ... }

You get the idea. This Hash has served me well for quite some time, but I thought I'd look into some different ways to create this hash to see if I could make it even more useful.

This is Your Grandparents' Hash Creation

Continue reading %Quick Tip: The Many Ways to Create a Hash in Ruby%


by Glenn Goodrich via SitePoint

AtoZ CSS Quick Tip: Color

This article is a part of our AtoZ CSS Series. You can find other entries to the series here.

Welcome to our next article as part of our AtoZ CSS series! In this series I'll be exploring different CSS values (and properties) beginning with a letter from the alphabet. Let's start by looking at the letter C.

C is for color

The color property is used to change the color of text on the page, but what about the color of selected text?

Using the ::selection pseudo element, text highlighted with the mouse can be styled. There are only a handful of properties that can be altered when styling the selected text. These are limited to:

  • color
  • background-color
  • cursor
  • outline
  • text-decoration
  • text-shadow

Continue reading %AtoZ CSS Quick Tip: Color%


by Guy Routledge via SitePoint