Kickstart a personal website that showcases your work as a software developer and helps you easily manage your technical articles.
Developers are oftentimes too busy writing codes that we barely spend the time to set up a personal website for ourselves. This repository gives you the code you’ll need to kickstart a personal website that showcases your work as a software developer.
It’s all possible using the combination of Jekyll (for building your website), GitHub Pages (for hosting your website), and GitHub’s API (for automatically populating your website with content).
1. Getting Started 🚀
You do not need to do any installation before starting, a fork of GitHub’s open-source personal website generator will do. Click here to do so🔥
- Ensure that you’re forking the repository into your personal Github account. *
2. Publish your Website ✨
We have just completed a major step, but it’ll be good to have a preview of our awesome website. Follow the steps in the images below.
i. Click on Settings
ii. Scroll down to GitHub Pages and Select Source to be Master Branch
🕺 Your website should be published now at https://<username>.github.io/personal-website
You can also customize your website’s URL to https://<username>.github.io by renaming your Repository name to <username>.github.io (where <username> is your GitHub username).
Renaming website URL
3. Website Customizations 😍 (Optional)
We all love customizing things, no matter how little, every developer has a preference, so let’s go through some quick customizations you can make to your website. Open the _config.yaml file and make some changes.
i. Layout
To change your site from the default two-column layout, you can switch to a single column by changing layout from layout: sidebar
to layout: stacked
ii. Style
Developers love black theme, if you would like to change from the white and grey background, change style from style: light
to style: dark
iii. Projects
There are a lot of options to choose from for customizing your website’s project section, feel free to change the options for sort_by (how repositories are sorted either pushed
orstars
), limit (maximum number of repositories to be displayed), exclude (whether to hide forks or some repository projects)
iv. Topics
You’ll definitely like anyone checking out your websites to see what you’re interested, there is a topic sections for that. GitHub also has an awesome list of topics here ( which of course can be used for your _topic name, web_url, imageurl )
v. Social Media
Final customization we’ll be doing is adding up our social media handles to our page, this is quite easy to do since all you need is to replace the your_username value with your actual username for each social media.
layout: stacked
style: dark
plugins:
- jekyll-octicons
- jekyll-github-metadata
- jemoji
permalink: /:year/:month/:day/:title/
defaults:
-
scope:
path: "" # an empty string here means all files in the project
type: "posts"
values:
layout: "post"
projects:
sort_by: pushed
# sort_by options:
# - pushed
# - stars
limit: 9
exclude:
forks: false
projects:
# - repo-name
social_media:
# behance: your_username
# dribbble: your_username
facebook: timex4u
linkedin: timtech4u
medium: timtech4u
stackoverflow: 4620227
twitter: timtech4u
# youtube: your_username
topics:
- name: EcmaScript
web_url: https:github.com/topics/es6
image_url: https:raw.githubusercontent.com/github/explore/6…
- name: Python
web_url: https:github.com/topics/python
image_url: https:raw.githubusercontent.com/github/explore/6…
- name: Go
web_url: https:github.com/topics/go
image_url: https:raw.githubusercontent.com/github/explore/4…
- My Personal Website (after customization) *
4. Adding New Pages and Blog Posts 🆕
You are not limited to just the homepage, of course, you can add other pages and also blog posts. The need for developers to write articles cannot be overemphasized in this article, I hope this tweet from Farida inspires you to write more as developers:
i. Add New Page
On the root of your repository, create a file with .html or .md extension and filename of choice ( this would eventually be your page’s route e.g. contact.html would yield to <website.url>/contact). Also, add the following to the start of your file:
---
layout: default
---
---
layout: default
---
<div class="typeform-widget" data-url="timothyolaleke.typeform.com/to/SG6ad8" style="width: 100%; height: 500px;"></div> <script> (function() { var qs,js,q,s,d=document, gi=d.getElementById, ce=d.createElement, gt=d.getElementsByTagName, id="typef_orm", b="embed.typeform.com"; if(!gi.call(d,id)) { js=ce.call(d,"script"); js.id=id; js.src=b+"embed.js"; q=gt.call(d,"script")[0]; q.parentNode.insertBefore(js,q) } })() </script>
- My contact.html file *
- Website Contact Page *
ii. Add New Blog Post
Create a new .md
file extension in your repository's **/_posts/**
directory with a filename using the following format: (e.g. 2019–03–10-hello-world.md )
YEAR-MONTH-DAY-title.MARKUP</span>
Also, you’ll need to add the following to the start of your file ( there’s already a post file in the **/_posts/**
so that could serve as a reference for your future posts. )
NB: This is necessary as your website is pre-configured to assign the post
layout to all of the posts in your /_posts/
directory.
---
title: "Welcome to Github Website Generator!"
---</span>
If you would like to learn more about Contents and Templates, feel free to jump to that section on the GitHub Personal Website Repository.
5. Custom Domain 🔗
To add a custom domain, we’ll have to head back to Settings (just like in Step 2). Scroll down to Custom Domain and enter your domain name. NB: You’ll have to follow a few steps to configure your domain name DNS.
In summary, you need to add the following DNS Records:
- Four “@” type A records that point to the GitHub IP addresses: 185.199.108.153 , 185.199.109.153 , 185.199.110.153 , 185.199.111.153
- One “www” CNAME record that points to your <username>.github.io
It’ll be nice to see more awesome personal websites owned by developers, do share your own personal website in the comments, and let me know if I missed any step, if something didn’t work out quite right for you or if this guide was helpful. Checkout my personal website here
Happy Coding! 🤓 💻 ☕