diff --git a/go.mod b/go.mod
index 4fff95d..5e72279 100644
--- a/go.mod
+++ b/go.mod
@@ -7,3 +7,4 @@ module github.com/AnimeKaizoku/ssg
 
 go 1.18
 
+require golang.org/x/text v0.3.7 // indirect
diff --git a/go.sum b/go.sum
index e69de29..1f78e03 100644
--- a/go.sum
+++ b/go.sum
@@ -0,0 +1,2 @@
+golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
diff --git a/ssg/helpers.go b/ssg/helpers.go
index 251a405..262a5c3 100644
--- a/ssg/helpers.go
+++ b/ssg/helpers.go
@@ -240,6 +240,10 @@ func ToValidIntegerString(value string) string {
 	return newValue
 }
 
+func Title(value string) string {
+	return _titleCaser.String(value)
+}
+
 func ToInt64(value string) int64 {
 	i, _ := strconv.ParseInt(ToValidIntegerString(value), 10, 64)
 	return i
diff --git a/ssg/vars.go b/ssg/vars.go
new file mode 100644
index 0000000..3274ba7
--- /dev/null
+++ b/ssg/vars.go
@@ -0,0 +1,10 @@
+package ssg
+
+import (
+	"golang.org/x/text/cases"
+	"golang.org/x/text/language"
+)
+
+var (
+	_titleCaser = cases.Title(language.Und, cases.NoLower)
+)
diff --git a/tests/strong_test.go b/tests/strong_test.go
index 3ae7e69..c57c506 100644
--- a/tests/strong_test.go
+++ b/tests/strong_test.go
@@ -13,6 +13,32 @@ import (
 	ws "github.com/AnimeKaizoku/ssg/ssg"
 )
 
+func TestTitleCase(t *testing.T) {
+	const (
+		str1 = "string1"
+		str2 = "thisIsString2"
+		str3 = "HelloThere"
+	)
+
+	tmp := ws.Title(str1)
+	if tmp != "String1" {
+		t.Errorf("Expected %s, got %s", "String1", tmp)
+		return
+	}
+
+	tmp = ws.Title(str2)
+	if tmp != "ThisIsString2" {
+		t.Errorf("Expected %s, got %s", "ThisIsString2", tmp)
+		return
+	}
+
+	tmp = ws.Title(str3)
+	if tmp != "HelloThere" {
+		t.Errorf("Expected %s, got %s", "HelloThere", tmp)
+		return
+	}
+}
+
 func TestStrong(t *testing.T) {
 	LogStr("Hi")
 	LogInt(5)