One place for hosting & domains

      Publish

      How To Create and Publish a Jamstack Website with Stackbit and DigitalOcean App Platform


      Introduction

      Stackbit is a platform that allows you to collaborate on Jamstack sites, enabling your team to edit them visually instead of dealing with Markdown, git, or writing any code. You can take advantage of the benefits of the Jamstack, including better performance, tighter security, lower cost, and greater scalability, along with the convenience of inline visual editing. You can select from various themes to help get you started, which you can later customize. Once you have visually designed your Jamstack site and configured any optional integrations, you can deploy your site to the cloud.

      In this tutorial you will create a blog site based on Next.js, edit its design and content, and publish it to the DigitalOcean App Platform.

      Prerequisites

      To complete this tutorial, you’ll need:

      • A DigitalOcean account
      • A GitHub account. If you don’t have one, you can create one on the GitHub signup page
      • The DigitalOcean GitHub Application installed on your GitHub account. This application integrates your Github account with DigitalOcean App Platform, allowing you to create apps and websites directly from your code on Github and keep the latest version deployed

      Step 1 — Creating a New Stackbit Project

      To begin, you’ll need a Stackbit account, so visit Stackbit in your browser to create one if you don’t already have one. After you’ve created a username and password, you’ll receive a verification email. If you’re asked to connect your account to GitHub, you can skip that step for now; you’ll connect it later.

      Once you’ve created an account, click the Build Your Project button or visit Stackbit directly to create a new project. In the first step of the process, you’ll be prompted to choose a theme to get started with your website. Stackbit themes include base designs for a variety of uses. For blogging you can use the Fresh, Ampersand, or Fjord theme, or if you want to showcase a portfolio along with a blog, you can use the themes Exto or Agency. For a statically-generated storefront you can start with Planty. To see what the design looks like and the pages included on a theme, click on the Live Preview button under each theme.

      In this tutorial you will use the Ampersand theme to create a blog. Scroll down the theme page and select Ampersand.

      Select a Stackbit theme

      With your theme selected, you still need to do some more setup, including connecting your account to outside services.

      Step 2 — Connecting Your GitHub Account to Stackbit

      In addition to the default pages and design, a theme contains a Static Site Generator and a Headless CMS, as shown in the following image. A static site generator creates the final HTML and assets for your website, and the headless content management system (CMS) defines how to store the content used for your site.

      The next step of creating your initial site is choosing your static site generator and CMS. For this tutorial you can keep the defaults of NextJS for the static site generator and use a git-based CMS that will keep the content in git along with the site design.

      Since you’re using a git-based CMS, you’ll need to authorize Stackbit to create a new repo on your Github account. Click the Connect button under the GitHub logo and follow the steps to install the Stackbit App to GitHub.

      Connect GitHub to Stackbit

      After your GitHub account is connected, the Connect button will be replaced with a drop-down to let you configure your GitHub connection, but you can leave the default settings. Next, you’ll connect your DigitalOcean account.

      Step 3 — Connecting Your DigitalOcean Account to Stackbit

      When you publish your website, it will be deployed to DigitalOcean App Platform. Click the Connect button underneath the DigitalOcean logo to authorize Stackbit on your DigitalOcean account.

      Connect DigitalOcean to Stackbit

      After clicking on the Connect button, a popup will appear that will ask you to authorize Stackbit on your DigitalOcean account.

      Authorize Stackbit

      Now that your DigitalOcean account has been connected to Stackbit, check the box to acknowledge that you have already configured the DigitalOcean GitHub Application.

      Install DigitalOcean Github App

      With the required accounts now connected, you can more forward to create your site.

      Step 4 — Creating Your New Site in Stackbit

      To create your site, click the Create Site button. You will be taken to a page that is showing that your new site is being built and configured, and a live preview environment is being set up.

      Create your new Stackbit site

      Once the site is complete, a button labeled Launch Stackbit appears, which will enable you to make changes to your site.

      Step 5 — Visually Designing and Editing Your Site

      After the build process completes, you’ll be taken to the live preview environment, Stackbit Studio. Here you can make changes to the layout, images, content, and all the other components of your site by editing them in place with the visual editor.

      Your team can independently collaborate on writing articles, uploading images, and creating new landing pages for marketing campaigns.

      Stackbit Site Preview

      When you hover over an element, the cursor changes to indicate you can edit it, like this:

      Hover over an element

      When the element supports markup, an editor appears. Click on the Intro Section and update the text in the editor.

      Editing text in Stackbit Site Preview

      When you’re done editing the text, click the Save button to return to the preview. The changes are immediatly reflected in the layout.

      Changes reflected in Live Preview

      Next, you’ll edit one of the posts appearing in the homepage. Click on the image for the post titled “Basic Rules For Walking In The Mountains”. This will highlight the element in the preview as well as in the element list on the left. A tooltip will appear.

      Edit Image tooltip

      Click on the Edit Image button. It looks like a pencil drawing a line. An image selector will appear with all the assets your website already has. In this case, you’ll upload a new image to use.

      Image Selector

      You’ll replace the image with the same one with a Sammy overlaid. Download the image from DigitalOcean and save it locally.

      Click the Upload button and a dialog box will appear where you can choose the image; select the Sammy image you just downloaded. Once the picture is uploaded, select it and click Save. You should see the image update instantly in the live preview.

      Image Replaced with Sammy in preview

      Next, edit the post title. Click on it, and the tooltip should appear. Update the text with your own.

      Text edit tooltip

      Once you’re done, click anywhere in the shaded area and the title will be saved. The homepage should look like this:

      Page Preview after initial changes

      You can also edit posts in their own page. Click on the arrow next to Home to expand the page list section.

      Page list section

      Here you can click on a page to edit it, delete pages from the template that you don’t need, and create new ones. Since this website is using a blog template, the content for the posts is stored in the /posts folder. If you expand it you can see all the posts, and by clicking on one you can edit. Expand /postsand click on basic-rules-for-walking-in-the-mountains.

      Posts list expanded

      This will load the page for the corresponding post.

      Live Preview of Post

      As you can see, the title was updated, but the image used on the post page is the original one (without Sammy). This is because the post model used by the theme allows you to specify a different image for the blog feed than the single post. To see all the attributes you can customize on this page, use the element list on the left.

      Element list

      Editing elements in the list will change this post, but editing the elements in the Stackbit Ampersand Theme list below will affect the whole site. Next, change the date for the post. Click on the Date element:

      Date for the post in the elements list

      Set the date to today’s date and notice that the post has been updated in the live preview.

      You can also drop into the code and edit it directly (without local setup). In this mode you can edit your content using Markdown, as well as the theme elements. You’ll edit the copyright notice within the code editor, and then add a DigitalOcean Referral Badge to the bottom footer of your site.

      Click on <> Code in the top menu. You’ll see a split view with a code editor on the left and a live preview on the right.

      Code editor with Live Preview

      The code editor is open to the markup to edit the content of the blog post that you are previewing on the right. You’re not going to edit the post right now. Scroll down the live preview until you can see the footer with the copyright notice. Click on the notice and it will be highlighed and a tooltip will appear.

      Footer tooltip

      The left button takes you to the code that displays the footer, while the right button takes you to where the footer content is stored. Click the content button and look at the editor. The file config.json is now open.

      Editor open with config.json

      Replace the content of footer.contentwith &copy; Sammy. The live preview should update after a second to reflect the new value.

      Copyright changed

      Now click on the left tooltip button, which will open the editor to the file that renders the footer.

      Footer code

      Now add your referral badge in the box that contains the social media links. Copy the HTML for your unique referral badge inside the div that contains the social links. After the preview updates, it should look like this:

      Footer code changed and preview with referral badge

      Continue to make any other edits you want to your site. Every time you make changes, your preview will update. When you’re ready, you’ll publish the site in the next step.

      Step 6 — Publishing Your Site to DigitalOcean App Platform

      Once you are happy with your changes in the preview, click on the Publish button in the top right corner of the Stackbit editor to publish directly to App Platform.

      Publish your site

      You can publish the whole site, or just one page, either now or on a schedule. In this case, leave the default settings as they are and click on Publish. Now you’ll switch to the DigitalOcean App Platform account where a new starter App has been created, and a build and deployment is currently underway.

      Open the project settings by clicking on the gear icon next to the project name in the upper left. Then click on the Open button next to Connected Services > DigitalOcean:

      Open App Platform Dashboard

      This will take you to your project’s dashboard on DigitalOcean. If the deployment is still in progress, you should see a progress bar, with a link to the build logs as they’re happening.

      App Platform Dashboard

      If the build has already completed, you can also click on Deployments, which will show you the history of updates to your site.

      App Platform Deployments list

      Click on Details for the most recent deployment to see the build logs.

      App Platform build logs for most recent deployment

      Click on Live App in the status bar, or the link right below the heading, to check out your new static site running on App Platform.

      View your Stackbit site live on App Platform

      Conclusion

      In this tutorial, you’ve built a new site with a Stackbit template, and deployed it to DigitalOcean’s App Platform. Stackbit’s visual creation, editing, and collaboration tools, combined with App Platform’s build and deployment capabilities, can get a Jamstack site ready to be shared with all the different stakeholders and deployed to the cloud in a short time.



      Source link

      36 Brilliant Blogging Tools to Help You Write Better, Publish More, and Increase Traffic


      Affiliate Disclosure: DreamHost maintains relationships with some of our recommended partners, so if you click through a link and purchase, we may receive a commission. We only recommend solutions we believe in.

      Running a blog can be tough. There are times when it can feel like having multiple jobs. Not only do you need to create fresh, high-quality content, but you’ll also have a website to manage, social media posts to schedule, and data to analyze.

      Having a versatile bag of tools at your disposal can keep your blogging gig from becoming overwhelming. There are solutions for most of your day-to-day tasks, from design to Search Engine Optimization (SEO) and everything in between.

      With all the possibilities to choose from, you could spend weeks just combing through your options. So we’ve done the hard work for you. In this article, we’ll cover why you need the right tools. Then we’ll detail 36 brilliant blogging solutions worth checking out. Let’s get started!

      Why You Need the Right Blogging Tools

      As a blogger, you’ll want to find tools that help you become more productive and successful. For example, discovering topics to blog about that your audience will love can be tricky. The right solution can help you brainstorm ideas and explore new niches you weren’t previously aware of, saving you a lot of time in the process.

      What’s more, there’s more to blogging than just writing. You need to be sure people can discover and share your website. Therefore, to maximize your reach, you’ll want to look into blogging tools that give your SEO and social media a boost. This can make up for any lack of knowledge or experience on your end, and free up your attention for your actual content.

      36 Brilliant Blogging Tools to Help You Write Better, Publish More, and Increase Traffic

      We’ve argued the case for having the right blogging tools at the ready. Now let’s explore 36 of the top options and see what they can do.

      Research

      Content creation requires lots of research. You need to be sure people are searching for what you’re going to be writing about. You’ll also need someplace to keep ideas and notes.

      1. Google Keyword Planner

      The Google Keyword Planner home page.

      Before you start writing a new blog post, you might want to make sure you’re using words that people are searching for. Google Keyword Planner can provide you with feedback on your potential keywords.

      This great tool will help you by showing you how popular each chosen keyword is through search volume metrics. You’ll also get some suggestions for other relevant phrases you may want to use.

      Price: Google Keyword Planner is free to use, as long as you have a Google Ads account set up.

      2. Google Trends

      The Google Trends website.

      When trying to nail down an idea for a successful blog post, you might want to start with Google Trends. You can enter any topic into the search box, and this tool will provide you with a ton of information and history about it.

      You can filter your results, which is especially useful if you’re trying to capture a particular region’s attention. Google Trends also provides you a list of related topics, which you can use to brainstorm more content ideas.

      Price: Google Trends is entirely free for anyone to use.

      3. BuzzSumo

      The BuzzSumo website.

      If you’re wondering what’s trending in your niche, BuzzSumo can tell you. Just search for the topic you’re interested in, and you’ll get a list of the top-performing content in that area.

      You can also enter the URL for one of your competitors. BuzzSumo will give you a list of the top-performing content from that site, so you can see what’s resonating with your potential audience.

      Price: BuzzSumo offers a seven-day free trial. After that, you can choose from several tiers starting at $79 per month.

      4. HubSpot’s Blog Ideas Generator

      HubSpot’s Blog Ideas Generator.

      When you start blogging, it’s hard to imagine ever running out of ideas. However, the day will likely come when you sit down to write and come up empty. That’s where HubSpot’s Blog Ideas Generator comes into the picture.

      Provide the generator with up to five nouns, and it will return a week’s worth of blog ideas. If you need a year’s worth of topics, you can enter some details and unlock 250 more potential blog posts.

      Price: The Blog Ideas Generator is free for anyone to use. But, if you want more ideas at once, you’ll have to trade some information to get them.

      5. EvernoteThe Evernote website.

      With all those new blog post ideas, you’re going to be doing a lot of research. If your bookmarks bar is becoming a disorganized mess, Evernote can provide a place to keep all of your screenshots, notes, and articles.

      What if you prefer a mix of handwritten and electronic notes? You can actually scan your notes with your phone into the app. You can even search these scanned documents since Evernote can read handwriting.

      Price: Evernote has several plans to choose from, including a robust free version. You can upgrade to one of the paid versions starting at $7.99 per month.

      Writing and Grammar

      Well-written, readable content is crucial for a successful blog. Even the most compelling ideas will suffer without the right words to convey them.

      6. Grammarly

      The Grammarly writing tool.

      Even the strongest writer can benefit from having a second pair of eyes look over their blog posts. Grammarly is like having an experienced editor making suggestions to improve your writing and style.

      Each time you open a new document in Grammarly, you can set goals for its tone, formality, and intent. You’ll then receive feedback to help you hit those targets. Grammarly also has a Chrome extension, so you can check your emails and Google Docs as well.

      One downside: Grammarly is currently only available in English. If you’re looking for a multilingual grammar checker, consider Language Tool, which can check your writing in more than 20 languages. It’s what our team uses to review Spanish content.

      Price: Grammarly’s free plan checks your grammar, spelling, and conciseness. The premium tier adds more style and genre checks (as well as a plagiarism detector) for $11.66 per month.

      7. Associated Press (AP) Stylebook

      The Associated Press Stylebook.

      The Associated Press (AP) Stylebook is a reference every blogger should have on their bookshelf. Using AP style for blog posts can help to keep them concise, clear, and informative.

      The AP Stylebook is updated frequently. If you buy the book from the official website, you’ll receive email notifications about these changes. It’s a simple way to keep up with stylistic adjustments.

      Price: You have multiple options for purchasing the AP Stylebook. A spiral-bound physical copy will cost you $26.95. The online stylebook starts at $22.00 for one user.

      8. Google Docs

      The Google Docs home page.

      Google Docs is a web-based word processor. You can use this application to compose, edit, and format your blog posts.

      One advantage of Google Docs is that you can access your documents anywhere, regardless of your device. For a blogger on the go, this is a must-have feature!

      Price: Google Docs is free to use. You can upgrade to G Suite for additional features and applications, starting at $6 per month.

      Project Management

      Blogs have a lot of moving parts. Project management tools can help you stay organized, so your blogging tasks stay on track.

      9. Asana

      The Asana project management tool.

      Asana enables you to build a roadmap for your blog projects. You can group tasks to make up a project or divide them into smaller chunks.

      If you collaborate with other writers on your blog, Asana is a powerful tool for team management. You’re able to see at a glance where each post is in your pipeline.

      Price: Asana’s free option allows collaboration with up to 15 people. Premium plans begin at $10.99 per user per month.

      10. Trello

      The Trello productivity tool.

      Trello’s design is based on cards, lists, and boards. It’s an intuitive system that can hold a ton of information.

      Trello is an excellent alternative to Asana if you’re looking for something a little more streamlined. You can keep all the attachments and notes you need for a task on its card. This format is also easier to handle if you’re a team of one.

      Price: Trello has a robust free option that enables you to have an unlimited number of personal boards and ten team boards. Upgraded plans begin at $9.99 per user per month.

      Design

      Gorgeous visuals to complement your words are an essential part of creating branded, shareable blog posts. You don’t need to be an artist, but the right tools can help you fake it.

      11. Adobe Photoshop

      The Adobe Photoshop website.

      When you think of photo editing software, Adobe Photoshop probably comes to mind. Whether you’re touching up a stock photo or creating a new logo, you can probably do it with Photoshop.

      One exciting aspect of this platform is that new features are always being added. One of the latest is the object selection tool. You can lasso or draw a rectangle around an object, and the selection snaps into place around it.

      Price: You can try Adobe Photoshop for free for seven days. After that, plans start at $20.99 per month.

      12. Canva

      The Canva photo editing tool.

      Canva is like Photoshop’s younger but no less accomplished sister. The free plan gives you generous access to templates, stock photos, and other design elements. However, Canva Pro contains some valuable features as well.

      With a Brand Kit, for example, you can collect the colors, fonts, and logos that make your blog recognizable all in one place. Imagine the time you could save on looking up HTML color codes!

      Price: You can upgrade to Pro for $9.95 per month. There’s also a 30-day free trial.

      13. Logaster

      The Logaster home page.

      Are you struggling to come up with a logo? If so, Logaster can generate a variety of options to choose from in seconds. Just enter your blog’s name and scroll through the possibilities.

      If you’d like, you can give Logaster more information to build your logo with. For instance, you can try specifying a color and industry for more personalization. If you’re not entirely happy with the design, you can do some editing by signing up for a free account.

      Price: You can download and use the small version of your new logo for free. However, Logaster also offers packages that include different size logos, letterheads, favicons, and more. These range from $19.99 to $89.99.

      Search Engine Optimization (SEO)

      SEO has many different facets that all need your attention. The following tools can help you analyze and optimize your blog’s content, so you’ll have a fighting chance for higher rankings.

      14. Yoast SEO

      The Yoast SEO plugin.

      If you have a blog on WordPress, you’ll probably want to install the Yoast SEO plugin. This tool makes optimizing each of your posts easy.

      For example, you can give Yoast SEO a keyphrase, and it will return actionable advice that you can use to improve your post. The premium version can even account for other forms of that keyphrase, including synonyms and plurals.

      Price: You can get started with the free version or go all-in with Yoast SEO Premium. The latter starts at $89 for one site.

      15. SEMrush

      The SEMRush website.

      It might be unfair to give SEMrush only one spot on this list, as it provides multiple tools. SEMrush offers insights on everything from social media to Pay-Per-Click (PPC) advertising.

      Most importantly, however, SEMrush’s SEO Toolkit can give you an edge over your competition. The Domain Overview lets you see which keywords your competitors use. You can use this information to hone your content plan over time.

      Price: SEMrush plans range from $83.28 to $333.28 per month. Higher tiers get you access to more reports and extended limits. The good news? We’ve worked out a free SEMrush trial for our readers, so you can see if this tool is a good fit for your blog without a long-term commitment!

      SEMrush

      16. MarketMuse

      The MarketMuse solution.

      MarketMuse is a complete, AI-based solution for content. This tool can lend a hand with anything from research to content creation.

      The ability to optimize content can make MarketMuse a valuable part of your blogging strategy. Its AI analyzes your copy and makes suggestions for the language you should use. This can boost your SEO rankings, as you’ll be using the same words your audience uses to search.

      Price: You can try MarketMuse’s Pro plan free for a month. After that, the cost is $325 per month.

      17. Ahrefs

      The Ahrefs SEO tool.

      Ahrefs is an invaluable resource if you’ve been blogging for a while and want to move to the next level. This SEO toolset can help you maximize your efforts.

      While Ahrefs offers a wide range of features, it started as a backlink checker and still excels at that task. The Content Explorer tool analyzes individual pieces of content and displays how many backlinks they receive over time.

      Price: Ahrefs offers a seven-day trial for $7. Full plans start at $82 per month for a single user.

      18. Can I Rank?

      The Can I Rank tool.

      Can I Rank may be the next best thing to hiring an analyst. This tool uses AI to deliver actionable insights that can help you improve your blog’s SEO.

      To do this, Can I Rank’s reports provide steps towards ranking for your target keywords. You’ll get suggestions for improving your current content, and new keywords you may want to focus on going forward. The AI will also connect you to other SEO tools that may be helpful.

      Price: Can I Rank has a free plan, which limits how many times you can access each report. Paid plans start at $49 per month, and a free trial is available.

      19. Ubersuggest

      The Ubersuggest Chrome extension.

      Installing the Ubersuggest Chrome extension gives you access to SEO metrics and insights every time you search.

      Ubersuggest can help refine keywords that you’ve researched. If you perform a search with one of your target keywords, you’ll receive a list of related target phrases, along with the search volume for the current month and the estimated competition for the keyword.

      Price: This extension is free. You don’t even need to create an account, although you’ll gain access to more features if you do so.

      20. LinkMiner

      The LinkMiner extension.

      Broken links can hurt your site’s SEO. They’re easy to fix but not always simple to find. Fortunately, the LinkMiner Chrome extension unearths broken links for you.

      This extension provides you with overall results for each page you analyze. It also highlights all the links in your content in red, so you can get them fixed right away.

      Price: You can use this extension for free.

      Site Management

      A user-friendly CMS can make managing your website much more straightforward. When you pair that with reliable hosting, you’ll have a solid foundation for your blog.

      21. WordPress

      The WordPress.org home page.

      WordPress powers 37% of all sites on the internet, and for good reason. This free, open-source platform is powerful, flexible, and supported by an active community.

      One appealing feature for bloggers is the Block Editor. This editor makes it easy to create stunning, rich content, with no design or coding experience necessary. The drag-and-drop interface makes it possible to rearrange your content and experiment with different possibilities.

      Price: WordPress itself is free. You’ll just have to pay for a hosting plan. You can also choose to purchase premium themes and plugins.

      22. A Managed WordPress Hosting Plan

      DreamHost managed WordPress hosting.

      You’ll probably get more out of WordPress if you complement it with a managed WordPress hosting plan. These specialized plans come with extras that can make your website building and upkeep a lot easier.

      After all, just because you’re a blogger doesn’t mean you’re a web designer. That’s why our DreamPress managed hosting plans include a website builder specifically designed for WordPress sites. After you’ve created your site, we’ll keep it safe by performing daily and on-demand backups.

      Price: Managed WordPress hosting can vary in cost depending on your provider. Our hosting plans start at $16.95 per month.

      Blog Better with DreamPress

      Our automatic updates and strong security defenses take server management off your hands so you can focus on content creation.

      23. Wordable

      The Wordable plugin.

      As awesome as the Block Editor is, there are advantages to composing your blog posts in Google Docs. However, you’ll lose a lot of time copying and reformatting your posts before publishing them.

      The Wordable plugin accomplishes all of those tasks in a single click. Wordable doesn’t just import text; it also brings along the images and headings. You can have guest writers submit their pieces as Google Docs and import them with Wordable. You don’t have to set up an account on your site for them, and you won’t have to reformat their posts either.

      Price: You can test out Wordable with a three-export trial. After that, plans start at $19 per month for one user and one WordPress site.

      Social Media

      Handling multiple social media channels can create confusion and the potential for mistakes. To avoid that, you can stay on top of your social media schedule with the help of these tools.

      24. CoSchedule

      The CoSchedule plugin.

      CoSchedule is the editorial calendar of your dreams. It can help you manage blog posts and get them onto social media platforms.

      CoSchedule’s Blog Calendar lets you see your scheduled blog and social media posts in one place. If you need to reschedule a post, you can just drag and drop it wherever you’d like. The calendar automatically adjusts the accompanying social media messages.

      Price: You can get the Blog Calendar for $14 per month. If you’d like to add more functionality with the Marketing Calendar, the price increases to $29 per month.

      25. Social Snap

      The Social Snap plugin.

      Social Snap is a social media plugin for WordPress. This solution comes with a suite of tools designed to get more traffic to your blog.

      With Social Snap, you can place social sharing buttons anywhere in your blog posts. The floating sidebar could be an effective strategy if you tend to write longer content. You can also customize the buttons to match your website’s design.

      Price: Social Snap offers plans starting at $27.30 per year. There is no free trial, but there is a 30-day money-back guarantee.

      26. Buffer

      The Buffer platform.

      If you’re in the market for a complete social media solution, you may want to check out Buffer. This platform provides tools to help you publish and analyze your content.

      Buffer’s Publish tool enables you to manage all of your social media channels from one dashboard. With some determination and a lot of coffee, you might schedule a month’s worth of content in a single afternoon.

      Price: Buffer Publish begins at $12 per month. The Pro plan enables you to schedule up to 100 posts.

      27. Click to Tweet

      The Click to Tweet plugin.

      Click to Tweet is a free plugin provided by CoSchedule. If you have your eyes set on the Twitterverse, you’ll likely want this blogging tool at your side.

      With it, you can pull out especially tweet-worthy wisdom from your content. Your readers can then share these insights with their followers in one click.

      Price: Click to Tweet is free to download and use. You do need to provide some personal information and sign up for CoSchedule’s mailing list to access the tool.

      Video

      You may already include video on your blog, as it can increase the time visitors spend on a page. If not, these solutions can get you started.

      28. YouTube

      The YouTube home page.

      You may already use YouTube to host your videos, but there’s more you can do with the platform. For example, did you know that you can live stream with YouTube?

      Live streaming is a fun way to connect with your audience and has been growing in popularity in recent years. It’s a great way to build a sense of community around your blog.

      Price: YouTube is free to use. All you need is a Google account.

      29. Adobe Premiere Rush

      The Adobe Rush website.

      If creating video content sounds like a lot of work, you can check out Adobe Premiere Rush. This helpful tool makes producing a video (almost) as easy as posting to social media.

      With Adobe Premiere Rush, you can capture and edit footage right from your mobile phone. You can even add graphics, overlays, and voiceovers. Then you’ll be able to share the video to your YouTube channel, Instagram account, Facebook page, and other social media platforms.

      Price: Adobe Premiere Rush offers a free trial that limits you to three exports. After that, you can access the software for $9.99 per month.

      Analytics

      By keeping an eye on your blog’s statistics, you’ll be able to see where you can improve. If you’re not a data analyst, you might appreciate some help in that department.

      30. Google Analytics

      The Google Analytics website.

      If you haven’t already installed Google Analytics on your blog, what are you waiting for? Its many tools will give you access to the metrics you need for running a successful blog.

      While your hosting provider may provide you with some traffic data, Google Analytics offers you a wide range of numbers. Knowing where your traffic is coming from will help you focus your efforts on those channels.

      Price: Google Analytics is free to use. You just need to add a tracking code to your website.

      31. MonsterInsights

      The MonsterInsights plugin.

      MonsterInsights is a plugin that helps make Google Analytics even more powerful. It’s a match made in blogging heaven.

      A favorite feature of MonsterInsights is the Google Analytics dashboard. Instead of navigating away from WordPress, you can view all that data right in your admin dashboard. You’ll also be able to see what’s happening on your blog in real-time.

      Price: MonsterInsights plans begin at $99.50 per year. There’s no free trial, but there is a 14-day money-back guarantee.

      Marketing Your Blog

      Having the best content on the web won’t do you any good if no one knows it exists. Fortunately, you can get your blog in front of more people with these tools.

      32. OptinMonster

      The OptinMonster plugin.

      As a blogger, convincing readers to sign up for your email newsletter is critical. OptinMonster can help you create opt-in campaigns that turn casual readers into devoted fans.

      If your opt-in isn’t user-friendly, it’s unlikely to convert. OptinMonster gives you powerful targeting options, such as device-based targeting. This ensures that mobile users only see campaigns that are optimized for their devices.

      Price: OptinMonster’s basic plan will cost you $9 per month.

      33. Hunter

      The Hunter tool.

      Guest posting is a tried-and-true link building technique for bloggers. Crafting a strong pitch is hard enough, but sometimes the most challenging part is finding the right email to send it to.

      To make things easier, you can simply enter a domain name into Hunter’s search box, and the tool returns every email address it can find for that company. You can use this to see a particular individual’s email or search for a role, such as “submissions@” or “editorial@”.

      Price: You can perform 50 free searches per month. Paid plans start at $34 per month.

      34. NinjaOutreach

      The NinjaOutreach platform.

      Partnering with an influencer can increase your blog’s audience. NinjaOutreach enables you to filter through lots of influencers in your niche, so you can find the right one.

      Whether you’re targeting Instagram, Twitter, TikTok, or YouTube, NinjaOutreach has you covered with its extensive database of influencers. You can even find other bloggers who may be interested in collaboration.

      Price: NinjaOutreach offers a 7-day free trial. A monthly plan starts at $119.

      35. Mailchimp

      The Mailchimp platform.

      There’s more to email marketing than sending out a blast whenever you publish a new post. Mailchimp helps you organize your list and send out updates on time.

      No one wants to read ugly emails, but thanks to Mailchimp’s drag-and-drop builder, you can make customizations and even add images and videos. Then, real-time analytics lets you monitor how effective your campaigns are.

      Price: Mailchimp offers a generous free plan to get you started. You can get an upgraded email-only plan for $9.99 per month.

      36. Teachable

      The Teachable home page.

      Sharing your knowledge is an effective way of establishing yourself as an expert in your blogging niche. Unfortunately, setting up an online course can be a challenge.

      Teachable is a complete solution for building and running an online course. You can make your lessons extra special by taking advantage of Teachable’s live features. For example, you can schedule one-on-one sessions with your students to check in on progress and answer questions.

      Price: Teachable’s Basic plan comes with everything you need to create your first course, and costs $29 per month.

      11 Blogging Tools We Use on the DreamHost Blog

      While all of the blogging tools on this list are excellent, we have some favorites we use for the DreamHost blog itself. Here’s some extra love for the solutions that make our job so much easier:

      1. Google Docs: When it comes to collaboration, you can’t beat Google Docs.
      2. Grammarly: Even the most seasoned writers miss an Oxford comma from time to time.
      3. Language Tool: This is a useful grammar checker if you need support in languages other than English. We use it for our Spanish content!
      4. MarketMuse: If you love the content on our blog, we have to give some credit to MarketMuse.
      5. WordPress: Like so much of the internet, we love how easy WordPress is to use. It really is our favorite blogging tool!
      6. DreamPress Hosting: Not to toot our own horn, but we’re really good at this hosting thing.
      7. OptinMonster: No one wants to annoy their blog visitors with unwanted opt-ins, and we’re no exception.
      8. Yoast SEO: We’re proud of what we publish, and Yoast SEO helps ensure that our blog content gets seen by plenty of visitors.
      9. CoSchedule: Keeping track of when and where we’ve published our content is much easier thanks to CoSchedule.
      10. Canva: The one-click resize option for various social media channels is a gift.
      11. Google Analytics: We use Google Analytics to be sure we’re giving you more of what you want.

      If you’re not sure where to begin, the above tools should start you off on the right foot.

      Ready to Launch Your WordPress Blog?

      Whether you need help choosing a blogging platform, understanding affiliate marketing, or picking a WordPress theme, we can help! Subscribe to our monthly digest so you never miss an article.

      What’s Your Next Blogging Tool?

      Handling a blog on your own is a difficult task. Taking advantage of a few of the many blogging tools available can give you back some valuable time.

      Today, we’ve looked at a few reasons why you might want to invest in some blogging tools. If you’re just getting started with your blog, you might try out Google Docs and Grammarly to keep your content organized and polished. If you’re ready to step up your marketing game, Mailchimp can give you the edge you’re looking for.

      Ready to put those new blogging tools to work? It may be a smart time to upgrade your hosting service, to prepare for all the new traffic you’ll be getting. Check out our managed WordPress hosting plans!



      Source link

      How To Package and Publish a Snap Application on Ubuntu 18.04


      The author selected the Electronic Frontier Foundation to receive a donation as part of the Write for DOnations program.

      Introduction

      One of the largest challenges in application development is the final step of distributing the finished product to your users or customers. Many existing application deployment methodologies lack user-friendliness and security, or do not provide methods for automatically updating an application once it has been installed.

      Snap is a modern application packaging format with powerful sandboxing and security features, including file system isolation, automatic updates, and integrated dependency management. Snap applications, known as Snaps, can be downloaded and installed using a command-line program, much like apt or yum. Ubuntu comes with Snap pre-installed, meaning that there is a wide audience for Snap applications.

      In this tutorial, you will create a Snap application and publish it on the Snap Store.

      Prerequisites

      To complete this tutorial, you will need:

      • One Ubuntu 18.04 server set up by following the Initial Server Setup with Ubuntu 18.04, including a sudo non-root user.

      • An application that you wish to package and release as a Snap. This may be a complex application that you created, a common open-source project, or a simple “Hello, world!” program. If you don’t already have an application, Step 1 of this tutorial will cover how you can create a Hello World program in Go.

      • An account on the Snapcraft Developer Dashboard.

      Once you have these ready, log in to your server as your non-root user to begin.

      Step 1 — Getting Your Application Ready for Packaging

      Firstly, you’ll prepare your application for packaging as a Snap application by ensuring that everything required is present in a single directory.

      Start by creating a new directory for your Snap and moving into it:

      • mkdir ~/your-snap
      • cd ~/your-snap

      Next, if you already have an application, put a complete copy of the source code for your application into the directory that you just created. The process here will vary significantly depending on the exact application that you’re packaging, however in the case that the source code is stored in a Git repository, you can git init a repository in the directory and pull down all of the relevant code.

      If you don’t yet have an application that you’d like to package, you may create a “Hello World” program to use instead. If you would like more context on writing this program with Go, check out the How to Write Your First Program in Go tutorial.

      You can do this by first creating a new Go file and opening it using your preferred text editor:

      Next, add the following code to the file:

      helloworld.go

      package main
      import "fmt"
      func main() {
        fmt.Println("Hello, world!")
      }
      

      Then save and exit the file.

      If you don’t have Go installed, you can install it using the following command:

      • sudo apt install golang-go

      Once Go is installed, you can run your new program to check that it is working:

      You’ll see the following output:

      Output

      Hello, world!

      You’ve prepared your application for packaging as a Snap. Next, you will install the software required to begin the packaging process.

      Step 2 — Installing Snapcraft

      In this step, you’ll download and install Snapcraft, which is the name of the official Snap application packaging tool. Snapcraft is available from the Snap Store, which is built into Ubuntu by default. This means that you can install Snapcraft from the command-line using the snap command.

      The snap command is equivalent to the apt command, but you can use it to install software from the Snap Store, rather than packages from the Apt repositories.

      In order to install Snapcraft, run the following command:

      • sudo snap install snapcraft --classic

      You use the --classic command argument so that Snapcraft installs without the strict sandboxing features that Snaps normally use. Snapcraft requires this argument as it needs more privileged access to your system to reliably package applications.

      Once you’ve installed Snapcraft, you’ll see the following:

      Output

      snapcraft 3.9.8 from Canonical✓ installed

      Finally, you can double-check the Snapcraft installation by running:

      This will display something similar to:

      Output

      snapcraft, version 3.9.8

      Now that you’ve installed Snapcraft, you can begin to define the configuration and metadata for your Snap application.

      In this step, you will begin to define the configuration, structure, and metadata for your Snap application.

      Begin by ensuring that you are still working in your Snap application directory:

      Next, create and edit the snapcraft.yaml file using your preferred text editor:

      You’ll use the snapcraft.yaml file to store all of the configuration for your Snap application, including the name, description, and version, as well as settings related to dependency management and sandboxing.

      Begin by defining the name, summary, description, and version number for your application:

      snapcraft.yaml

      name: your-snap
      summary: A summary of your application in 78 characters or less.
      description: |
        A detailed description of your application.
        The description can have multiple lines.
      version: '1.0'
      

      The name of your Snap needs to be unique if you wish to publish it on the Snap Store—search for other applications with the same name to make sure that it isn’t already taken.

      Next, you can define the command(s) that you wish to associate with your application. This will allow your Snap to be used directly from the Bash command-line as a normal command.

      Add the following to your snapcraft.yaml file:

      snapcraft.yaml

      . . .
      apps:
        your-snap-command:
          command: your-snap
      

      your-snap-command is the name of the command that you want to define. For example, you may wish to use the command helloworld to run your Hello World program.

      You use command: your-snap to tell Snapcraft what to do when the application command is run. In the case of the Hello World program, you would use the value helloworld to reference the helloworld.go file, which will allow Snapcraft to run your program successfully.

      This results in the following example configuration:

      snapcraft.yaml

      apps:
        helloworld:
          command: helloworld
      

      If the command name matches the Snap name exactly, you’ll be able to run it directly from the command-line. If the command does not match the Snap name, the command will be automatically prefixed with the name of the Snap. For example, helloworld.command1.

      Finally, you can define the parts that make up your Snap application. Snap applications are made up of multiple parts, which are all of the components that make up your application. In many cases, there is only one part, which is the application itself.

      Each part has an associated plugin. For example, for components of your application written in Ruby, the ruby plugin is used, and for components written in Go, the go plugin is used.

      You can use the Snapcraft list-plugins command to identify the correct plugin(s) for your application:

      This will output a list similar to the following:

      Output

      ant catkin-tools conda dump gradle make nil python rust autotools cmake crystal go kbuild maven nodejs qmake scons catkin colcon dotnet godeps kernel meson plainbox-provider ruby waf

      The most common plugins are those for common programming languages, such as Go, Rust, Ruby, or Python.

      Once you have identified the correct plugins for your application, you can begin to add the parts configuration to your snapcraft.yaml file:

      snapcraft.yaml

      . . .
      parts:
        your-snap:
          plugin: plugin-name
          source: .
      

      You use the source configuration parameter to specify the relative path to the source code for your application. Usually this will be the same directory as the snapcraft.yaml file itself, so the source value is a single dot (.).

      Note: If your application component has any dependencies that are required for either building or running it, you can specify these using the build-packages and stage-packages attributes. The specified dependency names will then be automatically fetched from the default package manager for your system.

      For example:

      snapcraft.yaml

      parts:
        your-snap:
        plugin: plugin-name
        source: .
        build-packages:
        - gcc
        - make
        stage-packages:
        - libcurl4
      

      Some Snapcraft plugins have their own specific options that may be required for your application, so it’s worthwhile reviewing the relevant manual pages for your plugin:

      • snapcraft help plugin-name

      In the case of Go applications, you would also specify the go-importpath. For the Hello World configuration, this results in the following example configuration:

      snapcraft.yaml

      parts:
        helloworld:
          plugin: go
          source: .
          go-importpath: helloworld
      

      You can leave your snapcraft.yaml file open to add further configuration in the next step.

      You’ve defined the base configuration for your Snap application. Next, you’ll configure the security and sandboxing aspects of your application.

      Step 4 — Securing Your Snap Application

      Snap applications are designed to run within a sandboxed environment, so in this step you’ll configure sandboxing for your Snap. Firstly, you’ll need to enable sandboxing for your application, known within Snapcraft as confinement.

      Add the following to your snapcraft.yaml file:

      snapcraft.yaml

      . . .
      confinement: strict
      

      This will enable sandboxing for your application, preventing it from accessing the internet, other running Snaps, or the host system itself. However, in most cases, applications do need to be able to communicate outside of their sandbox like when they need to access the internet or read/write to the file system.

      These permissions, known within Snapcraft as interfaces, can be granted to your Snap application using Plugs. Using Plugs, you can have fine-grain control over the sandboxing for your application, to give it the access that it requires and nothing more (principle of least privilege).

      The exact interfaces that are required will vary depending on your application. Some of the most common interfaces are:

      • audio-playback - Allows audio output/playing sounds.
      • audio-record - Allows audio input/recording.
      • camera - Allows access to connected webcams.
      • home - Allows access to non-hidden files within your home directory.
      • network - Allows access to the network/internet.
      • network-bind - Allows binding to ports to operate as a network service.
      • system-files - Allows access to the entire file system of the host machine.

      The full list of available interfaces can be found within the Snapcraft documentation under Supported Interfaces.

      Once you’ve identified all of the required interfaces for your application, you can begin to assign these to plugs within your snapcraft.yaml file.

      The following example configuration will allow the application to access the network and users’ home area:

      snapcraft.yaml

      . . .
      plugs:
        your-snap-home:
          interface: home
        your-snap-network:
          interface: network
      

      Save and exit your file.

      The name of the Plug should be a descriptive name to help users identify the purpose of the Plug.

      You’ve enabled sandboxing for your Snap and configured some Plugs to grant limited access to system resources. Next you’ll finish building your Snap app.

      Step 5 — Building and Testing Your Snap Application

      Now that you’ve written all of the required configuration for your Snap, you can proceed with building it and testing the Snap package locally.

      If you’ve been following along using a Hello World program as your application, your complete snapcraft.yaml file will now look similar to the following:

      snapcraft.yaml

      name: helloworld
      summary: A simple Hello World program.
      description: |
        A simple Hello World program written in Go.
        Packaged as a Snap application using Snapcraft.
      version: '1.0'
      confinement: strict
      
      apps:
        helloworld:
          command: helloworld
      
      parts:
        helloworld:
          plugin: go
          source: .
          go-importpath: helloworld
      
      plugs:
        helloworld-home:
          interface: home
        helloworld-network:
          interface: network
      

      In order to build your Snap application, run the snapcraft command from within the directory for your Snap:

      Snapcraft will then automatically launch a virtual machine (VM) and begin building your Snap. Once complete, Snapcraft will exit and you will see something similar to the following:

      Output

      Snapped your-snap_1.0_amd64.snap

      You can now install your Snap locally in order to check that it is working:

      • sudo snap install your-snap.snap --dangerous

      The --dangerous command argument is required as you are installing a local Snap that has not been signed.

      Output

      your-snap 1.0 installed

      Once the installation process is complete, you can then run your Snap using its associated command. For example:

      In the case of the example Hello World program, the following output would be:

      Output

      Hello, world!

      You can also view the sandboxing policy for your Snap to make sure that the assigned permissions have been properly granted:

      • snap connections your-snap

      This will output a list of Plugs and interfaces, similar to the following:

      Output

      snap connections your-snap Interface Plug Slot Notes home your-snap:your-snap-home :home - network your-snap:your-snap-network :network -

      In this step, you built your Snap and installed it locally to test that it is working. Next, you’ll publish your Snap on the Snap Store.

      Step 6 — Publishing Your Snap

      Now that you’ve built and tested your Snap application, it’s time to release it on the Snap Store.

      Begin by logging in to your Snap Developer account using the Snapcraft command-line application:

      Follow the prompts to enter your email address and password.

      Next, you need to register the name of the application on the Snap Store:

      • snapcraft register your-snap

      Once you’ve registered the Snap name, you can push the built Snap package to the store:

      • snapcraft push your-snap.snap

      You’ll see output similar to the following:

      Output

      Preparing to push 'your-snap_1.0_amd64.snap'. Install the review-tools from the Snap Store for enhanced checks before uploading this snap. Pushing 'your-snap_1.0_amd64.snap' [===================================================================================================] 100% Processing...| Ready to release! Revision 1 of 'your-snap' created.

      Each time you push to the Snap store, the revision number is incremented, starting at one. This is useful to help identify the various different builds of your Snap.

      Finally, you can release your Snap to the public:

      • snapcraft release your-snap revision-number channel

      If this is the first time you’ve pushed to the Snap Store, the revision number will be 1. You can also choose between releasing to the stable, candidate, beta, and edge channels, if you have multiple versions of your application at different stages of development.

      For example, the following command will release revision 1 of the Hello World Snap to the stable channel:

      • snapcraft release helloworld 1 stable

      You’ll see output similar to the following:

      Output

      Track Arch Channel Version Revision latest amd64 stable 1.0 1 candidate ^ ^ beta ^ ^ edge ^ ^ The 'stable' channel is now open.

      You can now search for your application on the Snap Store and install it on any of your devices.

      Snapcraft store with HelloWorld App displayed from search results

      In this final step, you uploaded your built Snap package to the Snap Store and released it to the public.

      Conclusion

      In this article you configured and built a Snap application, and then released it to the public via the Snap Store. You now have the foundational knowledge required to maintain your application and building new ones.

      If you wish to explore Snaps further, you may wish to browse the full Snap Store. You may also wish to review the Snapcraft YAML Reference to understand more about it and identify additional attributes for your Snap configuration.

      Finally, if you’d like to investigate Snap development further, you may enjoy reading about and implementing Snap Hooks, which allow Snaps to dynamically react to system changes such as upgrades or security policy adjustments.



      Source link