The Ultimate SEO Technical Checklist- What You Need to Consider for a New Site.

Ultimate SEO Technical Checklist- What You Need to Consider for a New Site

SEO or search engine optimization has become an important requirement for all websites. Today, your website cannot serve its intended purpose if it does not have SEO. It is no longer optional. There are many factors that make up a good website, but one great factor that you should never forget to think about for your new site is SEO. Search engine optimization forms a great part of digital marketing plans.

Today, website thinking is far beyond the era of “if you build it, they will come.” There are so many website owners who are struggling with implementing SEO. If you own a new site, you need to know the technical SEO checklist that you should use as a website owner. Here is our SEO technical checklist that will help you work through the important aspects of search engine optimization.

1.    Make your Site Mobile-friendly

In 2015, Google announced that mobile optimization became a ranking factor for websites. Therefore, if you want better rankings on the search engine results page you need to make sure that your website is mobile optimized.

You might have built your website with a responsive design, but it is always wise to make sure that is actually validated. You need to review how Google mobile crawler does on your website. You should perform as much user experience and quality assurance testing as possible just to be sure that your website truly can be easily accessed by your users on all devices.

2.    Optimize the Page Speed

Page load speed matters for the good of your website. Nobody wants to open a site that takes longer to load. We all want a site that loads very fast so that we can access what we want on the website. Load speed also matters for search engines. If your site keeps visitors waiting, they will just leave, and remember Google is using your mobile page speed for ranking. Therefore, you need to check your page speed and improve it to make sure it is optimal.

You can use page speed tool to test the speed of your page. Many SEO tools s able to detect the issues that are slowing down your page and can also give you practical tips on how to address each issue and boost your page speed.

3.    Optimize Images

Un-optimized images used in your website can actually slow down the page load times. It is very common for website owners to use un-optimized images especially if they don’t use photo editing software.

When optimizing images you need to make sure you get image sizes that match the exact dimensions and resolution that you need. Image size should be reduced without affecting the visual appearance.

An image contains information that downloads a lot of bytes on a page. This makes the server to take more time loading information than it should. When images are optimized the server perform faster due to the removal of the additional bytes ant too much irrelevant data.

4.    Fix Broken Links

Broke links lead to poor user experience and even prevents search engines from properly crawling pages on your website. It is important to identify and fix all broken links on your site because it helps prevent a unit of your crawl budget from going to waste.

5.    Build Search Engine Friendly URLs

URLs play a major role in the success of your SEO overall website if you get them right the very first time. Both users and search engines require URLs that are descriptive and have keywords. However, many website owners get URLs wrong and continue to build their websites with dynamic URLs that are not optimized completely.

The URLs are accepted by Google and may seem to work for your site, but at some point, you might be prompted to merge new ones to improve user experience, site performance and the search engine visibility which is actually a lot of work.

Your site should have easy to follow URLs so that you can keep track of them in Analytics and Search Console among others. With poorly done URLs, link building becomes difficult too.

6.    Use Secure Protocol-HTTPS

HTTPS protocol has always been one of Google’s ranking factors of sites. HTTPS is an acronym for Hypertext Transfer Protocol Secure. It actually encrypts data and makes it difficult for it to be corrupted or modified during transfer. The data is kept secure from attacks.

By using HTTPS, your website can experience better rankings since it is a ranking factor on Google. Also, your site visitors will feel it is safe to use the site and that the data provided is encrypted for the prevention of the attacks.

Sites that use HTTPS have a lock on the before the URL in the navigation bar. Sites that don’t use HTTPs have an information icon which when clicked displays a message that the connection is not safe, thus a clear indication that the site is unsecured.

7.    Be Sure That Your resources are Crawlable

All important resources on your website should be crawlable because uncrawlable resources can negatively influence search engine optimization. Crawling happens before indexing, which makes content visible to the website user.

Crawling is basically first finding your content. Indexing follows and finally, your pages are ranked within the greater index.

8.    Use Schema Markup

Schema markup is an important SEO technical checklist to consider because it provides additional structured data to search engines. The structure data improves the context of the content on a page and in various situations, it can change the appearance of your website in the search engine results page.

Schema markup can be used in different sites including review sites, recipe, business and event sites among others. Google offers a software known as Structured Data Testing Tools that can be used to test your page for any issue that might be present in your structured data.

9.    Get Rid of Too Many Redirects

Although redirects can eliminate a lot of trouble relating to link equity and broken pages, they can cause lots of issues if you have a lot of them. A huge number of redirects can slower the load times of your website which means that the site’s user will spend a lot of time trying to get to the landing page.

