Skip to content

Commit 20a1c8e

Browse files
committed
feat: setup GA and AdSense
1 parent baae8dd commit 20a1c8e

27 files changed

Lines changed: 1069 additions & 797 deletions

.github/workflows/deploy.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: ["main"]
6+
pull_request:
7+
branches: ["main"]
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
concurrency:
15+
group: "pages"
16+
cancel-in-progress: false
17+
18+
jobs:
19+
build:
20+
runs-on: ubuntu-latest
21+
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v4
25+
26+
- name: Setup Node.js
27+
uses: actions/setup-node@v4
28+
with:
29+
node-version: "18"
30+
cache: "npm"
31+
32+
- name: Install dependencies
33+
run: npm ci
34+
35+
- name: Create .env file
36+
run: |
37+
echo "VITE_GA4_ENABLED=true" >> .env
38+
echo "VITE_GA4_MEASUREMENT_ID=G-Y8CJ897DR7" >> .env
39+
echo "VITE_ADSENSE_ENABLED=true" >> .env
40+
echo "VITE_ADSENSE_PUBLISHER_ID=ca-pub-9436560391944255" >> .env
41+
echo "VITE_GA4_API_ENABLED=false" >> .env
42+
43+
- name: Build
44+
run: npm run build
45+
46+
- name: Setup Pages
47+
uses: actions/configure-pages@v4
48+
49+
- name: Upload artifact
50+
uses: actions/upload-pages-artifact@v3
51+
with:
52+
path: "./dist"
53+
54+
deploy:
55+
environment:
56+
name: github-pages
57+
url: ${{ steps.deployment.outputs.page_url }}
58+
runs-on: ubuntu-latest
59+
needs: build
60+
steps:
61+
- name: Deploy to GitHub Pages
62+
id: deployment
63+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ dist
1212
dist-ssr
1313
*.local
1414

