diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..abe8b76
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+ko_fi: jaywcjlove
+buy_me_a_coffee: jaywcjlove
+custom: ["https://www.paypal.me/kennyiseeyou", "https://jaywcjlove.github.io/#/sponsor"]
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..d688a3a
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,51 @@
+name: CI/CD
+on:
+ push:
+ branches:
+ - main
+
+jobs:
+ build-deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ registry-url: 'https://registry.npmjs.org'
+
+ - name: Create idoc config.
+ run: |
+ cat > idoc.yml << EOF
+ site: "Xcode Tips"
+ description: Xcode Tips
+ keywords: Xcode Tips
+ openSource: https://github.com/jaywcjlove/xcode-tips
+ homepage: https://wangchujiang.com/xcode-tips/
+ tocs: false
+ element:
+ wrapper: style=max-width:720px;
+ menus:
+ Home: index.html
+ Apps:
+ url: https://wangchujiang.com/#/app
+ target: __blank
+ About:
+ url: https://wangchujiang.com/#/about
+ target: __blank
+ footer: |
+ Projects •
+ Sponsor •
+ More Apps
+ Generated by idoc v{{idocVersion}}
+ EOF
+
+ - run: npm install idoc@1 -g
+ - run: idoc
+
+ - name: Deploy
+ uses: peaceiris/actions-gh-pages@v4
+ with:
+ commit_message: ${{ github.event.head_commit.message }}
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_dir: ./dist
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..feb7f0f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+Xcode Tips
+===
+