It is recommended to have only one redirect for a page, otherwise, you might find your site having a redirect loop. A redirect loop is basically a chain of redirects for the same page which is absolutely misleading because the search engine will not establish which page to show, this will end up giving an error.

10.    Check Your Site Architecture

The architecture of your site is an important SEO technical aspect to consider. You need to build a proper hierarchy and structure especially into the navigation and sections of your site. This is good both for users and search engines and helps present topics and content in an organized manner.

You need to think about mapping out your site structure in a better way. Also, you should take a look at your content, identify how to prioritize the various aspects of your site and how you want to funnel your users.

Conclusion

Optimizing your website take time and it should never be done as a one-time affair. However, you need to get started so that as you go about it, you will be able to learn through the process. By mastering the relevant SEO technical, you will be a better position to set your new website up for success.

Contributed by Andrew Guh, passionate SEO blogger, check out his blog Online Hikes and inspirational platform – Museuly.

I help solopreneurs get MORE PROFITABLE in WAY LESS TIME, grow and scale their one man businesses into time independent 7-8 figure machines that make money even when you’re asleep. Learn how in my Renegade Solopreneur Profits Bootcamp.

The Ultimate List of 200 Greatest Web Apps On The Net: A Product Maker’s Guide

Coursera

For web developers and designers out there, in an effort to be always improving our craft, it pays to see what others have accomplished.

By looking at the brilliance and mistakes of others, we become better and can emulate what works, and discard what doesn’t work.

I realize this list is highly subjective. It is meant purely as a representative sample of some of the best designs available on the web in 2016. However, it will be highly informative as a handy cheat-sheet of what has worked on the web so far, and also highlight what has not worked so well. Think of it as a starting point and guide for your explorations.

Please leave a comment below, if you agree with something like this. Even if you disagree, we can still learn from clashing points of view.

That said, here is my list of 200 of the best products available on the web today.

See any patterns in the list?

If this inspires you to go out and make a world-changing product of your own, I have done my job. Happy Coding!


#1 – #10

 

udacity

Udacity – With Udacity, you can pursue different “Nano Degrees” and attend virtual classes on everything from electronics to artificial intelligence, and a lot more. Helping millions learn almost anything from the comfort of their browser, this web app combines utility and elegant designs to make it the representative ideal of what we strive for on the web.

InstagramThe app Facebook acquired for $1 Billion back in 2012, allows people to connect with others, and share photos of their lives and experiences. Noteworthy design choices.

8Tracks – A design showcase. The app for music. Choose your pick. If Pandora is ever dead, this might be the reason.

Coursera

Coursera – Don’t know what it is with these educational product companies, but yeah, they seem to be popping up everywhere! Learn whatever you want, in style.

WunderList – Doesn’t do much besides manage your todo tasks, but does it with style.

soundcloud

SoundCloud – The app for discovering music you love. Turns a normal afternoon into a delightful adventure through blues, hard rock and Lord of the The Rings soundtracks, or whatever your favorite soup du jour.

Telegram – Delivers a new era of messaging. A case study of solid design.

Pinterest – The world’s catalogue of ideas, great for saving ideas and organizing them in boards, and discovering what others have pinned.

AirBnBActive in over 191 countries, AirBnB makes it possible to travel the world and meet people while saving you money on accommodation.

Quora – Helps you find the best answer to any question. Like Google on steroids, and cutting through the long search to find the best answer.


#11 – #20

VK



VK – Social networking app popular in Europe.

We Heart It – Discover inspiration and beautiful images every day.

Twitter – The app that took micro-blogging to the mainstream. Cutting edge concept and cutting edge designs are the norm here. Lends its name to design products like the famous Twitter Bootstrap. Don’t be too surprised if half the internet begins looking like Twitter.

Postach – The easiest way to blog.

vimeo

Vimeo – Watch and share videos with no ads. Takes a simple approach to design.

Flickr – The home of all your photos.

TED – TEDx is like Woodstock for intellectuals, minus the booze and the drugs. Besides that its celebrities are everything from guys whose books you have read to weirdos whose books you will find yourself reading months after watching their videos without knowing it. Such is the cult impact of TED.

Facebook – The app with a billion users. Its design has fallen behind in recent years, but users still can’t get enough of it. A good way to connect with your friends from high school.

500px – A photography community unlike any other. Stands out for its design sense.

Bebo – HQ for your group. Group video and audio chat.


#21 – #30

postly

Postly – Gives you private threads to share content with friends.

