diff --git a/kamoji_template.html b/kamoji_template.html
new file mode 100644
index 0000000..592d0c3
--- /dev/null
+++ b/kamoji_template.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+{{.Kamoji}}
+
+
+
+{{.Kamoji}}
+
+
+
diff --git a/kamojis.txt b/kamojis.txt
new file mode 100644
index 0000000..478af10
--- /dev/null
+++ b/kamojis.txt
@@ -0,0 +1,15 @@
+¯\_(ツ)_/¯
+(=^ ◡ ^=)
+(⊃。•́‿•̀。)⊃━☆*:・゚
+♬♫♪◖(● o ●)◗♪♫♬
+( ╯°□°)╯ ┻━━┻
+┬─┬ノ( º _ ºノ)
+(-‸ლ)
+(*¯︶¯*)
+凸( ` ロ ´ )凸
+(+_+)
+ლ(ಠ_ಠ ლ)
+( ̄▽ ̄)ノ
+(づ ◕‿◕ )づ
+C= C= C= C=┌( `ー´)┘
+( ̄o ̄) zzZZzzZZ
\ No newline at end of file
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..effc806
--- /dev/null
+++ b/main.go
@@ -0,0 +1,58 @@
+package main
+
+import (
+ "bufio"
+ "html/template"
+ "log"
+ "math/rand"
+ "net/http"
+ "os"
+ "time"
+)
+
+type Kamoji struct {
+ Kamoji string
+}
+
+type Kamojis struct {
+ Kamojis []Kamoji
+}
+
+func loadKamojis() Kamojis {
+ kamojis := Kamojis{}
+
+ file, err := os.Open("kamojis.txt")
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer file.Close()
+
+ scanner := bufio.NewScanner(file)
+ for scanner.Scan() {
+ kamojis.Kamojis = append(kamojis.Kamojis, Kamoji{Kamoji: scanner.Text()})
+ }
+
+ if err := scanner.Err(); err != nil {
+ log.Fatal(err)
+ }
+ return kamojis
+}
+
+func main() {
+ tmpl, err := template.ParseFiles("kamoji_template.html")
+ if err != nil {
+ log.Fatal(err)
+ }
+ allk := loadKamojis()
+ timestamp := time.Now().Unix()
+ randomNumber := rand.Intn(len(allk.Kamojis))
+ http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+ if time.Now().Unix()-timestamp > 60 {
+ randomNumber = rand.Intn(len(allk.Kamojis))
+ timestamp = time.Now().Unix()
+ }
+ k := allk.Kamojis[randomNumber]
+ tmpl.Execute(w, k)
+ })
+ http.ListenAndServe(":80", nil)
+}