Skip to content

Commit d525fd9

Browse files
committed
chore: initial setup
1 parent a32e33c commit d525fd9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+18434
-32
lines changed

.editorconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# editorconfig.org
2+
root = true
3+
4+
[*]
5+
indent_size = 2
6+
indent_style = space
7+
end_of_line = lf
8+
charset = utf-8
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
12+
[*.md]
13+
trim_trailing_whitespace = false

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Public URL, used for OG Image when running nuxt generate
2+
NUXT_PUBLIC_SITE_URL=
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Bug Report
2+
description: File a bug report.
3+
title: "[Bug]: "
4+
labels: ["Status: Triage"]
5+
type: 🐛 Bug
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Thanks for taking the time to fill out this bug report!
11+
- type: input
12+
id: contact
13+
attributes:
14+
label: Contact Details
15+
description: How can we get in touch with you if we need more info?
16+
placeholder: ex. email@example.com
17+
validations:
18+
required: false
19+
- type: textarea
20+
id: what-happened
21+
attributes:
22+
label: What happened?
23+
description: Also tell us, what did you expect to happen?
24+
placeholder: Tell us what you see!
25+
value: "A bug happened!"
26+
validations:
27+
required: true
28+
- type: dropdown
29+
id: browsers
30+
attributes:
31+
label: What browsers are you seeing the problem on?
32+
multiple: true
33+
options:
34+
- Firefox
35+
- Chrome
36+
- Safari
37+
- Microsoft Edge
38+
- type: textarea
39+
id: logs
40+
attributes:
41+
label: Relevant log output
42+
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
43+
render: shell
44+
- type: checkboxes
45+
id: terms
46+
attributes:
47+
label: Code of Conduct
48+
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Innovae-Handlet/handlet).
49+
options:
50+
- label: I agree to follow this project's Code of Conduct
51+
required: true
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Feature Request
2+
description: Suggest a new feature.
3+
title: "[Feature]: "
4+
labels: ["Status: Triage"]
5+
type: 🏆 Feature
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Thanks for taking the time to fill out this feature request!
11+
- type: input
12+
id: contact
13+
attributes:
14+
label: Contact Details
15+
description: How can we get in touch with you if we need more info?
16+
placeholder: ex. email@example.com
17+
validations:
18+
required: false
19+
- type: textarea
20+
id: desired-solution
21+
attributes:
22+
label: What would you like to see?
23+
description: Be as detailed as possible!
24+
placeholder: I would love it if ...
25+
value: "I would love it if "
26+
validations:
27+
required: true
28+
- type: checkboxes
29+
id: terms
30+
attributes:
31+
label: Code of Conduct
32+
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Innovae-Handlet/handlet).
33+
options:
34+
- label: I agree to follow this project's Code of Conduct
35+
required: true

.github/workflows/ci.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: ci
2+
3+
on: push
4+
5+
jobs:
6+
ci:
7+
runs-on: ${{ matrix.os }}
8+
9+
strategy:
10+
matrix:
11+
os: [ubuntu-latest]
12+
node: [22]
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v5
17+
18+
- name: Install pnpm
19+
uses: pnpm/action-setup@v4
20+
21+
- name: Install node
22+
uses: actions/setup-node@v6
23+
with:
24+
node-version: ${{ matrix.node }}
25+
cache: pnpm
26+
27+
- name: Install dependencies
28+
run: pnpm install
29+
30+
- name: Lint
31+
run: pnpm run lint
32+
33+
- name: Typecheck
34+
run: pnpm run typecheck