Mega – Focused on encryption and privacy, rethinks file storage from the ground up. You can snag 50GB of storage, and who knows what else.

Trello – Task-management and task-tracking tool famous for its well-designed cards, and inspiring designers around the world.

GitLab – Create and host source code repositories online using the popular Git version control software.

PhotoBucket – The trusted place to store, share and print your photographs since 2003.

couchsurfing

Couchsurfing – Global community of over 12 million travel enthusiasts in 230,000 cities. Helps you travel, live with hosts, and host others in your home town.

ZeroNet – Open, free and uncensorable websites using Bitcoin cryptography and BitTorrent networking.

Digg – A user-driven site that employs social democracy to bring new and upcoming stories to its front page

Yelp – User Reviews and Recommendations of Top Restaurants, Shopping, Nightlife, Entertainment, Services

Yahoo Mail – Free email service to connect you to the world.


#31 – #40

nomadlist

NomadList – Best cities to work and live in for digital nomads

LiveJournal – Discover global communities of friends who share your interests.

Github – Collaborate on code and discover open source projects using the Git version control system. Popular with geeks like you and me.

Alibaba – Find quality manufacturers, suppliers, exporters, importers, buyers, wholesalers, and products worldwide.

genius

Genius – The site allows users to provide annotations and interpretation of song lyrics, news stories, sources, poetry, and documents.

Codecademy – Interactive courses on how to program. Courses are created by community and cover CSS, Java, HTML.

Soup – Easy personal publishing for busy people.

Ge.tt – Share any number of files in seconds. Thoughtfully designed.

UpperPix – Online image manipulation app.

Directus – Open-source headless CMS. Sounds cutting edge, yeah it’s headless after all!


#41 – #50

fetchnotes

FetchNotes – Meet your mind’s best friend Fetchnotes is an easy way to keep track of anything and collaborate instantly.

Pandora – Internet Radio, music of all types. Allows you to discover artists you will like, and some songs you’ve never heard of but that sound like you’ve always known them.

CraftCMS – Focused content-management for web professionals.

LonelyPlanet – Love travel? Plan and book your perfect trip with expert advice, travel tips, destination information and inspiration from Lonely Planet.

news360

News360 – News discovery service with a knack for learning what you like and showing it to you.

TabDay – Organize your photos in a calendar.

Codepen – Show case of advanced techniques with editable source code.

KickStarter – Global crowdfunding platform focused on creativity.

Minds – Create your own blog online.

Waze – Free community-based mapping, traffic and navigation.


#51 – #60

penzu

Penzu – Your private, 100% customizable online journal. Loved by over 2 million writers around the world.

Spotify – Instant access to millions of songs.

Known – Create your own website online with ease.

xing

Xing – The platform for business networking.

Flipboard – Your personal magazine, helps you turn your favorite news sources into one coherent personalized magazine. Edit away, Editor!

Path – Private messaging between two people or many.

Youtube – The site with billions of page views, there’s a reason why. Youtube brings together entertainment, personal vlogging and information sharing by means of video, making for a unique experience.

Baidu – Leading Chinese search engine.

 

amazon

Amazon.com – Amazon, after all these years, still feels like walking into a giant supermarket with all kinds of goodies, from clothes and electronic gizmos, to books and obscure bric-bracs. How they manage to keep all that data organized is a big feat of engineering, so engineers take note.

Medium – It’s all too easy to spend hours on Medium, so beware. An easy way to read the thoughts of influencers all around the world, and post some of your own. This is state of the art for collaborative, open blogging.


#61 – #70

goodreads

GoodReads – Meet your next favorite book. A social network for bookworms.

Yandex Mail – Free, spam-free email.

Reddit – The front-page of the internet. Still has a very retro feel to its design, which is why it’s easy to sit back with a beer on the weekend and read Reddit for hours. Your boss wouldn’t be caught dead on Reddit.

Wikipedia – Organizes the world information for detailed and factual reference. Tells you about everything from the ancient Chinese to 3D printing and Elon Musk. And what JFK was doing on the day he got assassinated. Pretty handy reference.

Google Drive – The Google app that seems to be the best-designed one. It’s a useful tool for backing up your files online. Lots of storage available. I don’t know much about the technology behind the scenes, but it works rather well.

WordPress.com – A blogging platform that puts ease of use above all else. Elegant easy designs, customizable through themes. Still the best option for beginner bloggers, beating out the likes of Blogger and Medium.

livingsocial

LivingSocial –  An online marketplace that allows its registered users to buy and share things to do in their city.

