Category: startup

How to build a landing page in 10 min

How to build a landing page in 10 min

To skip the tutorial, feel free to download the source code template from my Github repo here.

There are quite a few templates and tutorials out there for building landing pages. However, most tend to overcomplicate or add a heavy design (such as multiple pages, forms, etc), to what in most cases requires very simple and lean design. Moreover, I’ll be showing you how to use mainly CSS (Grid and Flex) to create a responsive UI, instead of using old school CSS libraries (such as bootstrap). So let’s get to it! 💪

We’re going to build a basic landing page layout, and focus mainly on the fundamentals so you can hopefully take it from there on to the landing page you desire. Here’s an example of the result:

The page will be constructed of four main components: Navigation bar, cover image, a grid of cards and finally the footer.

Since the index.html is pretty straight forward (contains mainly div tags), I’ll focus strictly on CSS. To view the full index page for reference click here. If you’re new to HTML and page structure, click here to learn the basics before moving forward.

Styling layouts with Grid and Flex

Rule of thumb: Use Grid when you need grid-like views such as tables, cards, album media (like in Instagram). In all other use cases consider using Flex. I highly recommend diving deeper into both, since once you master them, you won’t need much else to create beautiful responsive web pages.

Navigation bar

We’ll use flex so we have a one direction row as needed for our navigation bar. Since we’re using a <nav> tag, we want to remove the dots (list-style). Finally, we’d like to remove any default margins set by the browser, so we reset margin: 0.

