diff --git a/assets/images/image1.webp b/assets/images/image1.webp
new file mode 100644
index 0000000..a8a3757
Binary files /dev/null and b/assets/images/image1.webp differ
diff --git a/assets/images/image10.webp b/assets/images/image10.webp
new file mode 100644
index 0000000..150452f
Binary files /dev/null and b/assets/images/image10.webp differ
diff --git a/assets/images/image2.webp b/assets/images/image2.webp
new file mode 100644
index 0000000..fb28571
Binary files /dev/null and b/assets/images/image2.webp differ
diff --git a/assets/images/image3.webp b/assets/images/image3.webp
new file mode 100644
index 0000000..9e8942f
Binary files /dev/null and b/assets/images/image3.webp differ
diff --git a/assets/images/image4.webp b/assets/images/image4.webp
new file mode 100644
index 0000000..3d0eada
Binary files /dev/null and b/assets/images/image4.webp differ
diff --git a/assets/images/image5.webp b/assets/images/image5.webp
new file mode 100644
index 0000000..dc1052c
Binary files /dev/null and b/assets/images/image5.webp differ
diff --git a/assets/images/image6.webp b/assets/images/image6.webp
new file mode 100644
index 0000000..37a1fc1
Binary files /dev/null and b/assets/images/image6.webp differ
diff --git a/assets/images/image7.webp b/assets/images/image7.webp
new file mode 100644
index 0000000..82addc9
Binary files /dev/null and b/assets/images/image7.webp differ
diff --git a/assets/images/image8.webp b/assets/images/image8.webp
new file mode 100644
index 0000000..5c9d33d
Binary files /dev/null and b/assets/images/image8.webp differ
diff --git a/assets/images/image9.webp b/assets/images/image9.webp
new file mode 100644
index 0000000..b53042a
Binary files /dev/null and b/assets/images/image9.webp differ
diff --git a/components/FlickrCarousel.vue b/components/FlickrCarousel.vue
new file mode 100644
index 0000000..147cb53
--- /dev/null
+++ b/components/FlickrCarousel.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/about.md b/content/about.md
index cc3052c..bee06ef 100644
--- a/content/about.md
+++ b/content/about.md
@@ -1 +1,61 @@
# 認識我們
+
+## 關於 COSCUP
+
+COSCUP 是由一群自由與開放原始碼軟體愛好者發起,致力於推廣開放原始碼精神與技術。
+
+### 起源與宗旨
+
+COSCUP(開源人年會)是台灣由開放原始碼社群聯合推動的年度研討會,始於 2006 年,為台灣自由軟體運動 (FOSSM) 的重要推動力量。COSCUP 的宗旨在於提供一個平台,連結開放原始碼的開發者、使用者與推廣者,藉由每年一度的研討會,推廣自由及開放原始碼軟體(FLOSS)。
+
+### 開放原始碼的價值
+
+自 1998 年以來,「開放原始碼 (Open source)」已成為一個家喻戶曉的概念,其成功的關鍵在於開發者與使用者間的直接互動。無屏障的交流加速了問題的回報和修補機制,而當這個機制被網路效應放大到極限時,Linus 定律「臭蟲難逃眾人法眼 (With enough eyeballs, all bugs are shallow)」,正是開放原始碼模式提升軟體品質的具體體現。
+
+### 三大支柱
+
+開發者(Coders)、使用者(Users)和推廣者(Promoters)是自由及開放原始碼軟體成功的三大支柱。COSCUP 研討會專為這三類人群舉辦,不論你是開發者、推廣者還是使用者,無論經驗多少,都歡迎參加 COSCUP — Conference for Open Source Coders, Users and Promoters,與全球開源社群共同成長。
+
+## 組成與組織
+
+COSCUP 是一個由志工主導的開源社群活動,從籌備到執行,全由熱愛開放原始碼的志願者共同參與。他們來自不同背景,為推動自由軟體和開源文化而努力,確保活動順利進行並持續創新。
+
+### 參與角色
+
+COSCUP 的成功依賴於多方參與者的共同合作,大致可分為以下幾個角色:
+
+- 籌備團隊志工:負責活動的策劃、執行和管理,從議程安排到技術支持,所有工作皆由志工自願投入,確保活動順利進行。
+- 開源社群:來自各種開放原始碼專案的社群成員,不僅參與活動,也積極推動開源文化,分享經驗並相互合作,促進社群間的聯繫。
+- 議題講者:來自全球的開發者、推廣者和技術專家,分享他們在開放原始碼領域的最新技術與經驗,啟發與會者。
+- 會眾:參與 COSCUP 的開發者、使用者和推廣者,他們透過活動學習、交流並建立人脈,推動自由及開放原始碼的普及。
+- 贊助夥伴:贊助商的支持使 COSCUP 能夠免費開放給所有參與者,這些夥伴的資源和協助不僅讓活動得以順利進行,還促進了開源文化的廣泛傳播。
+
+## COSCUP 年會活動
+
+COSCUP 年會活動涵蓋多樣的形式,讓參與者能深入了解開放原始碼世界,並與來自各地的專家和社群成員交流。以下是年會中的幾項重要活動:
+
+### 主議程軌
+
+主議程軌是 COSCUP 最重要的活動之一,邀請國內外重量級講者分享最新的開源技術、專案進展與趨勢。內容涵蓋廣泛的技術領域,從軟體開發到開源專案管理,適合開發者、推廣者及使用者一同參與學習。
+
+### Lightening Talk
+
+Lightening Talk 是 COSCUP 中最受歡迎的環節之一,允許講者在短短 5 分鐘內快速分享他們的點子、專案或經驗。這種簡短有力的分享形式,讓會眾能在短時間內獲得豐富的資訊,並激發新的靈感和合作機會。
+
+### BoF / Hacking Room
+
+BoF(Birds of a Feather)及 Hacking Room 是 COSCUP 提供的社群互動空間,參與者可以根據共同的興趣或專案進行討論與合作。這些活動鼓勵自由交流,讓社群成員能夠深入討論特定議題,或動手進行程式開發與問題解決。
+
+### 形象照
+
+COSCUP 形象照活動為會眾提供專業攝影服務,參與者可以拍攝專業的形象照片作為個人品牌或職場使用。這項活動也是 COSCUP 特色之一,增添了輕鬆互動的氛圍,讓會眾在技術交流之外,也能留下專業形象的記錄。
+
+
+
+## 海內外贊助
+
+COSCUP 的成功舉辦離不開海內外企業、社群及相關產業等眾多贊助夥伴的支持與參與。他們的協助確保了年會的順利進行,使活動得以免費開放給所有參加者,並提升了內容的品質與多樣性,推動開源技術的普及與發展。
+
+我們感謝所有海內外贊助夥伴的慷慨支持。正因為有他們持續的資助,COSCUP 才能逐年擴大規模,吸引更多開源技術專家與愛好者,共同推動開源技術的進步與合作。
+
+## 活動剪影
diff --git a/package.json b/package.json
index ac5f7a9..7eba2b2 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"calendar-link": "^2.7.0",
"leaflet": "^1.9.4",
"osmtogeojson": "3.0.0-beta.5",
+ "swiper": "^11.1.12",
"vue": "^3.4.37"
},
"devDependencies": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f9883d0..1dc7016 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -20,6 +20,9 @@ importers:
osmtogeojson:
specifier: 3.0.0-beta.5
version: 3.0.0-beta.5
+ swiper:
+ specifier: ^11.1.12
+ version: 11.1.12
vue:
specifier: ^3.4.37
version: 3.4.37(typescript@5.5.4)
@@ -2367,6 +2370,10 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
+ swiper@11.1.12:
+ resolution: {integrity: sha512-PUkCToYAZMB4kP7z+YfPnkMHOMwMO71g8vUhz2o5INGIgIMb6Sb0XiP6cEJFsiFTd7FRDn5XCbg+KVKPDZqXLw==}
+ engines: {node: '>= 4.7.0'}
+
synckit@0.6.2:
resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==}
engines: {node: '>=12.20'}
@@ -5026,6 +5033,8 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
+ swiper@11.1.12: {}
+
synckit@0.6.2:
dependencies:
tslib: 2.6.3