{"id":1481,"date":"2014-11-03T08:00:21","date_gmt":"2014-11-03T07:00:21","guid":{"rendered":"http:\/\/www.diogonunes.com\/blog\/?p=1481"},"modified":"2020-05-15T14:24:30","modified_gmt":"2020-05-15T13:24:30","slug":"custom-domain-for-rails-application-at-heroku","status":"publish","type":"post","link":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/","title":{"rendered":"Using a custom domain for your (Rails) application at Heroku"},"content":{"rendered":"<figure id=\"attachment_1507\" aria-describedby=\"caption-attachment-1507\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?resize=580%2C387\" alt=\"original photo: http:\/\/goo.gl\/dxaV95\" width=\"580\" height=\"387\" class=\"size-full wp-image-1507\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?w=600&amp;ssl=1 600w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?resize=400%2C266&amp;ssl=1 400w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><figcaption id=\"caption-attachment-1507\" class=\"wp-caption-text\">original photo: http:\/\/goo.gl\/dxaV95<\/figcaption><\/figure>\n<h3>Because no one will remember <code>gentle-tundra-5348.herokuapp.com<\/code><\/h3>\n<p><!--more--><\/p>\n<p>If you deployed your Rails application to heroku for free, you probably ended up with an URL like <code>http:\/\/weird-name-1234.herokuapp.com\/<\/code>. You can <a href=\"https:\/\/devcenter.heroku.com\/articles\/renaming-apps\">rename that URL to something more familiar<\/a>, but it will always be of the form <code>*.heroku.com<\/code>. That&#8217;s fine when your just testing or demonstrating your Rails app.<\/p>\n<p>However when you&#8217;re showing that application as a product to some potencial client, you might want to have your custom URL, like <code>www.awesome-product.com<\/code>. What would be really great was to have your own domain redirecting to your Rails application at Heroku. Well you can do just that and it&#8217;s not hard, but there are some common pitfalls so I&#8217;ll guide you through so you may avoid them.<\/p>\n<p>First thing you need is to own that <code>awesome-products.com<\/code> domain. If you haven&#8217;t bought it already, it&#8217;s time to do so. A friend suggested me <a href=\"https:\/\/www.diogonunes.com\/blog\/namecheap-domains\">Namecheap<\/a> back in 2009 and I&#8217;ve being using it ever since (thanks @Sanchaz). Their prices are fair and their service\/support great. <a href=\"https:\/\/www.diogonunes.com\/blog\/namecheap-domains\">Go there<\/a> and <strong>buy the domain name you want<\/strong>.<\/p>\n<p>Now that you have the domain, you need to <strong>redirect it to Heroku<\/strong>. Analogy: if your Rails application is a house and your domain the house address, you&#8217;re just changing your house&#8217;s street address, the house stays in the same place (heroku&#8217;s servers).<\/p>\n<ol>\n<li>Go to <strong>&#8220;Manage domains&#8221; \u00bb &#8220;Your domains&#8221;<\/strong> and click over the domain you just bought (for me it was <code>dcid.org<\/code>).<\/li>\n<\/ol>\n<p><a href=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/namecheap1.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/namecheap1.png?resize=580%2C294\" alt=\"namecheap1\" width=\"580\" height=\"294\" class=\"aligncenter size-full wp-image-1510\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/namecheap1.png?w=990&amp;ssl=1 990w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/namecheap1.png?resize=400%2C202&amp;ssl=1 400w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/p>\n<p><strong><em>Pitfall 1:<\/em><\/strong> Make sure you&#8217;re using Namecheap&#8217;s nameservers (DNS)! If you already owned the domain and were using another hoster&#8217;s DNS servers, you need to click the &#8220;Transfer DNS back to us&#8221; option, otherwise you won&#8217;t get access to the &#8220;All Host Records&#8221; option which will need in a second.<\/p>\n<p>2) Go to <strong>&#8220;Host Management&#8221; \u00bb &#8220;All Host Records&#8221;<\/strong> and edit the first two fields. The <strong><code>@ field<\/code><\/strong> should have your full domain name and the <strong><code>www field<\/code><\/strong> should have the current url to your heroku app. Make sure you use <strong><code>URL Redirect<\/code><\/strong> for the first field and <strong><code>CNAME (Alias)<\/code><\/strong> for the second. In my case, I&#8217;m redirect any from <code>www.dcid.org<\/code> to the rails application at <code>dcid.herokuapp.com<\/code>.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/namecheap2.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/namecheap2.png?resize=580%2C320\" alt=\"namecheap2\" width=\"580\" height=\"320\" class=\"aligncenter size-full wp-image-1511\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/namecheap2.png?w=986&amp;ssl=1 986w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/namecheap2.png?resize=400%2C220&amp;ssl=1 400w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/p>\n<p>3) Finally you need to add your new custom domain to Heroku. Open your application&#8217;s dashboard and go to the <strong>Settings<\/strong> tab. On <strong>Domains<\/strong> add two entries, one for your <code>awesome-domain.com<\/code> and another with the <code>www.<\/code>, that way both URLs will resolve to your Heroku app.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/heroku.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/heroku.png?resize=580%2C520\" alt=\"heroku\" width=\"580\" height=\"520\" class=\"aligncenter size-full wp-image-1514\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/heroku.png?w=765&amp;ssl=1 765w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/heroku.png?resize=400%2C358&amp;ssl=1 400w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/p>\n<p>And everything should be working now. If you type in www.awesome-product.com on the browser you should see your Heroku application. No?<\/p>\n<p><strong><em>Pitfall 2:<\/em><\/strong> When you try to access your domain you may notice you are redirected to <code>https<\/code> instead of <code>http<\/code>, and therefore you get an error message about a security certificate. Fear not, <a href=\"http:\/\/stackoverflow.com\/questions\/13680768\/running-apps-on-heroku-in-http-instead-of-https\">the solution<\/a> is quite simple: in <code>environments\/production.rb<\/code> there should be following configuration <code>config.force_ssl = true<\/code>. Just change it to <code>false<\/code> and redeploy.<\/p>\n<p>Problems redeploying?<\/p>\n<p><strong><em>Pitfall 3:<\/em><\/strong> Remember when I suggested yo change your herokuapp&#8217;s URL to something more familiar? Well, by doing that you may have confused your git repository. Again an <a href=\"http:\/\/stackoverflow.com\/questions\/7615807\/renamed-heroku-app-from-website-now-its-not-found\">easy solution<\/a>: <code>git remote rm heroku<\/code> followed by <code>git remote add heroku git@heroku.com:awesome-product.git<\/code><\/p>\n<p>And now you should be good to go. Optionaly you can <a href=\"https:\/\/blog.heroku.com\/archives\/2013\/4\/26\/introducing_production_check\">run a production check<\/a> on Heroku to make sure everything is a-ok. If you have any more troubles please leave a comment bellow telling how you solved them.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Because no one will remember gentle-tundra-5348.herokuapp.com<\/p>\n","protected":false},"author":1,"featured_media":1507,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[30,31,48],"class_list":["post-1481","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-ruby-on-rails","tag-tutorial","tag-web-dev"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Using a custom domain for your (Rails) application at Heroku - The Geeky Gecko<\/title>\n<meta name=\"description\" content=\"If you deployed your app to heroku you probably ended up with a weird URL. You can rename your app, but it&#039;s even better to use your own custom domain.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using a custom domain for your (Rails) application at Heroku - The Geeky Gecko\" \/>\n<meta property=\"og:description\" content=\"If you deployed your app to heroku you probably ended up with a weird URL. You can rename your app, but it&#039;s even better to use your own custom domain.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/\" \/>\n<meta property=\"og:site_name\" content=\"The Geeky Gecko\" \/>\n<meta property=\"article:published_time\" content=\"2014-11-03T07:00:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-05-15T13:24:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Diogo Nunes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:site\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diogo Nunes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/\"},\"author\":{\"name\":\"Diogo Nunes\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"headline\":\"Using a custom domain for your (Rails) application at Heroku\",\"datePublished\":\"2014-11-03T07:00:21+00:00\",\"dateModified\":\"2020-05-15T13:24:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/\"},\"wordCount\":561,\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1\",\"keywords\":[\"rails\",\"tutorial\",\"web dev\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/\",\"name\":\"Using a custom domain for your (Rails) application at Heroku - The Geeky Gecko\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1\",\"datePublished\":\"2014-11-03T07:00:21+00:00\",\"dateModified\":\"2020-05-15T13:24:30+00:00\",\"description\":\"If you deployed your app to heroku you probably ended up with a weird URL. You can rename your app, but it's even better to use your own custom domain.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1\",\"width\":600,\"height\":400,\"caption\":\"original photo: http:\/\/goo.gl\/dxaV95\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.diogonunes.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using a custom domain for your (Rails) application at Heroku\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/\",\"name\":\"The Geeky Gecko\",\"description\":\"The Geeky Gecko\",\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\",\"name\":\"Diogo Nunes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"width\":799,\"height\":799,\"caption\":\"Diogo Nunes\"},\"logo\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.diogonunes.com\",\"https:\/\/x.com\/dialexnunes\"],\"url\":\"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using a custom domain for your (Rails) application at Heroku - The Geeky Gecko","description":"If you deployed your app to heroku you probably ended up with a weird URL. You can rename your app, but it's even better to use your own custom domain.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/","og_locale":"en_US","og_type":"article","og_title":"Using a custom domain for your (Rails) application at Heroku - The Geeky Gecko","og_description":"If you deployed your app to heroku you probably ended up with a weird URL. You can rename your app, but it's even better to use your own custom domain.","og_url":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/","og_site_name":"The Geeky Gecko","article_published_time":"2014-11-03T07:00:21+00:00","article_modified_time":"2020-05-15T13:24:30+00:00","og_image":[{"width":600,"height":400,"url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1","type":"image\/jpeg"}],"author":"Diogo Nunes","twitter_card":"summary_large_image","twitter_creator":"@dialexnunes","twitter_site":"@dialexnunes","twitter_misc":{"Written by":"Diogo Nunes","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#article","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/"},"author":{"name":"Diogo Nunes","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"headline":"Using a custom domain for your (Rails) application at Heroku","datePublished":"2014-11-03T07:00:21+00:00","dateModified":"2020-05-15T13:24:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/"},"wordCount":561,"publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1","keywords":["rails","tutorial","web dev"],"articleSection":["Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/","url":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/","name":"Using a custom domain for your (Rails) application at Heroku - The Geeky Gecko","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#primaryimage"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1","datePublished":"2014-11-03T07:00:21+00:00","dateModified":"2020-05-15T13:24:30+00:00","description":"If you deployed your app to heroku you probably ended up with a weird URL. You can rename your app, but it's even better to use your own custom domain.","breadcrumb":{"@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#primaryimage","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1","width":600,"height":400,"caption":"original photo: http:\/\/goo.gl\/dxaV95"},{"@type":"BreadcrumbList","@id":"https:\/\/www.diogonunes.com\/blog\/custom-domain-for-rails-application-at-heroku\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.diogonunes.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using a custom domain for your (Rails) application at Heroku"}]},{"@type":"WebSite","@id":"https:\/\/www.diogonunes.com\/blog\/#website","url":"https:\/\/www.diogonunes.com\/blog\/","name":"The Geeky Gecko","description":"The Geeky Gecko","publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c","name":"Diogo Nunes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","width":799,"height":799,"caption":"Diogo Nunes"},"logo":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.diogonunes.com","https:\/\/x.com\/dialexnunes"],"url":"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/11\/Heroku-Rails-Station.jpg?fit=600%2C400&ssl=1","jetpack-related-posts":[{"id":379,"url":"https:\/\/www.diogonunes.com\/blog\/set-up-your-rails-env\/","url_meta":{"origin":1481,"position":0},"title":"Setting up your Rails environment from scratch","author":"Diogo Nunes","date":"12 May, 2014","format":false,"excerpt":"This is a complete yet summarized guide to set up a Ruby on Rails development environment on Linux. Installing and configuring Sublime Text, Github, and Heroku are optional but we're included for the sake of completeness. Since these are the de facto tools for editing source code, managing code repositories\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"original photo: goo.gl\/QE43FV","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/05\/rails-worker-assembly-construction.jpg?fit=620%2C230&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/05\/rails-worker-assembly-construction.jpg?fit=620%2C230&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/05\/rails-worker-assembly-construction.jpg?fit=620%2C230&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":671,"url":"https:\/\/www.diogonunes.com\/blog\/rails-vs-django-vs-play-frameworks\/","url_meta":{"origin":1481,"position":1},"title":"Rails vs Django vs Play: Battle of frameworks","author":"Diogo Nunes","date":"26 May, 2014","format":false,"excerpt":"This post is a review of those three frameworks considering four criteria: Ease of learning, Speed of development, Tools\/Plugins, and Community. Right from the start I banished PHP from my possible choices. I know that \"sufficiently talented coders can write great applications in terrible languages\" (Jeff Atwood), but I just\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/09\/rails-vs-django-vs-play.jpg?fit=946%2C550&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/09\/rails-vs-django-vs-play.jpg?fit=946%2C550&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/09\/rails-vs-django-vs-play.jpg?fit=946%2C550&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/09\/rails-vs-django-vs-play.jpg?fit=946%2C550&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":665,"url":"https:\/\/www.diogonunes.com\/blog\/ruby-on-rails-an-overview-on-why-its-so-good\/","url_meta":{"origin":1481,"position":2},"title":"Ruby on Rails: an overview on why it&#8217;s so good","author":"Diogo Nunes","date":"5 May, 2014","format":false,"excerpt":"I was in denial for a while but now I get why Rails is so good. First things first, what is Rails anyway? Ruby on Rails is a framework that allows you to develop web applications using the MVC design pattern. Generally speaking a framework is a higher-level abstraction that\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"www.tryruby.org","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/05\/try-ruby-e1373488411601.jpg?fit=500%2C375&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":825,"url":"https:\/\/www.diogonunes.com\/blog\/bootstrap-switch-on-rails\/","url_meta":{"origin":1481,"position":3},"title":"Using Bootstrap Switch 3 on Rails","author":"Diogo Nunes","date":"9 June, 2014","format":false,"excerpt":"Replace Bootstrap's checkboxes and radio buttons by an elegant switch... a Bootstrap Switch. I'm a great fan of Twitter's Bootstrap. Recently I had to develop a settings page which involved displaying a lot of Yes\/No checkboxes. It looked outdated. I wanted something a bit more \"app-like\" - a Yes\/No switch.\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/06\/bootstrap-switch-3-demo-examples.png?fit=564%2C430&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/06\/bootstrap-switch-3-demo-examples.png?fit=564%2C430&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/06\/bootstrap-switch-3-demo-examples.png?fit=564%2C430&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":2632,"url":"https:\/\/www.diogonunes.com\/blog\/birthday-bot-for-slack\/","url_meta":{"origin":1481,"position":4},"title":"Birthday bot for Slack","author":"Diogo Nunes","date":"4 July, 2016","format":false,"excerpt":"Never forget a birthday, right from your Slack channel. The purpose of this bot is to post a greeting message on your team's Slack channel on a colleague's birthday. Every time the bot runs it will read some configuration files, check who was born at that date, and send a\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/06\/work-birthday-slack-bot.png?fit=900%2C650&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/06\/work-birthday-slack-bot.png?fit=900%2C650&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/06\/work-birthday-slack-bot.png?fit=900%2C650&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/06\/work-birthday-slack-bot.png?fit=900%2C650&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":805,"url":"https:\/\/www.diogonunes.com\/blog\/conclusions-after-6-months-of-blogging\/","url_meta":{"origin":1481,"position":5},"title":"Conclusions after 6 months of blogging","author":"Diogo Nunes","date":"30 June, 2014","format":false,"excerpt":"Thanks to Google Analytics I can compare several metrics about my website before and after blogging. Here are my findings. I started blogging on the 1st of January 2014, so this comparison will focus on (Jan 1 - 31 May, 2014) vs. (Jan 1 - 31 May, 2013). A blog\u2026","rel":"","context":"In &quot;Writing&quot;","block_context":{"text":"Writing","link":"https:\/\/www.diogonunes.com\/blog\/category\/writing\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/06\/Google-Analytics.png?fit=839%2C375&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/06\/Google-Analytics.png?fit=839%2C375&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/06\/Google-Analytics.png?fit=839%2C375&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/06\/Google-Analytics.png?fit=839%2C375&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/1481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/comments?post=1481"}],"version-history":[{"count":1,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/1481\/revisions"}],"predecessor-version":[{"id":3627,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/1481\/revisions\/3627"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media\/1507"}],"wp:attachment":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media?parent=1481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/categories?post=1481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/tags?post=1481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}