One place for hosting & domains


      How to Create a  Freelance Writer Website That Actually Gets You Writing Gigs

      The future is freelance. Did you know? By 2020, 50% of the U.S. workforce will do some type of freelance work — and it’s predicted that by 2027, freelancers will make up the majority. Whether you work exclusively freelance or take on additional side projects in conjunction with your full-time work, you’re joining an ever-growing population of successful, flexible, untethered, and creative craftspeople.

      What’s more, the innovation and growth of technology have made the work environment more fruitful for freelancers: 64% of freelancers found work online — a 22-point increase in the last five years.

      And you freelance writers, bloggers, and web content writers — we see you. We know you’re out there, coloring the world with your beautiful language and lightbulb ideas.

      But because freelancers must do their own marketing legwork, you need to take advantage of every tool available to you in building a prolific writing business. One of the biggest weapons in your arsenal? A relevant web presence. Forget scouring the wanted ads to find work — establishing an online presence and showing off a strong virtual CV is vital for getting seen and earning $$$.

      How to put your best foot — and word — forward online? A top-of-the-class website. For writers, a killer freelance writer website is a make-it-or-break-it tool for getting you leads on quality writing gigs. And we’re going to show you how to do it. Here’s what we’ll cover in this guide (in case you want to jump ahead):

      With a website, you can flaunt your talent and personality, create sustainable sales, build your writing portfolio, and connect with potential and return customers, building your business and financial success — all in one place.

      Build Your Online Portfolio with DreamHost

      We make sure your freelance writing website is fast, secure and always up so you never miss a gig. Plans start at $2.59/mo.

      Why is Having a Good Freelance Writer Website Important?

      You’re a writer — you know, good ‘ol pen and paper. Why do you even need a website in the first place? With a well-built freelance writer website, you can:

      • Showcase Your Online Portfolio. One of the most significant advantages of creating a freelance writer website is having a living, breathing portfolio that is easily accessible online. Prospective clients can access your work, and through a broad range of content, get a feel for your style, voice, and writing ability. They can view your previous work and a wealth of relevant content that will help them trust their business to you.
      • Increase Brand Visibility. Your website is a visible showcase of your writing ability and a crucial tool for establishing awareness of your brand. With a powerful online presence, visitors don’t have to go digging around to discover info on your offerings. Not only do you make it possible for people to find you online, but your website also helps you build likability. With great content and engaging content, visitors start to care about you and your work and will entertain the prospect of working with you. It illustrates your legitimacy as a writing professional and helps you position yourself as an authority in your field. By making your work accessible, you broaden your visibility and provide social proof which, in turn, increases your chances of getting rewarding freelance writing work.
      • Strengthen Brand Legitimacy. Let’s be real. Companies without a website or an internet presence tend to raise some red flags in the e-commerce ecosystem, right? Everything’s on the web. These days, a dot com is an essential requirement in the biz world. If internet users can’t find your virtual corner of the web, customers seeking out a particular product or service will instantly think: can we trust that business if they’re not online in an everything-digital age?

      It’s a no-brainer that if you want to do business and market a product or service in the world we live in, potential clients need to be able to find you with just a couple of clicks from their browser. So on a very basic level, having a website helps establish your brand as a legitimate business, rather than just operating amateur or letting customers rely on what they gather from your social media presence. What’s more, the better you are at outfitting your site with great content and strong visuals, the more that legitimacy will increase and work in your favor. To bless your bottom line and earn trust from internet visitors, it’s crucial to demonstrate not only your tech-savvy web skills but also your ability to establish a professional and valuable web presence.

      We know you’re wondering: Do I have to have a freelance writer website if I’m just getting started? The short answer: No. BUT — having an established site for your freelance writing (your services and a showcasing portfolio) is the best way to build a marketing funnel and establish a legitimate, cohesive, and authoritative brand. It’s a clear way to put your best foot forward and secure quality writing jobs.

      OK, but hold up. It’s 2019, you say. Can’t I just use social media, like a LinkedIn company page, instead of a website to promote my writing business? Sure. But a website, even a simple one, is a good idea. With a well-established freelance writer website, you build authority as a brand, and increase your chances of getting seen by potential clients. Plus, you’ll own all the content on your site — something that isn’t always true on social media sites.

      Perhaps building a high-performing and snazzy-looking freelance writer website seems like an overwhelming task. But putting in the effort to set up a website is an investment with guaranteed returns.  A site to be admired — and get you hired.

      How to Build a Great Freelance Writer Website (7 Steps)

      Like we said, creating a great-looking freelance writer website doesn’t have to be rocket science or overly time-intensive. We’ll show you how to set up a website in seven easily-manageable steps.

      1. Brand Your Business

      Time to pick a name, business owner! If you’re branding yourself and marketing your skills, you can use your own name, but ask yourself a few of the following big-picture questions before nailing down a moniker:

      Would you ever sell your business? Even if you’re not entirely sure of your long-term business plan, you probably have an idea if you ever intend to pass the torch on your writing business or include others’ services or products in conjunction with your business.

      If you’ve entertained the idea of selling your brand one day or partnering up, don’t brand yourself with your own name. Obviously, that is unique to you and won’t transfer. Also, if your name is difficult to spell, pronounce, or remember, consider the possible confusion using your name might cost your business.

      But then again, your personal name might help brand you uniquely as potential clients can differentiate you from other common-name writing businesses. So consider your options before jumping into a brand or business name haphazardly. You never know how you’ll grow, adapt, and change in your freelance writing business. You’ll want to choose carefully in order to set yourself up for long-term success.

      Freelance writer at laptop.

      2. Choose a Content Management System

      Now that you’ve got your brand’s fancy new name tag, you need a content management system (CMS) to facilitate the creation and publication of your content on the web. The best part? You don’t have to know how to program a single line of code to use one! Take WordPress, one of the web’s most popular content management systems out there (it powers 30% of the internet!)

      With the WordPress platform, you can create and manage your web content without the pressure of a deep learning curve — you can get a website set up with little-to-no technical know-how.

      3. Register a Domain and Set up Hosting 

      OK, you’ve decided you want to use WordPress, and you’re full of great content ideas. Good to go, right? Well, first, you need to find your site a home on the web so that visitors can actually view and engage with your content. All those great ideas won’t amount to anything if your website isn’t available online. That means you need two very critical components: a domain and a hosting provider.

      A domain is the unique web address where your website can be found. This is what visitors will type into their browser to navigate to your site (for example, Your domain is unique to your website and should match your brand or business name. You should also consider your choice of top-level domain —  meaning .com or .blog or dot-whatever —  in order to position yourself as an authority in search engine rankings. Whatever domain name you choose, you purchase it through a registrar.

      Next, you need a hosting provider. Hosting companies sell unique-to-you plans that include space on a server so that your website has a place to live online. Without a server, your website won’t be available to visit. For the best chance at scoring quality gigs, you need a quality hosting provider.

      There are a lot of providers out there, but only DreamHost can offer you the best of the best: one-of-a-kind features, high-performance tech, and responsive support. Plus, we make things easy: domain registration and hosting services under one roof and one-click WordPress installs. With Shared Hosting, just check the “Pre-Install WordPress” box during sign-up and boom! We install it for you.

      Shared Hosting provides ambitious WordPress beginners everything they need to create a killer freelance writing website that gets them hired. Even better? Our Shared Hosting plans start at just $2.59 per month.

      DreamHost’s Shared Hosting

      4. Choose a WordPress Theme

      Time to outfit your website with a WordPress theme. The theme you select doesn’t just dictate the overall appearance of your site (though it does do that), but it also determines what sort of functionality your site will have. The right theme will allow you to control and customize your website to your exact specifications and niche. Browse the WordPress Theme Directory or search WordPress theme developers to find and install your perfect theme.

      WordPress Theme Directory

      5. Decide What Content Your Site Needs

      So what does your freelance writer website need? What are the must-have content and features relevant to your niche? Time to make a plan. While you have the freedom to customize your website according to your brand and personality, there are a few essential pages that your site should have to set you up for the best possible business success:

      • Homepage: An easy-to-navigate and attractive landing page that can direct visitors and potential clients to important parts of your website.
      • Online Portfolio: Your website should be a solid, structured way to demonstrate your skills as a professional writer. A vital feature — nay, asset —  of your website is an easy-to-find, specially-dedicated portfolio section where you can showcase relevant published work and prove your capabilities as a writer.
      • Services: Nearly 50% of website visitors check out a company’s product or services page before any other sections of the site. That’s big. What do you offer? Give potential clients a clear and detailed description of the specific writing services you offer.
      • About: Don’t be a robot behind the computer screen. Demonstrate your writing chops, let potential clients and visitors get to know you, and help them get acquainted with your unique voice with an engaging and humanizing Get-to-Know-Me section. Showcase your accomplishments and passion for what you do but also share what makes you unique.
      • Contact: How can potential clients get in touch with you? Make your contact information easy to find and use.

      Now that you’ve got your essential pages set up, you can go above and beyond to bring your freelance writer website to the next level. While you should avoid non-essentials, you can consider adding the following optional (but helpful) pages:

      • Clients: Name-dropping your current clients on your website is a great way to demonstrate social proof and establish your authority in the field. Think of it as a virtual word-of-mouth recommendation.
      Speaker, writer, and consultant Hillary Weiss proudly displays the well-known brands that believe in her work.
      • Testimonials: The power of a good review cannot be overstated, especially in an online environment. Confidently showcasing positive feedback you’ve received from clients in your field about your writing services can be great fodder for snagging new clients and more writing jobs. It’s OK to toot your own horn.
      Writer and speaker Colleen M. Story inspires confidence with a visible display of reader testimonials.
      • Blog: In addition to your portfolio, you can showcase your writing chops and your unique voice with a content-rich blog. The extra effort and value you’re providing your visitors with relevant blog content can be an investment with rich returns.
      • Resume: Allow visitors and potential clients to check out a bulleted list of your skills and achievements with an easy-to-view CV.
      • FAQs: If you want to answer potentially common questions about your work or services or provide more specific details to potential clients about what you offer, consider adding a FAQ section.
      • Downloads/Freebies: Making free, downloadable goodies available to your visitors on your site shows that you’re going above and beyond to offer value, demonstrating the high-quality nature of your freelance business.

      Lastly, consider pricing: if you want to be explicit on your site about the cost of your services, be transparent, upfront, and confident in the value of your work. Or if you have adjust-to-fit service options, you can keep costs mum and invite interested visitors to contact you for a quote.

      6. Create the Content

      Time to get creating! You know the adage: content is king. Live by it. You need to fill your website with rich content to attract traffic and prove your worthiness as a business. Fill the content on your must-have pages first, then continue to provide valuable content regularly.

      Of just as much importance as creating content is creating it smartly — meaning, using it to get found by potential clients. How to do that? Using keywords. Consider: what are relevant topics and search terms related to your field? Being smart about how you use phrasing and common search terms in your content will allow you to position yourself for good rankings and stronger search engine optimization. So do your research and incorporate common search terms into your content. Use tools like Google’s comprehensive (and free!) Keyword Planner to create high-traffic website content with smart keyword research and build a strong content marketing strategy.

      Also, consider the tone of your content. Does it appropriately and uniquely represent your brand? Does it showcase your expertise and/or personality? One of the most marketable tools in your writer repertoire is your voice — use it smartly.

      7. Launch

      Celebrate! Toast to yourself, do a little dance, pat yourself on the back. You did it! Your website is up and running! You should be proud. We know that having something living, breathing out there on the web can be nerve-wracking. Don’t worry about your website not being perfect. The important thing is that it’s out there.

      Remember, you can always perfect and tweak over time. Most importantly, people can start finding you — and you have something you can improve on.

      7 Mistakes to Avoid When Setting Up Your Writer Website

      When you’re starting out with your website, it’s inevitable to face a learning curve. Some things just take time to learn. You will improve over time. But guess what? We want you to succeed —  as soon as possible. So we’re giving you some inside knowledge: a list of thou-shalt-nots when setting up your freelance writer website. Avoid these major whoopsies, and you’ll be one step ahead in attracting quality writing jobs.

      1. Bad Visuals

      Let’s talk a little science. Did you know 90% of the information processed by the brain is visual? What’s more, 80% of people remember what they see (compared to 10% of what they hear and 20% of what they read.) Lastly, know that visuals help grow traffic — content creators who feature visual content grow traffic 12 times faster than those who don’t.

      Not having visuals as a part of your freelance writer website is a BIG no-no. But even more, having bad visuals can torpedo your chance at building a successful freelance writing business. Judgments on a company’s credibility are 75% based on the company’s website design, so take seriously the first impression you’re making with your visuals. Your visuals should be reflective of the quality work you offer, proving you trustworthy to potential clients and their money.

      To benefit from the traffic-building and engaging powers of excellent visuals, select quality images, a robust visual structure, and remember: white space is good space.

      2. CTA Issues

      When visitors come to your website, you want them to do something. But if you don’t ask them to do anything, they will click away and you won’t get any business. Not ideal. Even if you have kick-butt writing skills and excellent website design, having confusing, conflicting, or nonexistent CTAs (70% of small biz websites lack a CTA) will damage your chances of growing your business.

      So think: what do you need visitors to do to get writing gigs for your business? Whether it’s subscribing to an email list, filling out a contact form, or viewing your portfolio of work, make sure that your CTA is visible, clear, and focused.

      Elna of Innovative Ink has a clear CTA front and center — visitors know just what to do.

      3. Sloppy Formatting

      You’re not just a freelancer — you are a brand. As such, your potential clients expect a level of professionalism from you, so they need to see that the minute they click onto your site. Along with clear navigation, focused visual structure, and a frictionless contact funnel, your website needs to be fine-tuned, sleek, and polished.

      Even as a freelancer, an entrepreneurial free spirit, you need to channel those suit-and-tie vibes on your website to gain the trust of potential clients. No sloppy formatting, no error-filled copy, or overly-casual design. Concern yourself with the details. If you want people to trust you with their dollars, you need to be professional. Not only does meticulous formatting help your site design make a killer first impression (remember the eye-opening stats about visuals?), but it helps people view you as a trustworthy business.

      4. TMI (Too Much Information)

      Don’t get us wrong; it’s great to be personable and relatable. A critical part of your brand’s success is your likability. You want to be a person to visitors and potential clients, not just a robot writer behind a screen.

      But your website is not your online diary.

      Refrain from sharing too much personal info or content irrelevant to your field. Focus your content and be strategic about what you choose to share, making it all in the aim of building your business and earning clients.

      5. No Target Audience

      You have a brand-spankin’-new freelance writer website and are ready to bring in traffic, and ideally, new business. But who are you trying to reach through your website? What kinds of people are you looking to attract? In simple terms: who is your target audience?

      Your success is hugely determined by how you focus your efforts on building a business. If you cast too wide a net, you won’t be able to effectively target the high-quality clients that you want. So before you start seeking to build traffic, identify your target.

      6. Weak Copy

      You’re a writer. Skilled wordsmithing is your talent, your money-making tool, and your passion. That being said, every aspect of your website should reflect your abilities as a writer. Weak, lackluster copy will not earn you clients, build trust, or engage visitors. In fact, it will send potential clients to your competitors.

      Take special, even meticulous care in making sure that your copy is strong, engaging, and polished. Whether you’re writing blog posts, articles, or landing page copy, don’t just wing it — write and rewrite, seek a second pair of eyes for outside observation, and edit, edit, edit. The strength of your copy will make or break your business.

      7. Infrequent Updates

      Reality check: creating a money-making freelance writer website isn’t a one-and-done affair. Just like software needs regular updates, so does your website. Not only do periodic refreshes help you out SEO-wise, but they keep things relevant and professional. Update blog content, test plugins, solicit feedback, and use site analytics frequently to adjust how it operates for maximum UX. Know that you won’t always get things right the first time — continually be looking to improve all aspects of your website.

      Handy Resources for Starting a Writer Website

      Don’t worry — we’re not going to just throw you out to the web’s wolves without a few more top-tier tools for your burgeoning freelance writer website. Here, we offer you a well-curated roundup, a well-stocked toolbox of handy virtual resources destined to help you reach your goals.

      Web Hosting

      We know we’ve mentioned this before, but a good web hosting provider can make all the difference for the success of your freelance writing business. It’s true. Not only can a reliable hosting provider help make creating content easy, but it can make the management of your website a snap, leaving you to focus on the most crucial aspects of running your writing business.

      With DreamHost Shared Hosting plans, we offer you those benefits and more — including 24/7 support, high-performance tech, and budget-friendly options. Choosing a hosting provider is one of the first choices you’ll make on your journey — make it a smart choice with DreamHost.

      DreamHost’s Shared Hosting


      Like we’ve said, your freelance writing business is just that: a business. And most companies out there are easily identified by a unique marker — their logo. Think about any famous company: Nike, Apple, McDonald’s — you can quickly think of their logo just by seeing the name, right? Or you’d be able to pick it out easily if you just saw the logo’s telltale visual?

      Having your own logo is an integral part of establishing and building your brand. It’s essential for consistency, visibility, and growth. But don’t worry; making one that your visitors will love isn’t hard to do.

      Brand Colors

      In addition to your logo, you should establish a color palette that is unique to your brand. This will help your website and materials feel cohesive and professional and can even help you grow your business by highlighting relevant sections or CTAs with specific colors. Picking your brand colors is as easy as 1-2-3, but remember to be intentional about your personal branding choices.

      Stock Images

      We’ve already emphasized how significant visuals are for helping bring in traffic and engage visitors. So where do you get professional-looking images and other visuals? Try Pexels or Unsplash for high-res, royalty-free photos, or find a photographer to take some for you. If you’re ambitious, follow a DIY at-home photography guide to snap your own for cheap. And remember, copyright rules rule, so keep things legal. Give credit where necessary and don’t steal.

      Photo Editing

      You don’t have to be a Photoshop master to give your images that extra oomph. Crop, adjust, and enhance your photos to improve composition and make your website visuals a powerful tool in earning your business. Try a few simple photo editing tricks on the software of choice.


      As another type of visual, icons or symbols on your website can make it easy for visitors to find exactly what they’re looking for — whether it be your social media pages, your portfolio, or contact form — without even having to navigate menus or copy. They’re a universal language! Get great-looking icons on sites like The Noun Project, Creative Market, or for free on Flat Icon.


      Your freelance writer website should have its own unique feel. After all, you are your unique brand. Your design incorporates not only your layout, but the style of your copy, visuals, and navigation. A well-designed website is carefully thought-out for ultimate functionality and aesthetic, and we’ve got the guide to help you make it look snazzy.

      If you don’t have an eye for design, DreamHost can help. We’ve partnered with the experts at RipeConcepts, a leading web design firm, to offer professional web design services to our users.

      Professional Website Design Made Easy

      Make your site stand out with a professional design from our partners at RipeConcepts. Packages start at $299.

      The Final Word

      Now, we’ll reveal the results of our crystal ball reading: we see a bright (and prolific) freelance writing career in your future! Getting quality writing gigs may take some website-building legwork, but with a well-built site, you’re well on your way to new clients and a growing portfolio.

      Because your success is our success, DreamHost offers you the perfect beginning-of-the-journey hosting packages to get you on your feet. Check out our comprehensive Shared Hosting plans to start taking your career to the next level with a freelance writing website.

      Source link

      How to Create a Company Page on LinkedIn to Promote Your Small Business

      With the rise of social media marketing and the prevalence of social networks in our day-to-day lives, having a presence on a variety of platforms is a must for your company. That means creating and managing multiple accounts, which can be time-consuming.

      Fortunately, building and maintaining a company page on LinkedIn only takes a little extra time and effort. By adding an air of professionalism to your online presence and showing off your products or services, a well-rounded LinkedIn page can help polish and promote your company’s identity.

      This article will explain the many benefits of creating a company page on LinkedIn. Then we’ll show you how to launch one, pointing out the important requirements you’ll need to meet along the way. Let’s dive on in!

      Build a Website to Go with Your LinkedIn Company Page

      We offer budget-friendly Shared Hosting services with robust features and resources to help you create the perfect business website. Plans start at $2.59/mo.

      The Benefits of Having an Outstanding LinkedIn Company Page

      As a social media platform designed to help people build their professional networks, LinkedIn is a crucial resource for any business that’s hoping to grow and expand. It can help you get plugged into industry-related news and even share valuable content that promotes your company.

      When compared with individual employee profiles, a LinkedIn company page can be much more effective at showcasing your business as a whole. Of course, your employees’ profiles are still useful as well. They can act as indirect company ambassadors and help build your connections organically.

      On the other hand, a company page is a useful outlet for showing off your business’ latest news, along with your specialized products or services. LinkedIn will help deliver this content to other professionals in your industry to generate buzz and business.

      Another handy feature of the platform is that you can easily monitor the impact of your page. Notifications and visual analytics reports will keep you apprised of how often your company is mentioned on LinkedIn so that you can see the effects of your presence there.

      Plus, this will help you create effective promotional content for your page. You can keep track of trending content to see what’s working, and use custom Call to Action (CTA) buttons to send traffic towards your website. In other words, a LinkedIn company page offers a lot of potential advantages.

      How to Create an Award-Winning Company Page on LinkedIn (In 6 Steps)

      There are quite a few things to consider if you want to create a company page and successfully promote your business on LinkedIn. However, with a little careful planning, it can be worth the investment of time and energy. The steps below will help you effectively plan and build your page.

      Step 1: Ensure That You Meet LinkedIn’s Requirements for Creating a Company Page

      One potential roadblock when it comes to creating your LinkedIn company page is that there are a handful of requirements you must meet to access this feature. For instance, you’ll need to have a personal LinkedIn profile of your own. That account also has to:

      • Be at least seven days old
      • Have a profile strength of Intermediate or All Star
      • Show that you’re currently an employee at the company you wish to create a page for
      • List your company position on your profile
      • Have several first-degree connections (there’s no specific number you must reach, but the more you can include, the better)
      • Be associated with a company email address that has a unique company domain

      In short, if you’re not an active LinkedIn user already, it can be challenging to get a company page started. Fortunately, anyone who’s an employee at your business can create and manage your company page. As long as you have at least one active LinkedIn user, meeting these requirements shouldn’t be too hard.

      The one criteria that might get a little tricky is providing a company email address with a unique domain. Gmail, Yahoo, and other accounts won’t work for this purpose. You’ll need an address like

      Fortunately, we offer an affordable solution.

      At DreamHost, we provide professional email plans for creating addresses with unique domains. They start at just $1.67 per month per mailbox. You don’t even have to register your domain or host your website with us — this service is available to anyone!

      Get Professional Email @yourdomain

      Promote your website with every message you send when you set up professional email that matches your domain with DreamHost. Plans start at $1.67/mo.

      Step 2: Add Your Company’s Details to Launch Your New Page

      Once your profile (or an employee’s profile) meets all of LinkedIn’s requirements for creating a company page, you can do so by clicking on the Work icon in the toolbar. Then scroll down and select Create a Company Page.

      Creating a new Company Page on LinkedIn.

      On the next screen, choose the tile that best describes your business. After that, you’ll be able to fill in some basic details about your company. Start with your company’s name and then create your custom LinkedIn company page URL. Don’t forget to add your website’s address as well.

      Adding company details to a new LinkedIn company page.

      Next, you can select your company’s industry, size, and type. You have to choose from several drop-down menu options, so you may need to pick the available choice that’s most relevant, especially when it comes to your industry.

      After that, scroll down to upload your company’s logo and add your tagline. These elements are essential for promoting brand recognition through your profile.

      Adding a logo and tagline to a new LinkedIn company page.

      Keep an eye on the Page Preview section to get a peek at how your company page will look. When all your information is correct, check the box to agree to LinkedIn’s terms and then hit the Create page button.

      Step 3: Spruce Up Your Company’s Profile to Attract and Inform Visitors

      After you’ve officially created your company page, you can start adding additional information and brand elements. First and foremost, you’ll probably want to include a banner image. This is a large image that will be displayed at the top of your page, similar to a cover photo on Facebook.

      DreamHost’s LinkedIn company page banner image.

      You can use the small blue pencil icons to edit various features on your company page, including your banner image. You might use a team photo, a picture of your brick-and-mortar location, a popular product image, or a relevant decorative visual.

      Additionally, you’ll want to write a compelling summary of your company for the Overview in your About section. LinkedIn provides limited space here — just 2,000 characters, including spaces — so you’ll want to make every word count. Be sure to highlight what makes your company unique and better than the competition.

      Then head over to the Jobs section of your page. Here you can provide career-related information and job postings.

      Job postings on DreamHost’s LinkedIn company page.

      Since many LinkedIn users take advantage of the platform’s job hunting features, this can help to boost your page’s visibility. Just make sure to keep it updated so you don’t have people applying for positions that are no longer available.

      Step 4: Post Regular Updates to Generate Industry-Related Content

      Now that your page is up and includes all your company’s information and some key branding elements, it’s time to start filling it with content. There are a few ways to go about this. One of the easiest is to use LinkedIn to promote blog content you’ve already created for your business website.

      A blog post on the DreamHost LinkedIn company page.

      This doesn’t require you to generate any new long-form content, and it can drive visitors to your website via your blog. Simply include LinkedIn as a part of your blog promotion strategy, and you’ll have a regular source of content for your company page.

      However, you can also include recent business news, upcoming events, and other company-specific posts to keep your followers in the loop.

      An update on DreamHost’s LinkedIn company page.

      This can be a smart and simple way to demonstrate your authority in your industry, promote events, and even attract more followers. Just remember that, as with a blog, your LinkedIn company page will thrive when filled with relevant content that your followers want to see and read.

      Step 5: Promote Your LinkedIn Company Page to Gain Followers

      Your company page isn’t very useful if no one knows it exists. Especially when you’re first getting it off the ground, promotion will be vital to gathering followers. One of the easiest ways to get started is by adding your company’s location to your page’s About section.

      The Locations section of the DreamHost LinkedIn company page.

      This makes your company and job postings more discoverable on LinkedIn. Your page will be more likely to show up in searches as a result. Using relevant keywords in your page’s content can also help to increase your reach.

      Another key promotional tactic is engaging your employees on LinkedIn. Invite them to list your company page on their own profiles and claim it as their place of employment. This will help you tap into their already existing networks to make connections with others in your industry.

      Finally, it never hurts to promote your LinkedIn page on other social channels. This may mean including links to your company page in your Twitter bio or your Facebook About section. You could also include LinkedIn among your social sharing icons on your website and blog posts.

      Step 6: Showcase Individual Products or Services on Their Own Pages

      So far, we’ve covered all the basics for creating and maintaining a LinkedIn company page. However, you can take your profile to the next level and use it as a way to promote specific products or services, by creating showcase pages as well.

      These are pages dedicated to your company’s products or services. They appear on your company page in the right-hand sidebar, under Affiliated pages.

      The showcase pages on Automattic’s LinkedIn company page.

      You can write a description, share a link, and even post content on each of your showcase pages. If you offer a wide range of products or services, this is a way to provide targeted content for each of your audiences. In some cases, this technique may be more effective than offering generalized content on your company page itself.

      If you’d like to create more traditional, campaign-based content for LinkedIn, you might also consider using the platform’s advertising options. LinkedIn ads are highly targeted and can help you reach other professionals in your industry, generate leads, attract job applicants, and more.

      Linking Up

      You have a lot of options when it comes to promoting your business on social media. With its professional audience and unique opportunities for showing off your products and services, LinkedIn can prove well worth your time.

      This guide has demonstrated how to create a high-quality LinkedIn company page in just six steps:

      1. Ensure that you meet LinkedIn’s requirements for creating a company page.
      2. Add your company’s details to launch your new page.
      3. Spruce up your company’s profile to attract and inform visitors.
      4. Post regular updates to generate industry-related content.
      5. Promote your LinkedIn company page to gain followers.
      6. Showcase individual products or services on their own pages.

      Do you need a business website to go with your LinkedIn company page? At DreamHost, we offer affordable hosting services with robust features and resources to help you create the perfect website for your company. Check out our Shared Hosting plans today!

      Source link

      Create and Deploy a Docker Container Image to a Kubernetes Cluster

      Updated by Linode Contributed by Linode

      Kubernetes and Docker

      Kubernetes is a system that automates the deployment, scaling, and management of containerized applications. Containerizing an application requires a base image that can be used to create an instance of a container. Once an application’s image exists, you can push it to a centralized container registry that Kubernetes can use to deploy container instances in a cluster’s pods.

      While Kubernetes supports several container runtimes, Docker is a very popular choice. Docker images are created using a Dockerfile that contains all commands, in their required order of execution, needed to build a given image. For example, a Dockerfile might contain instructions to install a specific operating system referencing another image, install an application’s dependencies, and execute configuration commands in the running container.

      Docker Hub is a centralized container image registry that can host your images and make them available for sharing and deployment. You can also find and use official Docker images and vendor specific images. When combined with a remote version control service, like GitHub, Docker Hub allows you to automate building container images and trigger actions for further automation with other services and tooling.

      Scope of This Guide

      This guide will show you how to package a Hugo static site in a Docker container image, host the image on Docker Hub, and deploy the container image on a Kubernetes cluster running on Linode. This example, is meant to demonstrate how applications can be containerized using Docker to leverage the deployment and scaling power of Kubernetes.

      Hugo is written in Go and is known for being extremely fast to compile sites, even very large ones. It is well-supported, well-documented, and has an active community. Some useful Hugo features include shortcodes, which are an easy way to include predefined templates inside of your Markdown, and built-in LiveReload web server, which allows you to preview your site changes locally as you make them.


      This guide was written using version 1.14 of Kubectl.

      Before You Begin

      1. Create a Kubernetes cluster with one worker node. This can be done in two ways:

        1. Deploy a Kubernetes cluster using kubeadm.
          • You will need to deploy two Linodes. One will serve as the master node and the other will serve as a worker node.
        2. Deploy a Kubernetes cluster using k8s-alpha CLI.
      2. Create a GitHub account if you don’t already have one.

      3. Create a Docker Hub account if you don’t already have one.

      Set up the Development Environment

      Development of your Hugo site and Docker image will take place locally on your personal computer. You will need to install Hugo, Docker CE, and Git, a version control software, on your personal computer to get started.

      1. Use the How to Install Git on Linux, Mac or Windows guide for the steps needed to install Git.

      2. Install Hugo. Hugo’s official documentation contains more information on installation methods, like Installing Hugo from Tarball. Below are installation instructions for common operating systems:

        • Debian/Ubuntu:

          sudo apt-get install hugo
        • Fedora, Red Hat and CentOS:

          sudo dnf install hugo
        • Mac, using Homebrew:

          brew install hugo
      3. These steps install Docker Community Edition (CE) using the official Ubuntu repositories. To install on another distribution, see the official installation page.

        1. Remove any older installations of Docker that may be on your system:

          sudo apt remove docker docker-engine
        2. Make sure you have the necessary packages to allow the use of Docker’s repository:

          sudo apt install apt-transport-https ca-certificates curl software-properties-common
        3. Add Docker’s GPG key:

          curl -fsSL | sudo apt-key add -
        4. Verify the fingerprint of the GPG key:

          sudo apt-key fingerprint 0EBFCD88

          You should see output similar to the following:

          pub   4096R/0EBFCD88 2017-02-22
                  Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
          uid                  Docker Release (CE deb) 
          sub   4096R/F273FCD8 2017-02-22
        5. Add the stable Docker repository:

          sudo add-apt-repository "deb [arch=amd64] $(lsb_release -cs) stable"
        6. Update your package index and install Docker CE:

          sudo apt update
          sudo apt install docker-ce
        7. Add your limited Linux user account to the docker group:

          sudo usermod -aG docker $USER


          After entering the usermod command, you will need to close your SSH session and open a new one for this change to take effect.

        8. Check that the installation was successful by running the built-in “Hello World” program:

          docker run hello-world

      Create a Hugo Site

      Initialize the Hugo Site

      In this section you will use the Hugo CLI (command line interface) to create your Hugo site and initialize a Hugo theme. Hugo’s CLI provides several useful commands for common tasks needed to build, configure, and interact with your Hugo site.

      1. Create a new Hugo site on your local computer. This command will create a folder named example-site and scaffold Hugo’s directory structure inside it:

        hugo new site example-site
      2. Move into your Hugo site’s root directory:

        cd example-site
      3. You will use Git to add a theme to your Hugo site’s directory. Initialize your Hugo site’s directory as a Git repository:

        git init
      4. Install the Ananke theme as a submodule of your Hugo site’s Git repository. Git submodules allow one Git repository to be stored as a subdirectory of another Git repository, while still being able to maintain each repository’s version control information separately. The Ananke theme’s repository will be located in the ~/example-site/themes/ananke directory of your Hugo site.

        git submodule add themes/ananke


        Hugo has many available themes that can be installed as a submodule of your Hugo site’s directory.
      5. Add the theme to your Hugo site’s configuration file. The configuration file (config.toml) is located at the root of your Hugo site’s directory.

        echo 'theme = "ananke"' >> config.toml

      Add Content to the Hugo Site

      You can now begin to add content to your Hugo site. In this section you will add a new post to your Hugo site and generate the corresponding static file by building the Hugo site on your local computer.

      1. Create a new content file for your site. This command will generate a Markdown file with an auto-populated date and title:

        hugo new posts/
      2. You should see a similar output. Note that the file is located in the content/posts/ directory of your Hugo site:

        /home/username/example-site/content/posts/ created
      3. Open the Markdown file in the text editor of your choice to begin modifying its content; you can copy and paste the example snippet into your file, which contains an updated front matter section at the top and some example Markdown body text.

        Set your desired value for title. Then, set the draft state to false and add your content below the --- in Markdown syntax, if desired:

        title: "My First Post"
        date: 2019-05-07T11:25:11-04:00
        draft: false
        # Kubernetes Objects
        In Kubernetes, there are a number of objects that are abstractions of your Kubernetes system’s desired state. These objects represent your application, its networking, and disk resources – all of which together form your application. Kubernetes objects can describe:
        - Which containerized applications are running on the cluster
        - Application resources
        - Policies that should be applied to the application

        About front matter

        Front matter is a collection of metadata about your content, and it is embedded at the top of your file within opening and closing --- delimiters.

        Front matter is a powerful Hugo feature that provides a mechanism for passing data that is attached to a specific piece of content to Hugo’s rendering engine. Hugo accepts front matter in TOML, YAML, and JSON formats. In the example snippet, there is YAML front matter for the title, date, and draft state of the Markdown file. These variables will be referenced and displayed by your Hugo theme.

      4. Once you have added your content, you can preview your changes by building and serving the site using Hugo’s built-in webserver:

        hugo server
      5. You will see a similar output:

        &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp| EN
          Pages&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp| 11
          Paginator pages&nbsp&nbsp&nbsp&nbsp|  0
          Non-page files&nbsp&nbsp&nbsp&nbsp&nbsp|  0
          Static files&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp|  3
          Processed images&nbsp&nbsp&nbsp|  0
          Aliases&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp|  1
          Sitemaps&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp|  1
          Cleaned&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp|  0
        Total in 7 ms
        Watching for changes in /home/username/example-site/{content,data,layouts,static,themes}
        Watching for config changes in /home/username/example-site/config.toml
        Serving pages from memory
        Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
        Web Server is available at http://localhost:1313/ (bind address
        Press Ctrl+C to stop
      6. The output will provide a URL to preview your site. Copy and paste the URL into a browser to access the site. In the above example Hugo’s web server URL is http://localhost:1313/.

      7. When you are happy with your site’s content you can build the site:

        hugo -v

        Hugo will generate your site’s static HTML files and store them in a public directory that it will create inside your project. The static files that are generated by Hugo are the files that will be served to the internet through your Kubernetes cluster.

      8. View the contents of your site’s public directory:

        ls public

        Your output should resemble the following example. When you built the site, the Markdown file you created and edited in steps 6 and 7 was used to generate its corresponding static HTML file in the public/posts/my-first-post/index.html directory.

          404.html    categories  dist        images      index.html  index.xml   posts       sitemap.xml tags

      Version Control the Site with Git

      The example Hugo site was initialized as a local Git repository in the previous section. You can now version control all content, theme, and configuration files with Git. Once you have used Git to track your local Hugo site files, you can easily push them to a remote Git repository, like GitHub or GitLab. Storing your Hugo site files on a remote Git repository opens up many possibilities for collaboration and automating Docker image builds. This guide will not cover automated builds, but you can learn more about it on Docker’s official documentation.

      1. Add a .gitignore file to your Git repository. Any files or directories added to the .gitignore file will not be tracked by Git. The Docker image you will create in the next section will handle building your static site files. For this reason it is not necessary to track the public directory and its content.

        echo 'public/' >> .gitignore
      2. Display the state of your current working directory (root of your Hugo site):

        git status
      3. Stage all your files to be committed:

        git add -A
      4. Commit all your changes and add a meaningful commit message:

        git commit -m 'Add content, theme, and config files.'


        Any time you complete work related to one logical change to the Hugo site, you should make sure you commit the changes to your Git repository. Keeping your commits attached to small changes makes it easier to understand the changes and to roll back to previous commits, if necessary. See the Getting Started with Git guide for more information.

      Create a Docker Image

      Create the Dockerfile

      A Dockerfile contains the steps needed to build a Docker image. The Docker image provides the minimum set up and configuration necessary to deploy a container that satisfies its specific use case. The Hugo site’s minimum Docker container configuration requirements are an operating system, Hugo, the Hugo site’s content files, and the NGINX web server.

      1. In your Hugo site’s root directory, create and open a file named Dockerfile using the text editor of your choice. Add the following content to the file. You can read the Dockerfile comments to learn what each command will execute in the Docker container.

        #Install the container's OS.
        FROM ubuntu:latest as HUGOINSTALL
        # Install Hugo.
        RUN apt-get update
        RUN apt-get install hugo
        # Copy the contents of the current working directory to the hugo-site
        # directory. The directory will be created if it doesn't exist.
        COPY . /hugo-site
        # Use Hugo to build the static site files.
        RUN hugo -v --source=/hugo-site --destination=/hugo-site/public
        # Install NGINX and deactivate NGINX's default index.html file.
        # Move the static site files to NGINX's html directory.
        # This directory is where the static site files will be served from by NGINX.
        FROM nginx:stable-alpine
        RUN mv /usr/share/nginx/html/index.html /usr/share/nginx/html/old-index.html
        COPY --from=HUGOINSTALL /hugo-site/public/ /usr/share/nginx/html/
        # The container will listen on port 80 using the TCP protocol.
        EXPOSE 80
      2. Add a .dockerignore file to your Hugo repository. It is important to ensure that your images are as small as possible to reduce the time it takes to build, pull, push, and deploy the container. The .dockerignore file excludes files and directories that are not necessary for the function of your container or that may contain sensitive information that you do not want to included in the image. Since the Docker image will build the static Hugo site files, you can ignore the public/ directory. You can also exclude any Git related files and directories because they are not needed on the running container.

        echo -e "public/n.git/n.gitmodules/n.gitignore" >> .dockerignore
      3. Follow the steps 2 – 4 in the Version Control the Site with Git section to add any new files created in this section to your local git repository.

      Build the Docker Image

      You are now ready to build the Docker image. When Docker builds an image it incorporates the build context. A build context includes any files and directories located in the current working directory. By default, Docker assumes the current working directory is also the location of the Dockerfile.


      If you have not yet created a Docker Hub account, you will need to do so before proceeding with this section.
      1. Build the Docker image and add a tag mydockerhubusername/hugo-site:v1 to the image. Ensure you are in the root directory of your Hugo site. The tag will make it easy to reference a specific image version when creating your Kubernetes deployment manifest. Replace mydockerhubusername with your Docker Hub username and hugo-site with a Docker repository name you prefer.

        docker build -t mydockerhubusername/hugo-site:v1 .

        You should see a similar output. The entirety of the output has been removed for brevity:

        Sending build context to Docker daemon  3.307MB
        Step 1/10 : FROM ubuntu:latest as HUGOINSTALL
         ---> 94e814e2efa8
        Step 2/10 : ENV HUGO_VERSION=0.55.4
         ---> Using cache
         ---> e651df397e32
        Successfully built 50c590837916
        Successfully tagged hugo-k8s:v1
      2. View all locally available Docker images:

        docker images

        You should see the docker image hugo-site:v1 listed in the output:

        REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
        hugo-k8s            v1                  50c590837916        1 day ago          16.5MB

      Push your Hugo Site Repository to GitHub

      You can push your local Hugo site’s Git repository to GitHub in order to set up Docker automated builds. Docker automated builds will build an image using a external repository as the build context and automatically push the image to your Docker Hub repository. This step is not necessary to complete this guide.

      Host your Image on Docker Hub

      Hosting your Hugo site’s image on Docker Hub will enable you to use the image in a Kubernetes cluster deployment. You will also be able to share the image with collaborators and the rest of the Docker community.

      1. Log into your Docker Hub account via the command line on your local computer. Enter your username and password when prompted.

        docker login
      2. Push the local Docker image to Docker Hub. Replace mydockerhubusername/hugo-site:v1 with your image’s tag name.

        docker push mydockerhubusername/hugo-site:v1
      3. Navigate to Docker Hub to view your image on your account.

        The url for your image repository should be similar to the following: Replace the username and repository name with your own.

      Configure your Kubernetes Cluster

      This section will use kubectl to configure and manage your Kubernetes cluster. If your cluster was deployed using kubeadm, you will need to log into your master node to execute the kubectl commands in this section. If, instead, you used the k8s-alpha CLI you can run all commands from your local computer.

      In this section, you will create namespace, deployment, and service manifest files for your Hugo site deployment and apply them to your cluster with kubectl. Each manifest file creates different resources on the Kubernetes API that are used to create and the Hugo site’s pods on the worker nodes.

      Create the Namespace

      Namespaces provide a powerful way to logically partition your Kubernetes cluster and isolate components and resources to avoid collisions across the cluster. A common use-case is to encapsulate dev/testing/production environments with namespaces so that they can each utilize the same resource names across each stage of development.

      Namespaces add a layer of complexity to a cluster that may not always be necessary. It is important to keep this in mind when formulating the architecture for a project’s application. This example will create a namespace for demonstration purposes, but it is not a requirement. One situation where a namespace would be beneficial, in the context of this guide, would be if you were a developer and wanted to manage Hugo sites for several clients with a single Kubernetes cluster.

      1. Create a directory to store your Hugo site’s manifest files.

        mkdir -p clientx/k8s-hugo/
      2. Create the manifest file for your Hugo site’s namespace with the following content:

        apiVersion: v1
        kind: Namespace
          name: hugo-site
        • The manifest file declares the version of the API in use, the kind of resource that is being defined, and metadata about the resource. All manifest files should provide this information.
        • The key-value pair name: hugo-site defines the namespace object’s unique name.
      3. Create the namespace from the ns-hugo-site.yaml manifest.

        kubectl create -f clientx/k8s-hugo/ns-hugo-site.yaml
      4. View all available namespaces in your cluster:

        kubectl get namespaces

        You should see the hugo-site namespace listed in the output:

        NAME          STATUS   AGE
        default       Active   1d
        hugo-site     Active   1d
        kube-public   Active   1d
        kube-system   Active   1d

      Create the Service

      The service will group together all pods for the Hugo site, expose the same port on all pods to the internet, and load balance site traffic between all pods. It is best to create a service prior to any controllers (like a deployment) so that the Kubernetes scheduler can distribute the pods for the service as they are created by the controller.

      The Hugo site’s service manifest file will use the NodePort method to get external traffic to the Hugo site service. NodePort opens a specific port on all the Nodes and any traffic that is sent to this port is forwarded to the service. Kubernetes will choose the port to open on the nodes if you do not provide one in your service manifest file. It is recommended to let Kubernetes handle the assignment. Kubernetes will choose a port in the default range, 30000-32767.


      The k8s-alpha CLI creates clusters that are pre-configured with useful Linode service integrations, like the Linode Cloud Controller Manager (CCM) which provides access to Linode’s load balancer service, NodeBalancers. In order to use Linode’s NodeBalancers you can use the LoadBalancer service type instead of NodePort in your Hugo site’s service manifest file. For more details, see the Kubernetes Cloud Controller Manager for Linode GitHub repository.
      1. Create the manifest file for your service with the following content.

        apiVersion: v1
        kind: Service
          name: : hugo-site
          namespace: hugo-site
            app: hugo-site
          - protocol: TCP
            port: 80
            targetPort: 80
          type: NodePort
        • The spec key defines the Hugo site service object’s desired behavior. It will create a service that exposes TCP port 80 on any pod with the app: hugo-site label.
        • The exposed container port is defined by the targetPort:80 key-value pair.
      2. Create the service for your hugo site:

        kubectl create -f clientx/k8s-hugo/service-hugo.yaml
      3. View the service and its corresponding information:

        kubectl get services -n hugo-site

        Your output will resemble the following:

        NAME        TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
        hugo-site   NodePort           80:30304/TCP   1d

      Create the Deployment

      A deployment is a controller that helps manage the state of your pods. The Hugo site deployment will define how many pods should be kept up and running with the Hugo site service and which container image should be used.

      1. Create the manifest file for your Hugo site’s deployment. Copy the following contents to your file.

        apiVersion: apps/v1
        kind: Deployment
          name: hugo-site
          namespace: hugo-site
          replicas: 3
              app: hugo-site
                app: hugo-site
              - name: hugo-site
                image: mydockerhubusername/hugo-site:v1
                imagePullPolicy: Always
                - containerPort: 80
        • The deployment’s object spec states that the deployment should have 3 replica pods. This means at any given time the cluster will have 3 pods that run the Hugo site service.
        • The template field provides all the information needed to create actual pods.
        • The label app: hugo-site helps the deployment know which service pods to target.
        • The container field states that any containers connected to this deployment should use the Hugo site image mydockerhubusername/hugo-site:v1 that was created in the Build the Docker Image section of this guide.
        • imagePullPolicy: Always means that the container image will be pulled every time the pod is started.
        • containerPort: 80 states the port number to expose on the pod’s IP address. The system does not rely on this field to expose the container port, instead, it provides information about the network connections a container uses.
      2. Create the deployment for your hugo site:

        kubectl create -f clientx/k8s-hugo/deployment.yaml
      3. View the Hugo site’s deployment:

        kubectl get deployment hugo-site -n hugo-site

        Your output will resemble the following:

        hugo-site   3/3     3            3           1d

      View the Hugo Site

      After creating all required manifest files to configure your Hugo site’s Kubernetes cluster, you should be able to view the site using a worker node’s IP address and its exposed port.

      1. Get your worker node’s external IP address. Copy down the EXTERNAL-IP value for any worker node in the cluster:

        kubectl get nodes -o wide
      2. Access the hugo-site services to view its exposed port.

        kubectl get svc -n hugo-site

        The output will resemble the following. Copy down the listed port number in the 30000-32767 range.

        NAME        TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
        hugo-site   NodePort           80:30304/TCP   1d
      3. Open a browser window and enter in a worker node’s IP address and exposed port. An example url to your Hugo site would be, Your Hugo site should appear.

        If desired, you can purchase a domain name and use Linode’s DNS Manager to assign a domain name to the cluster’s worker node IP address.

      Tear Down Your Cluster

      To avoid being further billed for your Kubernetes cluster, tear down your cluster’s Linodes. If you have Linodes that existed for only part a monthly billing cycle, you’ll be billed at the hourly rate for that service. See How Hourly Billing Works to learn more.

      Next Steps

      Now that you are familiar with basic Kubernetes concepts, like configuring pods, grouping resources, and deploying services, you can deploy a Kubernetes cluster on Linode for production use by using the steps in the following guides:

      More Information

      You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.

      Find answers, ask questions, and help others.

      This guide is published under a CC BY-ND 4.0 license.

      Source link