TheCultureTrip – For adventurers, helps you discover the world’s cultures, wherever you are, wherever you go.

Google Maps – Find local businesses, view maps and get driving directions in Google Maps.

Deffe – Upload and share your images.


#71 – #80

leanote

LeaNote – Blog, take notes and organize your thoughts online.

Paypal – Send money, pay online, with the convenience of email.

Bing – Search the internet, Microsoft’s search engine.

BlogLovin – Follow your favorite blogs and discover new ones.

dailymotion

DailyMotion – Video-sharing platform.

Tizmos – Visual bookmarking site.

Noosfeer – Discover content about your favorite topics.

Yahoo – News and search in one big portal.

SubtleTV – Find out what to watch and funny videos from around the internet.

Grav – A modern, flat-file CMS.


#81 – #90

evernote

Evernote – Lets you capture information in a variety of formats, and store it in the cloud so you never forget important stuff.

WhatsApp – Chat with anyone around the world.

Yandex Search – Large search engine with a global footprint.

BobblePic –  Manage your content, create private albums, customize your profile and more.

openstreetmap

OpenStreetMap – An openly licensed map of the world being created by volunteers using local knowledge, GPS tracks and donated sources.

WikiLeaks – Publishes and comments on leaked documents alleging government and corporate misconduct.

HealthCare.gov – Official site of Affordable Care Act, a result of Obama’s controversial Obamacare.

AWS – Amazon Web Services offers reliable, scalable, and inexpensive cloud computing services.

Google Analytics –  Web analytics service offered by Google that tracks and reports website traffic.

Redaxscript – Ultra light blogging platform.

 


#91 – #100

vine

Vine– The entertainment network where videos and personalities get really big, really fast. Unfortunately, Vine is going out of business.

Weibo – Chinese microblogging platform.

CamJamm – Online album that lets you share images and videos.

Media Fire – Share, collaborate and organize your files online.

Schniggen – Allows you to upload images and share them with your friends, whilst keeping them from everyone else.

ebay

Ebay – Bid site to buy and sell electronics, cars, fashion apparel, collectibles, sporting goods, digital cameras, baby items, coupons, and everything else.

Taobao – China’s largest and most used internet portal.

Tumblr – Microblogging and social networking website

Oinker – Chat platform with idea and task management abilities.

Historious – Saves you time by saving pages you’ve seen before for easy lookup.


#101 – #110

todoist

Todoist – Start getting more done in less time.

VolaFile – Live filesharing and chat.

Google Hangouts – Hangouts bring conversations to life with photos, emoji, and even group video calls for free. Connect with friends across computers, Android, and Apple devices.

Hotels.com – Find cheap hotels and discounts. Compare hotel deals, offers and read unbiased reviews on hotels.

Walmart.com – Shop Walmart’s online specials and find savings in electronics, home, furniture, video games, baby, clothing, toys, gifts and more.

UsersCloud – Free unlimited cloud storage.

msn

Msn – Portal for shopping, news and money, e-mail, search, and chat.

GoCinchy – Save bookmarks in the cloud. What cloud? The cloud.

AliExpress –  Global retail marketplace targeted at consumers worldwide.

Youku – Chinese video-sharing website.

 


#111 – #120

slack

Slack – Unless you’ve been living under a rock, you’ve at least tried Slack by now. Some people love it, others hate it. Real-time messaging, archiving and search for modern teams.

Faveous – Allows you to store information on phone numbers and bookmark them. A cold-caller’s dream app.

UltraImg – Lets you upload and share your images.

sparknotes

SparkNotes – Study guides and discussion forums offered on various academic subjects. Literature section includes brief analyses of characters, themes and plots.

Groupon – Discover and save on 1000s of great deals at nearby restaurants, spas, things to do, shopping, travel and more.

StackOverflow – The largest online community for programmers to learn, share their knowledge, and advance their careers.

Diaro – An online diary. No matter if it’s a short note or a lengthy diary entry, Diaro user friendly interface lets you organize everything conveniently

Flipkart – Indian online shopping site.

Twitch – Live streaming video platform.

Nicovideo.jp – Japanese video sharing site.


#121 – #130

skype

Skype – Skype keeps the world talking for free. Connect with friends worldwide over video chat, voice or text chat.

Google Play Music – You music in the cloud. Free radio for everything you do. Store 50000 tracks from your personal collection.

ImgSafe – Free Image Host.

JottIt – Create websites at the click of a button. Call me dumb but normally that’d require some JavaScript, no? Haha.

