This is an app for playing unlimited crossword minis, built with Svelte and AWS Amplify.
To install dependencies, run:
npm ciYou'll need to configure your environment variables. First copy from the example
cp .env.example .envThen fill in the desired environment variable values. There should be comments in the .env.example file that indicate how to get the values that you should set.
First, you'll want to set up a development sandbox in your AWS account. You can do that by running:
npm run sandboxin a terminal tab. This process will watch for changes in the amplify/ directory and apply them to your AWS backend resources. This includes auth (Cognito), storage (S3), and api (AppSync/DynamoDb) resources.
Once your resources are deployed, a file named src/amplify_outputs.json will be written. Now your app will use the AWS resources you've just deployed.
Start by seeding your database:
npm run seedStart a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --openNow you can open http://localhost:5175/ to see your app in action (including hot reloading as you update the source code).
To delete a user account (for GDPR/privacy requests):
# Dry-run mode (shows what would be deleted, but doesn't delete):
npx tsx delete-user-account.ts user@example.com
# Actually delete the account:
DRY_RUN=false npx tsx delete-user-account.ts user@example.comThis script will:
- Find the user in Cognito by email
- Find their profile and completed puzzles in the SQL database
- Show what will be deleted (dry-run mode by default)
- Delete all user data when
DRY_RUN=false(puzzles first, then profile, then Cognito account)
Make sure your .env file has SQL_CONNECTION_STRING and COGNITO_USER_POOL_ID configured.
Deploy this application to your own AWS account in one click: