Replace redundant assets, switch to Node adapter, and streamline "Resolution" content and dependencies.
|
|
@ -1,89 +1,100 @@
|
|||
# Resolution
|
||||
|
||||
**Bet on yourself. When others quit, their stakes become your reward.**
|
||||
**A Hack Club program where you set goals, ship every week, and earn prizes for following through.**
|
||||
|
||||
## What is Resolution?
|
||||
|
||||
Resolution is an 8-week goal-setting challenge where you stake real money on yourself and compete against your own limits. Pick your workshops, commit your time, and prove you can follow through. Those who finish win; those who quit fund the winners.
|
||||
Resolution is an 8-week personal goal-setting challenge for teenage hackers. Pick workshops that align with what you want to learn or build, commit to a weekly time investment, and earn prizes for every week you follow through. Hack Club funds the prize pool — you just bring the dedication.
|
||||
|
||||
---
|
||||
|
||||
## How It Works
|
||||
|
||||
1. **Choose Your Workshops** — Pick up to 3 workshops based on your goals and availability (max one 3-star to prevent burnout)
|
||||
2. **Stake Your Money** — Put skin in the game. Your stake is your commitment
|
||||
3. **Complete Weekly Goals** — Each week you hit your targets, you unlock part of your stake
|
||||
4. **Earn Weekly Prizes** — Stickers, exclusive rewards, and recognition for staying on track
|
||||
5. **Claim Your Reward** — Finish strong and take home your stake plus a share of the pot from those who didn't make it
|
||||
1. **RSVP & Choose Your Workshops** — Sign up and pick up to 3 workshops based on your goals (max one 3-star to keep it sustainable)
|
||||
2. **Commit Your Time** — Each workshop tier has a weekly time commitment you agree to
|
||||
3. **Ship Weekly** — Complete your weekly goals and show what you built
|
||||
4. **Earn Weekly Prizes** — Get stickers, swag, and recognition for staying on track
|
||||
5. **Finish Strong** — Complete all 8 weeks and claim your final reward from the prize pool
|
||||
|
||||
---
|
||||
|
||||
## Workshop Tiers
|
||||
|
||||
| Tier | Time Commitment | Duration | Stake |
|
||||
|------|-----------------|----------|-------|
|
||||
| Tier | Weekly Commitment | Duration | Prize Pool Per Workshop |
|
||||
|------|-------------------|----------|-------------------------|
|
||||
| ⭐ One Star | ~2 hours/week | 8 weeks | $80 |
|
||||
| ⭐⭐ Two Star | ~5 hours/week | 8 weeks | $200 |
|
||||
| ⭐⭐⭐ Three Star | ~9 hours/week | 8 weeks | $360 |
|
||||
|
||||
### Stake Breakdown
|
||||
- **Per Workshop** — Each stake amount is per workshop, not total
|
||||
- **Max 3 Workshops** — Choose up to 3 workshops to challenge yourself
|
||||
- **One 3-Star Max** — To prevent going insane 🌀
|
||||
### Rules
|
||||
- **Max 3 workshops** — Choose up to 3 workshops to challenge yourself
|
||||
- **Max 1 three-star** — To prevent burnout 🌀
|
||||
- Prize amounts are **per workshop**, calculated at ~$5/hour of committed time
|
||||
|
||||
---
|
||||
|
||||
## The Economics
|
||||
## The Prize Pool Economics
|
||||
|
||||
The magic happens because **not everyone finishes**.
|
||||
Here's where it gets interesting: **not everyone finishes**.
|
||||
|
||||
- Stakes are calculated at **$5/hour** of committed time
|
||||
- When someone quits or misses their goals, their remaining stake flows to those who stayed the course
|
||||
- The fewer people who finish, the bigger the pot for winners
|
||||
- This creates real incentive to keep going when things get tough
|
||||
When someone drops out or misses their weekly goals, their allocated prize budget gets redistributed to those who stayed the course. The fewer people who make it to the end, the bigger the reward for those who do.
|
||||
|
||||
### Example
|
||||
If 10 people join a Two Star workshop ($200 each = $2,000 pool) and only 6 finish:
|
||||
- 4 quitters forfeit their remaining stakes
|
||||
- Those funds get distributed to the 6 finishers
|
||||
- Winners get their original stake back **plus** bonus rewards
|
||||
If 10 people join a Two Star workshop ($200 prize pool each = $2,000 total) and only 6 finish:
|
||||
- The 4 who dropped = $800 redistributed
|
||||
- The 6 finishers split the full $2,000 pool
|
||||
- Each finisher gets more than their original $200 share
|
||||
|
||||
This creates real incentive to keep going when things get tough — and real reward for those who do.
|
||||
|
||||
---
|
||||
|
||||
## Weekly Prizes
|
||||
|
||||
The budget isn't all for the final prize—we allocate for weekly motivation:
|
||||
The budget isn't all saved for the end. We allocate for weekly motivation:
|
||||
|
||||
- **Custom Stickers** — Dope art like Siege did
|
||||
- **Milestone Rewards** — Recognition for hitting weekly targets
|
||||
- **Custom Stickers** — Dope art (like Siege!)
|
||||
- **Milestone Recognition** — Shoutouts and badges for hitting weekly targets
|
||||
- **Progress Tracking** — Visual proof of your consistency
|
||||
|
||||
Without weekly incentives, there's no way to keep people going. The journey matters as much as the destination.
|
||||
Without weekly incentives, momentum dies. The journey matters as much as the destination.
|
||||
|
||||
---
|
||||
|
||||
## Rules
|
||||
## What Makes This Different
|
||||
|
||||
1. You're competing against **yourself**, not others
|
||||
2. Miss a week = forfeit that portion of your stake
|
||||
3. Complete all 8 weeks = full stake returned + share of the pot
|
||||
4. Max 3 workshops total
|
||||
5. Max 1 three-star workshop (sanity protection)
|
||||
This isn't a course you forget about. It's not a tutorial you never finish. It's a **challenge with real stakes**:
|
||||
|
||||
- **Weekly accountability** — You can't coast until the end
|
||||
- **Visible progress** — Ship something every week
|
||||
- **Community** — You're not doing this alone
|
||||
- **Real rewards** — Funded by Hack Club, earned by you
|
||||
- **Dropout dynamics** — Others dropping out means more for you
|
||||
|
||||
---
|
||||
|
||||
## Why This Works
|
||||
## Inspired By
|
||||
|
||||
This isn't a subscription you forget about. It's not a course you never finish. It's a **bet on your future self** with real consequences and real rewards.
|
||||
Resolution follows the Hack Club model of programs like:
|
||||
- **Siege** — Ship a project every week, earn prizes, make it to the end and get a Framework laptop
|
||||
- **High Seas** — Ship projects, earn doubloons, trade for prizes
|
||||
- **Summer of Making** — Build all summer, earn gear and recognition
|
||||
|
||||
The model works because:
|
||||
- **Skin in the game** — You've got money on the line
|
||||
- **Weekly accountability** — Can't coast until the end
|
||||
- **Shared stakes** — Others' failures become your gains
|
||||
- **Community pressure** — You're not alone in this
|
||||
These programs prove that when you give teenagers real incentives and a community, incredible things get built.
|
||||
|
||||
---
|
||||
|
||||
## Who Is This For?
|
||||
|
||||
- Teenage hackers (18 and under) who want to:
|
||||
- Build consistent habits
|
||||
- Learn new skills through doing
|
||||
- Ship real projects
|
||||
- Earn prizes along the way
|
||||
- Be part of a community that keeps them accountable
|
||||
|
||||
---
|
||||
|
||||
## Ready?
|
||||
|
||||
**RSVP now and stake your claim.**
|
||||
**RSVP now. Pick your workshops. Start shipping.**
|
||||
|
|
|
|||
240
resolution-frontend/package-lock.json
generated
|
|
@ -13,6 +13,7 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-auto": "^7.0.0",
|
||||
"@sveltejs/adapter-node": "^5.4.0",
|
||||
"@sveltejs/kit": "^2.49.1",
|
||||
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
||||
"@types/dompurify": "^3.2.0",
|
||||
|
|
@ -507,6 +508,112 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@rollup/plugin-commonjs": {
|
||||
"version": "28.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.9.tgz",
|
||||
"integrity": "sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@rollup/pluginutils": "^5.0.1",
|
||||
"commondir": "^1.0.1",
|
||||
"estree-walker": "^2.0.2",
|
||||
"fdir": "^6.2.0",
|
||||
"is-reference": "1.2.1",
|
||||
"magic-string": "^0.30.3",
|
||||
"picomatch": "^4.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.0.0 || 14 >= 14.17"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"rollup": "^2.68.0||^3.0.0||^4.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"rollup": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/plugin-commonjs/node_modules/is-reference": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
|
||||
"integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/estree": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/plugin-json": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
|
||||
"integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@rollup/pluginutils": "^5.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"rollup": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/plugin-node-resolve": {
|
||||
"version": "16.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz",
|
||||
"integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@rollup/pluginutils": "^5.0.1",
|
||||
"@types/resolve": "1.20.2",
|
||||
"deepmerge": "^4.2.2",
|
||||
"is-module": "^1.0.0",
|
||||
"resolve": "^1.22.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"rollup": "^2.78.0||^3.0.0||^4.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"rollup": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/pluginutils": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
|
||||
"integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/estree": "^1.0.0",
|
||||
"estree-walker": "^2.0.2",
|
||||
"picomatch": "^4.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"rollup": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||
"version": "4.54.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz",
|
||||
|
|
@ -834,6 +941,22 @@
|
|||
"@sveltejs/kit": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@sveltejs/adapter-node": {
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-5.4.0.tgz",
|
||||
"integrity": "sha512-NMsrwGVPEn+J73zH83Uhss/hYYZN6zT3u31R3IHAn3MiKC3h8fjmIAhLfTSOeNHr5wPYfjjMg8E+1gyFgyrEcQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@rollup/plugin-commonjs": "^28.0.1",
|
||||
"@rollup/plugin-json": "^6.1.0",
|
||||
"@rollup/plugin-node-resolve": "^16.0.0",
|
||||
"rollup": "^4.9.5"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@sveltejs/kit": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@sveltejs/kit": {
|
||||
"version": "2.49.2",
|
||||
"dev": true,
|
||||
|
|
@ -927,6 +1050,13 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/resolve": {
|
||||
"version": "1.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
|
||||
"integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/trusted-types": {
|
||||
"version": "2.0.7",
|
||||
"license": "MIT",
|
||||
|
|
@ -1022,6 +1152,13 @@
|
|||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/commondir": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
|
||||
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/cookie": {
|
||||
"version": "0.6.0",
|
||||
"dev": true,
|
||||
|
|
@ -1119,6 +1256,13 @@
|
|||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
}
|
||||
},
|
||||
"node_modules/estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
||||
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/event-target-shim": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
|
||||
|
|
@ -1156,6 +1300,52 @@
|
|||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/function-bind": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
||||
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/hasown": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
|
||||
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"function-bind": "^1.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/is-core-module": {
|
||||
"version": "2.16.1",
|
||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
|
||||
"integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"hasown": "^2.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/is-module": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
|
||||
"integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/is-reference": {
|
||||
"version": "3.0.3",
|
||||
"dev": true,
|
||||
|
|
@ -1249,6 +1439,13 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/path-parse": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.1.1",
|
||||
"dev": true,
|
||||
|
|
@ -1258,7 +1455,6 @@
|
|||
"version": "4.0.3",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
|
|
@ -1305,6 +1501,27 @@
|
|||
"url": "https://paulmillr.com/funding/"
|
||||
}
|
||||
},
|
||||
"node_modules/resolve": {
|
||||
"version": "1.22.11",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
|
||||
"integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"is-core-module": "^2.16.1",
|
||||
"path-parse": "^1.0.7",
|
||||
"supports-preserve-symlinks-flag": "^1.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"resolve": "bin/resolve"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.54.0",
|
||||
"dev": true,
|
||||
|
|
@ -1382,6 +1599,19 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-preserve-symlinks-flag": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
||||
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/svelte": {
|
||||
"version": "5.46.1",
|
||||
"dev": true,
|
||||
|
|
@ -1472,14 +1702,6 @@
|
|||
"node": ">=14.17"
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "7.16.0",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
|
||||
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "7.3.0",
|
||||
"dev": true,
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-auto": "^7.0.0",
|
||||
"@sveltejs/adapter-node": "^5.4.0",
|
||||
"@sveltejs/kit": "^2.49.1",
|
||||
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
||||
"@types/dompurify": "^3.2.0",
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 427 KiB |
|
Before Width: | Height: | Size: 313 KiB |
|
Before Width: | Height: | Size: 772 KiB |
|
Before Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 3.3 MiB |
|
|
@ -1,3 +0,0 @@
|
|||
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 1134 10" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path id="Vector 5" d="M0 5H1134" stroke="var(--stroke-0, #91C8FF)" stroke-width="10"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 175 KiB |
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 8.9 MiB |
|
Before Width: | Height: | Size: 21 MiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 878 KiB |
|
Before Width: | Height: | Size: 1 MiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 20 MiB |
|
Before Width: | Height: | Size: 724 KiB |
|
Before Width: | Height: | Size: 10 MiB |
|
|
@ -1,5 +1,5 @@
|
|||
<script lang="ts">
|
||||
import note1 from '$lib/assets/3a0136d1eb0536a623e080cb952a19b2a87af70f.png';
|
||||
import note1 from '$lib/assets/sticky_note_1.png';
|
||||
|
||||
let {
|
||||
title = "Event 1",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<script lang="ts">
|
||||
import note2 from '$lib/assets/b4cb411457c810c0897133da6ad9d5ae4468ea27.png';
|
||||
import note2 from '$lib/assets/sticky_note_2.png';
|
||||
|
||||
let {
|
||||
title = "Event 2"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<script lang="ts">
|
||||
import note3 from '$lib/assets/236737bf76b26382113a8a12aa20c3369b57daaa.png';
|
||||
import note3 from '$lib/assets/sticky_note_3.png';
|
||||
|
||||
let {
|
||||
title = "Event 3"
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
<script lang="ts">
|
||||
import heroBg from '$lib/assets/50921f22a05d44613c03ef40313b4bc63628a689.png';
|
||||
import darkBg from '$lib/assets/77316c3cefa69a5f71a74bfc3fbf6e3ced95c9f1.png';
|
||||
import swirlBg from '$lib/assets/7d2cd0c523acbf0e9b3b9e299fa0ef829a7b2216.png';
|
||||
import lightBlueBg from '$lib/assets/7123a57408508b2bae073d991dcf7c17c7f763db.png';
|
||||
import fireworks from '$lib/assets/e6e6af4f4af7ca8575187a49893a053c27a7a364.png';
|
||||
import sparklyBorder from '$lib/assets/17ec48a0bb8b41dcf6f66b30c45989d5bf71a03a.png';
|
||||
import fireworksGif from '$lib/assets/d1b77bc7ffefad4500eb8f570293aeb906cdd6c7.png';
|
||||
import stair from '$lib/assets/488278dc5d3cbf49ab57ddf735369a5419789dc6.png';
|
||||
import running from '$lib/assets/00918d266837a309ad05ff4cce9ab7eca6910219.png';
|
||||
import vectorLine from '$lib/assets/5dbe0fc43441b95045a7fe03b6870a2d6ca497ac.svg';
|
||||
import heroBg from '$lib/assets/hero_bg.png';
|
||||
import darkBg from '$lib/assets/dark_bg.png';
|
||||
import swirlBg from '$lib/assets/swirl_overlay.png';
|
||||
import lightBlueBg from '$lib/assets/light_blue_bg.png';
|
||||
import fireworks from '$lib/assets/firework_burst.png';
|
||||
import sparklyBorder from '$lib/assets/gold_glitter_border.png';
|
||||
import fireworksGif from '$lib/assets/fireworks_gif.png';
|
||||
import stair from '$lib/assets/stair.png';
|
||||
import running from '$lib/assets/running_person.png';
|
||||
import vectorLine from '$lib/assets/vector_divider.svg';
|
||||
|
||||
import EventCard1 from './EventCard1.svelte';
|
||||
import EventCard2 from './EventCard2.svelte';
|
||||
|
|
@ -31,13 +31,13 @@
|
|||
}
|
||||
|
||||
let {
|
||||
heroDescription = "Bet on yourself. When others quit, their stakes become your reward.",
|
||||
heroDescription = "Ship every week. Earn prizes. When others quit, their share becomes yours.",
|
||||
ctaText = "STAKE YOUR CLAIM",
|
||||
ctaHref = "/onboarding",
|
||||
steps = [
|
||||
{ title: "⭐ One Star", description: "~2hr/week • 8 weeks • $80 stake. Light commitment, real results." },
|
||||
{ title: "⭐⭐ Two Star", description: "~5hr/week • 8 weeks • $200 stake. Serious growth, bigger rewards." },
|
||||
{ title: "⭐⭐⭐ Three Star", description: "~9hr/week • 8 weeks • $360 stake. Maximum effort, maximum payout." }
|
||||
{ title: "⭐ One Star", description: "~2hr/week • 8 weeks • $80 prize pool. Light commitment, real rewards." },
|
||||
{ title: "⭐⭐ Two Star", description: "~5hr/week • 8 weeks • $200 prize pool. Serious growth, bigger prizes." },
|
||||
{ title: "⭐⭐⭐ Three Star", description: "~9hr/week • 8 weeks • $360 prize pool. Maximum effort, maximum payout." }
|
||||
] as Step[],
|
||||
events = [
|
||||
{ title: "Event 1", description: "Lorem ipsum dolor sit amet consectetur adipiscing elit" },
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
.bg-first {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background-image: url('$lib/assets/Frame 1.png');
|
||||
background-image: url('$lib/assets/onboarding_bg.png');
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@
|
|||
</script>
|
||||
|
||||
<InitialPage
|
||||
heroDescription="Bet on yourself. When others quit, their stakes become your reward."
|
||||
heroDescription="Ship every week. Earn prizes. When others quit, their share becomes yours."
|
||||
ctaText="STAKE YOUR CLAIM"
|
||||
ctaHref="/onboarding"
|
||||
steps={[
|
||||
{ title: "⭐ One Star", description: "~2hr/week • 8 weeks • $80 stake. Light commitment, real results." },
|
||||
{ title: "⭐⭐ Two Star", description: "~5hr/week • 8 weeks • $200 stake. Serious growth, bigger rewards." },
|
||||
{ title: "⭐⭐⭐ Three Star", description: "~9hr/week • 8 weeks • $360 stake. Maximum effort, maximum payout." }
|
||||
{ title: "⭐ One Star", description: "~2hr/week • 8 weeks • $80 prize pool. Light commitment, real rewards." },
|
||||
{ title: "⭐⭐ Two Star", description: "~5hr/week • 8 weeks • $200 prize pool. Serious growth, bigger prizes." },
|
||||
{ title: "⭐⭐⭐ Three Star", description: "~9hr/week • 8 weeks • $360 prize pool. Maximum effort, maximum payout." }
|
||||
]}
|
||||
events={[
|
||||
{ title: "Event 1", description: "Join our community workshop on goal setting and accountability." },
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import adapter from '@sveltejs/adapter-auto';
|
||||
import adapter from '@sveltejs/adapter-node';
|
||||
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
||||
|
||||
/** @type {import('@sveltejs/kit').Config} */
|
||||
|
|
@ -8,9 +8,7 @@ const config = {
|
|||
preprocess: vitePreprocess(),
|
||||
|
||||
kit: {
|
||||
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
|
||||
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
|
||||
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
|
||||
// adapter-node creates a standalone Node server
|
||||
adapter: adapter()
|
||||
}
|
||||
};
|
||||
|
|
|
|||