XMind – The most popular mind-mapping tool on the planet.

deviantart

DeviantArt – The world’s largest online social community for artists and art enthusiasts, and others with a sense of design.

Indeed.com – Search for jobs and apply online.

AliPay – Online payment platform by Alibaba.

Tudou – Chinese video-sharing site.

W3Schools – Free tutorials on the web and basic web development.


#131 – #140

angie's list

Angie’s List – Crowd-sourced reviews of local businesses.

TinyPic – Free image hosting, photo sharing and video hosting.

DuckDuckGo – The search engine that doesn’t track you. A superior search experience with smarter answers, less clutter and real privacy.

Booking.com –  Browse hotel reviews and find the guaranteed best price on hotels for all budgets.

netease

Netease Music – Chinese music site.

SlideShare – Offers users the ability to upload and share publicly or privately PowerPoint presentations, Word documents and Adobe PDF Portfolios.

UpToBox – Host your files and share them with friends.

PostImage – Free image hosting.

UpToDown – App downloads for Android.

Snapdeal – India’s largest ecommerce site.


#141 – #150

imgur

Imgur – The best place to share and enjoy the most awesome images on the Internet.

9Gag – Has the best funny pics, gifs, videos, gaming, anime, manga, movie, tv, cosplay, sport, food, memes, and other funny items on the internet!

Putlocker – Watch and share your videos.

etsy

Etsy – Your place to buy and sell all things handmade.

WikiHow – Learn how to do anything with wikiHow, the world’s most popular how-to website

ImgBox – Fast, simple image hosting.

Weather.com – Provides a national and local weather forecast for cities, as well as weather radar, report and hurricane coverage.

Tistory – South Korean blog-publishing service that allows private or multi-user blogs.

WordReference – Free online dictionaries – Spanish, French, Italian, German and more.

Weebly – Create a free website or blog in minutes by using a simple drag and drop interface. No ads.


#151 – #160

ozock

Ozock – Create, share and discover the world’s most viral, funny and newsworthy stories.

Dash Dashboards – Create beautiful dashboards with a few clicks.

Picorator – Community-driven image-sharing service.

AngelList – Connects entrepreneurs to an increasingly large base of angel and venture investors while simultaneously exposing those investors to a stream of dealflow that’s been vetted by the AngelList team.

anydo

Any.do – Free todo list and task manager.

Calm.com – Unique meditations and inspirations every day.

Can I Stream It – Helps you identify where your favorite movies are available for streaming, rent or purchase.

FileThis – Go paperless, track your personal financial accounts and organize bills, invoices, statements, tax files and receipts in one secure place.

clickhole

ClickHole – ClickHole is the latest and greatest online social experience filled with the most clickable, irresistibly shareable content anywhere on the internet.

FlapMMO – A Flappy-bird-inspired game where you fly with the others avoiding the pipes and getting as far as you can.


#161 – #170

foursquare

FourSquare –  Helps you find the perfect places to go with friends. Discover the best food, nightlife, and entertainment in your area.

BuzzFeed – Media site with all the biggest news, videos, quizzes, and trending buzz you’ll want to share with your friends.

Papaly – Cloud bookmarking service.

Draggo – The new way to manage all your bookmarks online.

PixelDrain – Free file-sharing service.

Annotary – Bookmarking for the extremely inquisitive.

skyscanner

Skyscanner – Global metasearch engine for information on the World Wide Web that enables people to find comparisons for flights, hotels and car hire.

Fitocracy – Fitocracy motivates you and helps you succeed at fitness and level up in real life.

Glyde – The easiest way to buy and sell smartphones, tablets, MacBooks, video games, and iPods. Get cash for your gently-used items.

IMDb –  The world’s most popular and authoritative source for movie, TV and celebrity content.


#171 – #180

craigslist

CraigsList – Classified advertisements website with sections devoted to jobs, housing, personals, for sale, items wanted, services, community, gigs, résumés, and discussion forums. Looks dated, but insanely easy to use.

Gmail – Google’s consumer web apps look like they haven’t been updated in years. However, in terms of ease of use, you can’t argue much with them. That is the case with Gmail, the mail app of choice for millions of individuals.

Google Search – Google Search definitely puts functionality over design. It is a fast, efficient, search engine with a lot going on in the background.

Forgotify – Discover a previously unheard Spotify track.

SendSpace – Send files that are too big to send as email attachments.

Pinboard – Social bookmarking for introverts.

haiku deck

Haiku Deck –  Presentations That Inspire.