.github/workflows/netlify.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Deploy to Netlify
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
prod:
7+
required: true
8+
type: boolean
9+
secrets:
10+
NETLIFY_AUTH_TOKEN:
11+
required: true
12+
NETLIFY_SITE_ID:
13+
required: true
14+
15+
jobs:
16+
deploy:
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
20+
21+
environment:
22+
name: ${{ github.event_name == 'pull_request' && format('preview-{0}', github.event.pull_request.number) || 'production' }}
23+
url: ${{ steps.netlify_deploy.outputs.deploy_url }}
24+
25+
steps:
26+
- name: Checkout repository
27+
uses: actions/checkout@v4
28+
29+
- name: Setup PNPM
30+
uses: pnpm/action-setup@v4
31+
with:
32+
run_install: |
33+
- args: [--global, netlify-cli]
34+
35+
- name: Setup Node.js
36+
uses: actions/setup-node@v4
37+
with:
38+
node-version: 22
39+
cache: 'pnpm'
40+
41+
- name: Install dependencies
42+
run: pnpm install --frozen-lockfile
43+
44+
- name: Deploy to Netlify
45+
id: netlify_deploy
46+
run: |
47+
if [ "${{ inputs.prod }}" == "true" ]; then
48+
echo "🚀 Production Deploy"
49+
OUTPUT=$(netlify deploy \
50+
--prod \
51+
--site="$NETLIFY_SITE_ID" \
52+
--auth="$NETLIFY_AUTH_TOKEN" \
53+
--dir=dist \
54+
--functions=.netlify/functions \
55+
2>&1 | tee /dev/stderr)
56+
URL=$(echo "$OUTPUT" | sed -nE 's/.*Deployed to production URL:[[:space:]]*([^[:space:]]*).*/\1/p')
57+
else
58+
echo "🧪 Preview Deploy"
59+
OUTPUT=$(netlify deploy \
60+
--site="$NETLIFY_SITE_ID" \
61+
--auth="$NETLIFY_AUTH_TOKEN" \
62+
--dir=dist \
63+
--functions=.netlify/functions \
64+
2>&1 | tee /dev/stderr)
65+
URL=$(echo "$OUTPUT" | sed -nE 's/.*Unique deploy URL:[[:space:]]*([^[:space:]]*).*/\1/p')
66+
fi
67+
if [ -z "$URL" ]; then
68+
echo "❌ Deploy URL not found, failing workflow."
69+
exit 1
70+
fi
71+
echo "deploy_url=$URL" >> $GITHUB_OUTPUT
72+
echo "Deployed to $URL"
73+
env:
74+
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
75+
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}

.github/workflows/preview.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Deploy Preview
2+
3+
on:
4+
pull_request:
5+
branches: ['prod']
6+
7+
jobs:
8+
netlify:
9+
uses: ./.github/workflows/netlify.yml
10+
with:
11+
prod: false
12+
secrets:
13+
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
14+
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
15+
16+
# Comment back on PR with the URL
17+
pr-comment:
18+
needs: call-base
19+
runs-on: ubuntu-latest
20+
permissions:
21+
pull-requests: write
22+
steps:
23+
- uses: marocchino/sticky-pull-request-comment@v2
24+
with:
25+
header: netlify-preview
26+
recreate: true
27+
message: |
28+
✅ Netlify Preview Ready
29+
🔗 **${{ needs.call-base.outputs.deploy_url }}**

.github/workflows/prod.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: Deploy Production
2+
3+
on:
4+
push:
5+
branches: ['prod']
6+
7+
jobs:
8+
netlify:
9+
uses: ./.github/workflows/netlify.yml
10+
with:
11+
prod: true
12+
secrets:
13+
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
14+
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}

.gitignore

Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ dist
1010
node_modules
1111

1212
# Logs
13-
*.log*
13+
logs
14+
*.log
1415

1516
# Misc
1617
.DS_Store
@@ -22,34 +23,8 @@ node_modules
2223
.env.*
2324
!.env.example
2425

25-
# Test coverage
26-
coverage
26+
# VSC
27+
.history
2728

28-
# Vercel
29-
.vercel
30-
31-
# Netlify
32-
.netlify
33-
34-
# Supabase
35-
.supabase
36-
37-
# Editor directories and files
38-
.vscode/*
39-
!.vscode/extensions.json
40-
.idea
41-
*.suo
42-
*.ntvs*
43-
*.njsproj
44-
*.sln
45-
*.sw?
46-
47-
# OS generated files
48-
Thumbs.db
49-
.DS_Store
50-
.DS_Store?
51-
._*
52-
.Spotlight-V100
53-
.Trashes
54-
ehthumbs.db
55-
Desktop.ini
29+
# Generated types
30+
shared/database-generated.types.ts

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
shamefully-hoist=true

0 commit comments

Comments
 (0)