.main-nav {
    display: flex;
    list-style: none;
    margin: 0;
    font-size: 0.7em;

When changing the width size of our browser, we can see some of the nav bar cut out, so we need to modify how it’ll look when the width is smaller:

@media only screen and (max-width: 600px) {
    .main-nav {
        font-size: 0.5em;
        padding: 0;

We’d like the ‘Contact’ option to stick to the right so we set margin-left to ‘auto’. This will automatically set a maximum margin to the left of the hyperlink:

.push {
    margin-left: auto;

Finally, we’d like the navigation bar to stay sticky and always appear at the top of the page. Also, we’d like it to appear above all other elements (z-index):

.sticky {
  position: fixed;
  z-index: 1;
  top: 0;
  width: 100%;


We use Flex since we want to keep things simple (just center content). After setting our display to flex, justify-content centers content horizontal (X axis) within the container and align-items centers vertical (Y axis). We want the image to fit the entire screen so we set the height to 100vh, which means 100% of view height:

.container {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;

Also, we’d like the cover text to appear above the image and in the center:

.coverText {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-weight: bold;

See the full CSS style sheet for additional minor adjustments.

Grid of cards

As described above, we want to create a grid of cards so we’ll use Grid this time. grid-template-columns sets the style of each column (or div). FYI: If we were to just set 1fr, we would see just one block per column. So we set it to repeat (just like typing 1fr 1fr …) and autofill display with anything from min 350px to whole screen (1fr). Finally, we set the grid-gap (padding between grid objects) to 20px:

.grid-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    grid-gap: 10px;

Next, we’ll style each card within the grid. The below is pretty straight forward for setting the margin per card and background color:

.card {
    background-color: #444;
    margin: 50px;

We’d like each card to have an image fit the entire top area, and under it have a title and paragraph and a button for ‘read more’. Also, we just want to manipulate images, titles and paragraphs within the class card, so we set it with the below:

.card > img {
    max-width: 100%;
    height: auto;

.card h1 {
    font-size: 1.5rem;

.card p {
    font-size: 1rem;

While the image fits 100% of the card’s width, we’d like to add some nice padding to the text area of the card:

.card > .text {
    padding: 0 20px 20px;

Finally, we set the button design that appears within each card. We’ll set the border to 0 (since default appears with a border), and add some padding, color, etc:

button {
    cursor: pointer;
    background: gray;
    border: 0;
    font-size: 1rem;
    color: white;
    padding: 10px;
    width: 100%;

button:hover {
    background-color: #e0d27b;


Last but not least, our footer is pretty straight forward. We’d like the inner text to be smaller than default, and pad the footer with some color:

footer {
    text-align: center;
    padding: 3px;
    background-color: #30336b;

footer p {
    font-size: 1rem;

That’s it! Following this simple responsive layout, you can further build almost any landing page your heart desires. To take this layout to the next level with some amazing animation libraries, here are some of my favorites:

  1. Sweet Alert — Add stylish alerts
  2. Typed.js — Add typing animation to your headers.
  3. Auroral — Add animated gradient backgrounds.
  4. Owl Carousel — Add animation to you elements
  5. Animate.css — Add styling animations upon loading elements.

To download the full source code click here!

If you’ve enjoyed this piece, go ahead and share it somewhere online so others can read it too. For more articles, visit my tech blog at

Chatbots are here to stay. Here are 4 reasons why.

Chatbots are here to stay. Here are 4 reasons why.

For the past several years, I’ve been dedicating my life to learn, design, build and write about chatbots. The main reason chatbots fascinate me and conversational interfaces, in general, is because they offer the most natural way for humans to interact with machines. Not only is the interaction natural, but also simple, clean and focused on what you need instantly. Think of Google’s search interface. All you can do is input search queries into a little text box. Everything that comes afterward is magic.Chatbots are still in their very early stage due to a few factors:

1. Lack of expectations between what chatbots can do and what users expect (or in other words, bad user experience). This leads to an instant disappointment and therefore to low usability. It starts with the largest bots such as Siri and all the way down to the basic ones, which confuse users about their actual capabilities. In theory, Siri claims she can do almost anything related to your iPhone device, calendar, and other internal Apple apps.

In reality, over 60% of what you ask Siri is not understood or results in general web search results. Just so you can get an idea of what she can do, here’s a list of Siri commands. Did you know she can do most of it? I didn’t before.

2. The need to educate users on creating new habits. The last bot I’ve built was focused purely on the conversation and therefore did not have any buttons or menus. Retention was low, despite the fact that most of the conversations between the bot and users were held successfully. What I’ve discovered, was that the more buttons and menus I added, the more retention grew. Swelly is a great example for successful bots with minimum conversation and maximum buttons.

This behavior led me to the conclusion that the majority of users are still not used to talking with machines naturally, but rather prefer to click on buttons as we’ve been used to for the past 30 years. Secondly, clicking buttons is faster than typing sentences. However, buttons are not faster than voice, which is why I believe voice will eventually dominate the bot space. The transition from buttons to a natural conversation is growing but is still in its early adoption stage.

3. Artificial intelligence might have improved, but is still in its infancy stages. The reason this last and not first is because I truly believe we can build great chatbots with today’s current AI solutions (such as,, etc.) if bots were more focused on how to create user habits and to offer a well-designed user experience that meets user expectations.

You can read more about how to do this in a previous post I’ve written on how to improve your chatbot with 3 simple steps. Apparently, AI will only improve with time as more and more data is collected and trained across a multitude of domains.

For all the reasons above and more, we’re still far from seeing the real potential of chatbots. However, there are strong reasons why chatbots are here to stay and will improve exponentially over time:

The optimal Human to Machine interaction

If you think about it, we’ve learned over the past 30 years to adjust ourselves to the complexity and limitations of machines. This adjustment has made via websites, applications, buttons, icons, etc. But in my opinion, the optimal scenario should be just the opposite — Machines should be able to adjust themselves to us humans, both from a natural language understanding perspective and personalization.

Humans should be able to ask a machine anything naturally, instead of having to learn new interfaces, products, and habits for every service they need.

For example, let’s say you’d like to know the weather. Until recently, you’d have to find and pick a service of your choice out of many alternatives and learn how to use it functionally. Now, since every service tries to be innovative and different from its alternatives, this usually results in various UX/UI which means more learning and effort required by users. The optimal solution would be if you could just ask. Thankfully there are many great solutions today for weather assistants (such as Siri or Poncho), and there are much more to come in other domains.

Domain specific AI

Not very long ago, companies built virtual assistants who tried to go very wide and open but quickly realized how hard it is to understand natural language. Going back to Siri’s example, Apple sought to capture many domains to display Siri as the ultimate personal assistant. This ambition failed very quickly. On the other hand, AI solutions that have succeeded, are the ones that focus narrowly on one specific domain.

Take for example Getdango — an AI solution for predicting emojis. They’re doing a great job predicting emojis based on natural language, and it’s due to their narrow focus. Another example is Meekan, a scheduling assistant for teams on Slack. Meekan is a chatbot dedicated to providing the best solution for scheduling events as easily as possible.

The power of synergy where individual bots focus on specific domains is the right approach for solving bigger AI challenges. You can see companies moving in this direction like FB Messenger’s latest release of handover protocol which enables two or more applications to collaborate. More importantly, Amazon partnered with Microsoft to collaborate on Alexa with the help of Cortana to provide a more powerful virtual assistant. If every bot were to focus on one specific domain, the race to AI in a whole would be solved faster and more efficiently. Happily, that’s where we’re heading.

The power of long term relationships

The way most products are designed today is to maximize immediate short term value for users once they enter an application. While the web and mobile applications focus on short term value, bots can and should focus on long term value. Bot developers should focus on how to build relationships with users over time so that value is gained and grows continuously with every single interaction. With time, bots should know enough about what they need, to maximize and personalize the user experience and minimize input friction.

For example, say you’re looking for a travel planning service. The way you would go by it today, is to look at travel sites, fill the proper forms, and teach the site about your preferences and filters every single time. The way a bot should work is to know which information is relevant to learn about the user, like personal information, preferences, budgets, places the user has already been to and etc. Bots should constantly learn from user’s behavior and offer much more personalized responses.

The optimal way you’d be conversing with such a bot after some time would be as follows:

The bot should know by now how many people are in your family, their ages, where you’ve already been to, where you’re at right now, what you like to do, what you don’t like and much more. In other words, the bot shouldn’t be any different from a real travel agent.

To see how much are users willing to share regarding their personal information within a conversation, I’ve researched with one of my bots. The bot started asking users basic questions like “how old are you” all the way to more personal questions like “what are you most insecure about?”. Guess how many of total users answered all questions truthfully?… Over 85%. More specifically, 89% of women answered all questions truthfully, while “only” 81% of men answered all questions. So if you’re a bot developer, don’t be worried about users not sharing their information. Worry about what questions you should be asking to enhance the users long term value. This kind of information retrieval is something today’s applications cannot achieve, and where chatbots have a huge advantage.

Cross platform usability

In just a few years, mobile apps have transformed to must-haves for smartphone users. But despite the increase in app usage and app choices, the number of apps used per user is staying the same, according to a recent report from Nielsen. Most people are tired of downloading mobile apps and learning about how to use new interfaces.

Also, research says that US citizens own in average 3.6 connected devices. These devices can vary from mobile devices to Smart TVs and products like Amazon Alexa. That’s a lot of connected devices! Now obviously, users would like to interact with your service on any device they’re using. But what do you do? Build an application for iOS, Android, Smart TV, Alexa, Smart watch, iPad, Windows and Mac and more? Sounds like a lot of work. And it’s going to be very hard for you to get users to download your app in the first place since they’re already flooded with other apps.

This ever growing challenge is where the beauty of messaging platforms comes in. At present, approximately 75% of all smartphone users use some of messaging apps such as WhatsApp, WeChat, Facebook Messenger, etc. Over 1.2 billion people worldwide have and use Messenger on their devices, all people that have mobile devices have SMS and obviously, most have an email account. The list goes on. Instead of building applications and spending hundreds of thousands of dollars, just focus on building your bots back end. For the front end, just integrate your bot across multiple messaging platforms that are already on users devices, and you’re set. If your service brings value, users will come. More importantly, turns out it’s what users want.

The future and success of chatbots depend not only on the big 4 tech companies but on developers and entrepreneurs who continue to innovate and push boundaries in AI and conversational interfaces. Most of the current mistakes in this sectors are tomorrows improvements and solutions. Eventually, bots will bring great value that cannot be achieved with today’s applications.

To learn more about chatbots go ahead and read the chatbots beginners guide. If you want to start building one, read this post on how to develop a Facebook Messenger bot.

Recruit Developers: Must-Ask Questions

Recruit Developers: Must-Ask Questions

Have you ever heard the phrase, “it’s not the idea, it’s the people”? Every startup needs top talent to survive – especially top developers. But how do you find them? Interviews of course! I’ve interviewed multiple rounds of people to join an intensive coding community. We are looking for people that we can place into full-time developer positions at the end.

It is easy enough to find tough coding questions to test interviewees’ technical skills, but what about questions to determine characteristics that are hard to measure? Here are a list of questions to help you find those key people who will make your team a success. Many of these questions are good for non-developer roles as well. Print them out and bring them to your next interview!


  • Tell me about a project you worked on by yourself? What resources did you use? What was the outcome?
  • What skills do you want to gain but don’t have yet? How do you plan to get them?
  • When in your life did you first learn the value of independence? How have you used that knowledge since then?


  • Tell us about a manager you liked, what did you learn from them?
  • Tell me about a project that you led? What worked? What was hard?
  • What do you do when there is a disagreement between group members? How did you learn these skills?
  • If you could lead any project, what would it be? Why?


  • Growing up, what was the activity that taught you the most about the value of teamwork?
  • What role do you normally take in a team environment?
  • What role is hardest for you?
  • What would past team members say about you?
  • What would you want your next manager to know about you?
  • What skills do you have that others may not? How do you normally teach other team members this skill? How do you utilize it to benefit a team?

Problem Solving

  • Tell us about a time that nothing worked, what did you do?
  • What online resource is your favorite for solving problems (other than stack overflow)?
  • Tell me about a time you had to ask for help? Who gave it to you and what happened?


  • What do you do to prepare for deadlines?
  • How do you de-stress?
  • What are your tips for handling pressure?
  • Tell me about a time you missed a deadline? What happened? What did you do to fix it?
  • Who do you know who handles pressure well? How do they do it? What do you admire about it?


  • Tell us about the longest project you ever worked on?
  • How do you decide it is time to move on to another opportunity?
  • What project at our company would you like to be doing in 6 months? 1 year?
  • Where can you see room for improvement in our startup that you can own? How long do you think it would take?


  • Who is someone you admire? Why?
  • Tell us about a friend or colleague who is the most different from you. How did you work together? What did you like about them? What was hard?
  • What was one of the most transformative experiences in your life? What were you like before? How are you different after?
  • What personality skill do you want to develop?
  • What personality characteristics are hard for you to work with? Which are easier for you?


  • What are the common characteristics of good managers?
  • How do you give feedback to people with more responsibilities than you?
  • How do you give feedback to people with fewer responsibilities than you?
  • What tips do you follow to stay organized? What other systems have you seen work?
  • We have this project coming up, how would you organize it? Who would you assign to what tasks? What extra resources would you need?


Ultimately, go with your instincts. Did you enjoy talking to the person? Don’t overlook red flags, dive in. Invite other people on your team to join the interview or have them talk later and focus on anything that gives you pause. Be approachable and respectful. Even if this person is not a good fit for your company, they may have a close friend who is. It is essential to leave things on a good note!




Lauren Glass is an entrepreneur, data scientist, & developer living in Tel Aviv.

Check out more of her writing at CodingStartups

Follow her adventures on Instagram @ljglass

Command & Conquer: Startup Law Essentials

Command & Conquer: Startup Law Essentials

Command & Conquer: Startup Law Essentials

JoiRyde, my startup, had failed…but the mourning period was over. It was time to come back — smarter, faster and stronger than before.

I began the post mortem and quickly realized that one of our glaring mistakes was lack of legal structure. Looking back, my co-founders and I preferred focusing on what was easiest for us — the code. The legal ins and outs were tricky, and we delayed them until it was absolutely necessary (and too late!) Never again; I decided it was time to educate myself.I sought counsel with my friend Idan Bar-Dov. Idan is a lawyer who specializes in startups and if Suits was real, this guy would be Harvey.

In this post, we try to demystify complex legal terms and clarify key issues usually encountered when starting your own company.

Just so we’re clear: This post is intended for informational purposes only and does not constitute legal advice.

Company 101

Ha! I know what you’re thinking! “I know what a company is dude … get to the goood stuff”.

Though we intuitively understand what a company is, its legal definition is quite different from what we know.

There are different kinds of companies. However, in the context of the startup world, when someone says “I just started my own company”, it usually means that they have incorporated a private for-profit organization. In other words, it’s a privately-operated legal entity intended for financial gain.

Legally speaking, a company is independent. It can enter into agreements, assume obligations, and be held accountable for its actions. Incorporators may share a great deal of interest with their company, but legally they are not the company. The employees, founders, board members, and even the CEO are all a part of the company, but combined do not equate the company itself.

Nevertheless, companies are run by people. Like a ship, steered by the captain and crew, companies are lead by their Board of Directors and operated by the people who control the “Company Organs”. These include shareholders, directors, officers etc., who affect the decision-making processes at their different capacities.

They’re on a boat

The Upside (and its limit)

Founders are usually the individuals who “give birth” to the company. They fill out the paperwork, pay the incorporation fee and sign the relevant documents.

In this context remember the following rule of thumb: No Registration = No Incorporation! Namely, your Company registration must be approved by the state.

The main benefit of incorporating is gaining a distinction between individual and company — a.k.a. a “corporate veil”. As separate legal entities, companies are accountable for their debts and obligations, as opposed to the individuals who operate them. In other words, each individual’s contribution marks the limit of their potential financial risk. Hence the term “limited liability company”.

However, the veil’s protection is not absolute. In certain cases Individuals may be held personally accountable for their actions. For example, when using a company for fraud, illegal actions, or to circumvent existing obligations.

Equity — Make it Rain

Crash course definition: equity = holdings, owning a chunk of the company.

Two co-founders splitting equity

When founders say equity they usually refer to shares. This is the company’s “currency”, which entitles its holders to certain privileges, such as financials, control, and information rights.

There is no gold standard in dividing equity between co-founders, it’s subject to your discretion. I believe that founders should be equal partners. Idan thinks that equity should reflect skill and contribution (Y Combinator has researched this extensively, you can read more here).

Exodus — Founder departure

Once equity has been issued, a founder’s reason of departure won’t matter much. They are already an equity owner — it’s theirs, no turning back.

Such a departure may generate “dead equity”. Shares which are held by a founder who is no longer involved with the company. This creates an involvement-equity mismatch, which has negative impact, especially on the company’s fundraising front.

The solution is defining the founders’ relationship upfront, by entering into a Founders Agreement. A departure case must be addressed before it occurs, preferably even before incorporating. Think of a founders agreement like a prenup, which obviously should be signed before getting married.

Equity-wise, it is customary to include a “vesting schedule”, which determines the founders equity eligibility. The purpose of a vesting arrangement is to incentivize founders to remain engaged with the company and diminish any involvement-equity mismatch.

A standard time-based vesting schedule will specify that if a founder leaves before date X, then he will give-up Y equity. For example, in a linear 3 years vesting schedule, if a founder leaves after 1 year, then he gets to keep ⅓ of his shares, and has transfer the other ⅔ to the remaining founders. It’s a quid pro quo arrangement: work = equity.

Things to Remember

  1. Don’t procrastinate — Even it seems dull, take care of your legal foundations from the get go and don’t wait until it’s too late.
  2. Expectation Management- Defining the Founders’ relationship early on helps all founders see eye to eye.
  3. Attracting Investors — Even if your product or tech is extremely impressive, a neat legal duck is always a plus. It conveys awareness and shows investors you’re sincere, organized and devoted.
  4. Prevention is the best medicine — Building a company is an intense endeavor, and it can bring out a drastically emotional side of you. So set up defense mechanisms before taking-off with your team, when everyone is as clear-headed and calm as possible.

If you liked this article, feel free to share. You can follow Idan on Linkedin. You can follow me on Linkedin, Medium or Github for more technology / entrepreneurship content.