Gruik – Free and open-source note-taking service.

CrimeReports – Helps residents see and understand where crime is happening in their neighborhood and engage with their local law enforcement agencies.

Humble Bundle – Digital storefront for video games where you pay what you want for hidden gems and support charity!


#181 – #190

xkcd

XKCD – Popular web comic.

Pleated Jeans – News bloopers and other funny bits and pieces curated from the internet.

FAVable – Save your bookmarks on the web.

Peek – One-stop shop to discover and book amazing activities, tours, and more

wolframalpha

Wolfram Alpha – Smart online artificial intelligence calculator.

Start.io – Make a start page with a collection of the websites you care for

Blogmarks – Social bookmarking service.

Nick Reboot – Relive your childhood with a live stream of classic 90s television!

Uvibo – Uvibo provides you with a dynamic dashboard for social media. Forget about scrolling, manual updating or prioritizing.

Noisli –  Fantastic background noise and color generator for working and relaxing. Online soothing ambient sounds like White noise, Rain and Coffee Shop.


#191 – #200

lifehacker

LifeHacker – Tips and downloads for getting things done.

ItMages – Host images online.

RetailMeNot – Get discounts with coupon and promo codes for thousands of online stores.

ViaBox – Get a Forever FREE US address. Shop any US retailer. Ship to any country.

make

MAKE – DIY culture and tutorials.

Google News – News curated from major and local news sources.

TinyUpload.com – Perhaps taking the wrong cue from Google’s success with minimalist design, sets the bar unacceptably low for a file-sharing service.

rottentomatoes

RottenTomatoes – Isn’t it funny how your favorite movies seem to all have an unrealistically low ranking on RottenTomatoes? Well, just between you and me, now you can tell em web designers just don’t think their design chops are the best ever either!

Hacker News – Perhaps because it’s meant for hackers, this link-sharing and discussion site is notorious, along with Reddit and CraigsList, for taking a super laid-back approach to design.

ZippyShare – Unlimited Disk Space, online, makes the garish design somewhat more palatable.

And there we have it! 200 of the very best web apps in production on the internet today. Study them, like them, vilify them. But above all, learn from them! Copy what works, reject what fails, and share with the world your own web app creations.

I help solopreneurs get MORE PROFITABLE in WAY LESS TIME, grow and scale their one man businesses into time independent 7-8 figure machines that make money even when you’re asleep. Learn how in my Renegade Solopreneur Profits Bootcamp.

(Almost) Hands-Off Rails Deployments With Mina and Nginx on Ubuntu 14 LTS

Deployments on servers

Production deployment can quickly turn into a headache if you are not careful. In the ideal world, you’d simply click a button, and your code can go straight into production, delivering your latest releases to your users without skipping a beat.

This is critical to get right because without a deployment step, your app that you’ve worked so hard to develop will not reach your users. Thing is, deployments need to be simplified so they don’t take up precious time. Mina came up on my radar recently when I was considering options for deploying my Rails apps. Turns out, you can use it for more or less any stack, like Django or Node.js, if that’s your thing.

In this guide I will show you how close you can get to the ideal using the cute tool Mina, your ordinary Rails workflow, and the Nginx server.

I like to deploy on Ubuntu because I run Linux Mint as my go-to OS, so dev and prod look very similar, however, this process should work for Unix-like systems. In the future, I intend to explore OpenBSD, it has a very attractive open philosophy and a well-earned reputation for security. Running Linux Mint alongside OpenBSD would be a geek’s dream come true.

Getting Your Application Ready

First you need to get the application code for the app you want to deploy.

Make sure you have a Ruby on Rails development environment on your machine already.

In case you do not have a Ruby on Rails environment ready, consult this guide on setting up a Rails development environment. With your environment read, the next thing is to install your application’s dependencies and ensure the application at least runs on your local development environment.

[pastacode lang=”bash” manual=”cd%20codefloor%0Abundle%20install” message=”Install gems” highlight=”” provider=”manual”/]

Test your app locally

Now you can run the application. You might also want to set up and connect a database. Rails comes with SQLite set up out of the box, but if you are deploying into production, PostgreSQL or MongoDB might be better choices.

Running the app is the easy part, just type:

[pastacode lang=”bash” manual=”bin%2Frails%20server” message=”Running the app” highlight=”” provider=”manual”/]
robots

Make sure your specific app is working as expected and you can access it in your browser or over your API before going on to a server. For example, if I run my test app, I should be able to see the development version when I visit http://localhost:3000 in your browser.

Spinning up a server