15+
# Environment variables
16+
.env
17+
.env.local
18+
.env.development.local
19+
.env.test.local
20+
.env.production.local
21+
1522
# Editor directories and files
1623
.vscode/*
1724
!.vscode/extensions.json

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
# DevToolKit - Essential Developer Utilities
22

3+
> [https://devtoolkit.mingrammer.com](https://devtoolkit.mingrammer.com)
4+
35
A comprehensive collection of free online tools designed to make developers' lives easier. All tools work entirely in your browser without requiring any downloads or installations.
46

7+
<a href="https://www.buymeacoffee.com/mingrammer"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=mingrammer&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff" /></a>
8+
59
## Available Tools
610

711
### 📝 Text Processing
@@ -80,7 +84,3 @@ Contributions are welcome! Feel free to:
8084
## License
8185

8286
This project is open source and available under the MIT License.
83-
84-
---
85-
86-
**Made with ❤️ for developers by developers**

index.html

Lines changed: 81 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -4,79 +4,106 @@
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
66
<title>DevToolKit - Essential Developer Utilities & Tools</title>
7-
<meta name="description" content="Free online developer tools including JSON formatter, UUID generator, Base64 converter, QR code generator, password generator, and more. Essential utilities for developers." />
7+
<meta
8+
name="description"
9+
content="Free online developer tools including JSON formatter, UUID generator, Base64 converter, QR code generator, password generator, and more. Essential utilities for developers."
10+
/>
811
<meta name="author" content="DevToolKit" />
9-
<meta name="keywords" content="developer tools, JSON formatter, UUID generator, Base64 converter, QR code generator, password generator, regex tester, markdown viewer, hash generator, case converter, Lorem Ipsum, text tools, encoding tools, data format converter, 개발자 도구, JSON 포맷터, UUID 생성기" />
12+
<meta
13+
name="keywords"
14+
content="developer tools, JSON formatter, UUID generator, Base64 converter, QR code generator, password generator, regex tester, markdown viewer, hash generator, case converter, Lorem Ipsum, text tools, encoding tools, data format converter, 개발자 도구, JSON 포맷터, UUID 생성기"
15+
/>
1016

1117
<!-- Open Graph / Facebook -->
1218
<meta property="og:type" content="website" />
13-
<meta property="og:url" content="https://devtoolkit.com/" />
14-
<meta property="og:title" content="DevToolKit - Essential Developer Utilities & Tools" />
15-
<meta property="og:description" content="Free online developer tools including JSON formatter, UUID generator, Base64 converter, and more. Essential utilities for developers." />
16-
<meta property="og:image" content="https://devtoolkit.com/og-image.png" />
19+
<meta property="og:url" content="https://devtoolkit.mingrammer.com/" />
20+
<meta
21+
property="og:title"
22+
content="DevToolKit - Essential Developer Utilities & Tools"
23+
/>
24+
<meta
25+
property="og:description"
26+
content="Free online developer tools including JSON formatter, UUID generator, Base64 converter, and more. Essential utilities for developers."
27+
/>
28+
<meta
29+
property="og:image"
30+
content="https://devtoolkit.mingrammer.com/og-image.png"
31+
/>
1732
<meta property="og:site_name" content="DevToolKit" />
1833

1934
<!-- Twitter -->
2035
<meta name="twitter:card" content="summary_large_image" />
21-
<meta name="twitter:url" content="https://devtoolkit.com/" />
22-
<meta name="twitter:title" content="DevToolKit - Essential Developer Utilities & Tools" />
23-
<meta name="twitter:description" content="Free online developer tools including JSON formatter, UUID generator, Base64 converter, and more." />
24-
<meta name="twitter:image" content="https://devtoolkit.com/og-image.png" />
36+
<meta name="twitter:url" content="https://devtoolkit.mingrammer.com/" />
37+
<meta
38+
name="twitter:title"
39+
content="DevToolKit - Essential Developer Utilities & Tools"
40+
/>
41+
<meta
42+
name="twitter:description"
43+
content="Free online developer tools including JSON formatter, UUID generator, Base64 converter, and more."
44+
/>
45+
<meta
46+
name="twitter:image"
47+
content="https://devtoolkit.mingrammer.com/og-image.png"
48+
/>
2549

2650
<!-- Additional SEO -->
27-
<link rel="canonical" href="https://devtoolkit.com/" />
51+
<link rel="canonical" href="https://devtoolkit.mingrammer.com/" />
2852
<meta name="robots" content="index, follow" />
2953
<meta name="googlebot" content="index, follow" />
30-
54+
3155
<!-- Language alternates -->
32-
<link rel="alternate" hreflang="en" href="https://devtoolkit.com/" />
33-
<link rel="alternate" hreflang="ko" href="https://devtoolkit.com/" />
34-
<link rel="alternate" hreflang="x-default" href="https://devtoolkit.com/" />
56+
<link
57+
rel="alternate"
58+
hreflang="en"
59+
href="https://devtoolkit.mingrammer.com/"
60+
/>
61+
<link
62+
rel="alternate"
63+
hreflang="ko"
64+
href="https://devtoolkit.mingrammer.com/"
65+
/>
66+
<link
67+
rel="alternate"
68+
hreflang="x-default"
69+
href="https://devtoolkit.mingrammer.com/"
70+
/>
3571

3672
<!-- Favicon -->
3773
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
3874
<link rel="icon" type="image/png" href="/favicon.png" />
39-
75+
4076
<!-- Structured Data -->
4177
<script type="application/ld+json">
42-
{
43-
"@context": "https://schema.org",
44-
"@type": "WebApplication",
45-
"name": "DevToolKit",
46-
"description": "Essential online developer utilities and tools",
47-
"url": "https://devtoolkit.com",
48-
"applicationCategory": "DeveloperApplication",
49-
"operatingSystem": "Any",
50-
"offers": {
51-
"@type": "Offer",
52-
"price": "0",
53-
"priceCurrency": "USD"
54-
},
55-
"featureList": [
56-
"JSON Formatter/Validator",
57-
"UUID Generator",
58-
"Base64 Converter",
59-
"QR Code Generator",
60-
"Password Generator",
61-
"Hash Generator",
62-
"Regex Tester",
63-
"Markdown Viewer",
64-
"Case Converter",
65-
"Lorem Ipsum Generator",
66-
"Word Counter",
67-
"Data Format Converters"
68-
]
69-
}
78+
{
79+
"@context": "https://schema.org",
80+
"@type": "WebApplication",
81+
"name": "DevToolKit",
82+
"description": "Essential online developer utilities and tools",
83+
"url": "https://devtoolkit.mingrammer.com",
84+
"applicationCategory": "DeveloperApplication",
85+
"operatingSystem": "Any",
86+
"offers": {
87+
"@type": "Offer",
88+
"price": "0",
89+
"priceCurrency": "USD"
90+
},
91+
"featureList": [
92+
"JSON Formatter/Validator",
93+
"UUID Generator",
94+
"Base64 Converter",
95+
"QR Code Generator",
96+
"Password Generator",
97+
"Hash Generator",
98+
"Regex Tester",
99+
"Markdown Viewer",
100+
"Case Converter",
101+
"Lorem Ipsum Generator",
102+
"Word Counter",
103+
"Data Format Converters"
104+
]
105+
}
70106
</script>
71-
72-
<!-- Google Analytics (placeholder) -->
73-
<!-- <script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
74-
<script>
75-
window.dataLayer = window.dataLayer || [];
76-
function gtag(){dataLayer.push(arguments);}
77-
gtag('js', new Date());
78-
gtag('config', 'GA_MEASUREMENT_ID');
79-
</script> -->
80107
</head>
81108

82109
<body>
@@ -85,4 +112,4 @@
85112
<script src="https://cdn.gpteng.co/gptengineer.js" type="module"></script>
86113
<script type="module" src="/src/main.tsx"></script>
87114
</body>
88-
</html>
115+
</html>

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
"dev": "vite",
88
"build": "vite build",
99
"build:dev": "vite build --mode development",
10-
"lint": "eslint .",
11-
"preview": "vite preview"
10+
"build:gh-pages": "vite build --mode production",
11+
"preview": "vite preview",
12+
"lint": "eslint ."
1213
},
1314
"dependencies": {
1415
"@hookform/resolvers": "^3.9.0",

public/robots.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ User-agent: *
22
Allow: /
33

44
# Sitemap
5-
Sitemap: https://devtoolkit.com/sitemap.xml
5+
Sitemap: https://devtoolkit.mingrammer.com/sitemap.xml
66

77
# Specific crawler rules
88
User-agent: Googlebot

0 commit comments

Comments
 (0)