Now that we have the code and verified the app is working locally, you’ll want to get your production environment setup.

I like using AWS, but I also recommend Digital Ocean and Linode.

You’ll want to spin up an EC2 instance running Ubuntu 14 LTS as its operating system, or your server of choice on the other platforms, then install all dependencies your server will need to run Ruby and Ruby on Rails.

Server setup can be a bit of a rabbithole, so I recommend following a solid guide to installing Rails and your other server dependencies.

Mapping Your Domain to point to your server

In addition, if you have a domain name at which you want your application to be accessible once you deploy it, then you’ll want to map your domain to the public IP address of your EC2 instance or other server.

Here are a few guides on mapping your domain to point to the EC2 instance or your server’s public IP address.

The process varies from one domain registrar to another. As a rule of thumb, it involves going into your domain registrar domain account, then creating a new A record, and pointing it to the actual IP address of your new server. You may also need to make a CNAME record pointing to the server. In some cases, you may need to obtain an elastic IP address.

Installing Mina and Nginx, and verifying they are all set up to go

Now that your server is all set up, and you can now access your server via your domain name or at the very least a public IP address, we should setup Nginx and Mina as the next steps.

Nginx is a highly-scalable web server and reverse proxy. It has a lot of flexibility regarding what it can do and how you configure it.

For this reason I’m a big fan of Nginx. A lot of websites have scaled to millions of hits on the back of Nginx. It has quite a colorful history, which you can read here.

Mina, our deploy hero, is a really fast deployer and server automation tool. Alternatives like Capistrano exist, but Mina has the particular advantage of being faster and somewhat more elegant. You could also reach for other tools like Chef and Puppet, however, Mina is likely to be a strong option for most deployments.

You’ll want to SSH into your server. Here’s a guide on how to do this.

Once you are SSH’d into your server or EC2 instance, installing Nginx is simple enough:

[pastacode lang=”bash” manual=”sudo%20apt-get%20install%20nginx” message=”Install nginx on your server” highlight=”” provider=”manual”/]

In case you run into any problems installing Nginx, you’ll want to consult the official Nginx installation and setup guides.

To install Mina you just run

[pastacode lang=”bash” manual=”cd%20codefloor%0Agem%20install%20mina” message=”Install Mina locally” highlight=”” provider=”manual”/]

Remember if you’re using Rbenv and you run into executable errors, that you probably need to rehash your shims, using:

[pastacode lang=”bash” manual=”rbenv%20rehash%0A%0A” message=”rbenv” highlight=”” provider=”manual”/]

Great, now you have Mina and Nginx installed.

Mina bills itself for simple deployments. You will want to check the docs to come up with a configuration that suits your current needs. Here are some sample configs that may come in handy.

Mina, Nginx, Rails
Configuring the deploy

Let’s configure Mina.

Run

[pastacode lang=”bash” manual=”mina%20init” message=”Mina init” highlight=”” provider=”manual”/]

This creates a mina deploy file at config/deploy.rb

Take a look at this file, we’ll be editing it to customize our deployment.

What makes Mina such a great tool, behind it’s speed, is how simple everything is in how it works. Mina allows us to “queue” tasks that are to be run as part of the deployment process.

Think of the queue from the standpoint of a normal deployment. What would need to happen in order for us to deploy on a server.

Typically, the steps would go something like this, in chronology:

  • Log in to the server
  • Create the directory where our app is going to be deployed, and from which our web server will serve the files
  • Retrieve the latest source code from a code repository hosted on our version control server or cloud repos like GitLab, Bitbucket or Github
  • Set up any database changes that need to be in place
  • Start or restart our web application server

This process is what Mina does for us. How it does so is using this notion of “queues”.

At its heart, a queue is just a sequence of commands that Mina will run for us on the server. So, as you can imagine, our queue will include all the above steps as separate commands.

Here are some important parameters you will want to configure in your config/deploy.rb file:

[pastacode lang=”ruby” manual=”set%20%3Adomain%2C%20’foobar.com’%0Aset%20%3Adeploy_to%2C%20’%2Fvar%2Fwww%2Ffoobar.com’%0Aset%20%3Arepository%2C%20’git%40gitlab.com%3Anomadhideout%2Fcodefloor.git’%0Aset%20%3Abranch%2C%20’master’%0A%0A%23%20Optional%20settings%3A%0Aset%20%3Auser%2C%20’foobar'” message=”The Mina configuration file, excerpt” highlight=”” provider=”manual”/]

For the domain option, you’ll want to set your appropriate server or EC2 instance IP address.

The deploy_to option refers to the actual directory on your server where your app files are going to live. This depends on your preference. I’ve seen some people use /var/www/foobar.com, the Nginx default is /usr/share/nginx/html/foobar.com

You’ll want to replace foobar.com with your app’s domain name or just your app name if you do not have a domain name setup. Note that if you are going to be in production, getting a domain name will be essential.

I’ll also direct your attention to the very last option I copied above, the user. On an Ubuntu box with Amazon EC2, this will typically be “ubuntu”, however, you may want to create a specific user that is responsible for handling this deployment process.

Also note that if you are using RVM or Rbenv, you will likely need to enable the options for RVM or Rbenv, respectively, in your config/deploy.rb file.

Now your app is more or less ready to deploy. You want to have Mina setup your deploy directory on the server. This also tests our configuration, helping us catch any errors before we deploy. So run:

[pastacode lang=”bash” manual=”mina%20setup%20–verbose” message=”Setting up ” highlight=”” provider=”manual”/]

The verbose option will enable us to see what’s going on on the server, and allow us to spot problems with the deployment, if any.

Now to deploy, we can run:

[pastacode lang=”bash” manual=”mina%20deploy” message=”” highlight=”” provider=”manual”/]

When the last command is run, our app deployment is pretty much done. And this whole set of commands, once configured initially, leads us to be able to deploy our application at any particular moment with one simple command.

Further Steps

You can check the docs if you run into deployment errors. Rails 5 now comes with Puma as the default server, but there are others out there, like Unicorn or Passenger so explore a bit to find the one that suits you best. Passenger is a great, simple option for beginners so, if you are just starting out, I’d recommend that. Whichever server you go with, if you are running at a live domain like example.com, you need to look up how  to proxy nginx to resolve to your rails server’s socket.

I help solopreneurs get MORE PROFITABLE in WAY LESS TIME, grow and scale their one man businesses into time independent 7-8 figure machines that make money even when you’re asleep. Learn how in my Renegade Solopreneur Profits Bootcamp.

The Adventures of Hackerdom

Git Venturin

The Adventures of Hackerdom, Routine 1 by The Infamous Hacker Tendai Mutunhire

At last, we come to the weighty matter of the Metaphysics
This men who are not novices have chanced to know
Some politicians promise you Coffeescript before the election
And then they switch and mudsling with JavaScript instead
Tis little wonder the Fed’s rates can only go up, up like Stroustrup’s C++

Even when politicians know they cannot deliver Ruby and gems
No, not in a thousand null dreams
They are likely to sell you on fools gold and Smalltalk

If a ruler in Africa is a corrupt
Ada say he’s likely to be a dictator
From such a one run, fast! and avoid the falling bytecode
The Apple never falls far from the tree, C!

Beware the obfuscation of parenthesis
Especially if you spy a Lisp or hesitation in the man’s talk

Townhalls and C# leave to beliebers and musicians
Focus instead on the sincerity of the Lambda calculus
The simplicity of Biryani haskell curry is antidote enough for the mind against these foos
Fie, let not such a silly sound as F# recurse your Compojure

If ever you are in Timbuktu,
Remember me to a zoo Python there, where I loved a fair damosel once
But Alas, she left me for her voodoo and ouija boards
For her name,
Scarcely remembered now I struggle to recall, was the delightful whimsical ‘Perl’

So took I to distilled concatenated, minified, liquified drink,
Some call it punch, others the precious mountain dew,
Ah ‘t delights me to quaff the prescient Elixir
When on a sandy beach in Galicia I happen to repose
Methinks it bestirs my soul like the famed Phoenix bird

If a masked Cowboy should happen you to accost,
Fear not him, it is Erlang, harmless Erlang,
Joust with him best as you can,
Strike him in play, without killing his vivant process,
But avoid his iron guns, the stinging Ejabberd and the mysterious Beam

Now here’s the moral of the tale
If ’tis bliss you seek, traveler,
Ah, all travelled enough men know
(Ask Stahlman or Raymond or Barski)
That only can be found
In the far-off storied Realm of Racket

 


This is the first installment of an attempt to create a light-hearted “long-form epic” story of Hackerdom. Contributions are welcome.

If you have suggestions, would like to contribute or comments, feel free to email me: hackishword@gmail.com

I help solopreneurs get MORE PROFITABLE in WAY LESS TIME, grow and scale their one man businesses into time independent 7-8 figure machines that make money even when you’re asleep. Learn how in my Renegade Solopreneur Profits Bootcamp.