Commit Graph

32 Commits

Author SHA1 Message Date
Jared Schoeny
462f82887d Clarify creator requirements and add announcement emails (#96)
* Initial draft

* docs: finalize Terms rollout dates and preserve previous version

* feat: add reusable creator announcements and Resend sending script
2026-09-25 22:42:18 -06:00
Jared Schoeny
fbe25aa4cd Add local seed data so a db reset covers current features (#91)
* Add local db seed

* Expand local db seed for main schema and dev testing fixtures.

Seed the production tag catalog, 19 hack permutations for download/version/archive flows, shared MinIO patch storage, and placehold.co cover uploads.

* Update local seed fixtures for current schema and xdelta patches.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 13:31:30 -06:00
Jared Schoeny
e0747efb82 Add Discord review threads and a Resend reply loop for submitted hacks (#76)
Some checks failed
Deploy Supabase Migrations to Production / migrate (push) Has been cancelled
* Add a Discord review thread and Resend reply loop for submitted hacks.

Admins can email submitters from a forum thread and inbound replies land back in that same thread.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add an admin endpoint to register Discord guild commands.

Local still uses the npm script; production can hit /api/discord/register while logged in as an admin.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add an admin backup to create a missing Discord review thread.

If submit fails to open a thread, an admin can create one from the hack details menu.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Match inbound review replies when the plus-address token is lowercased.

Mail delivers To in lowercase, so tokens are now hex and lookups are case-insensitive.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Use distinct review embeds for /reply and inbound creator mail.

/reply posts a green embed with subject, Discord avatar, and the creator username; thread replies drop the To field.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Gate /reply by Discord role and mark inbound From as verified.

DISCORD_REPLY_ROLE_IDS is required; creator mail still posts when the address does not match the account.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Retry inbound review mail when Discord does not post the embed.

A failed thread post no longer records the email as processed or returns 200 to Resend.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Notify the admin webhook when a review thread cannot be loaded.

Patch upload no longer stays silent if getHackReviewThread throws.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Keep the /reply ack honest after the review email is sent.

A later Discord or deferred-response failure no longer claims the email failed.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Make the admin review message stand out in the reply email.

The quote sits in a rose-tinted box so it is not just another paragraph.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Tag review threads as claimed or unclaimed and announce claims.

New and backup-created threads get the matching forum tag; dashboard claims swap Unclaimed to Claimed.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 22:07:33 -06:00
Jared Schoeny
4d07738144 Add 500K celebration changes 2026-07-11 09:40:11 -06:00
Jared Schoeny
d9986e6af8 Use url params to persist Discover state (#63)
* Persist Discover state in url query params

* Add button to copy link to current discover state

* Make tags clickable in hack detail page

* Improve CollapsibleTags styling
2026-07-07 12:53:27 -06:00
Jared Schoeny
6e17c5fbf6 Send email to user on hack approval (#61)
* Add MJML and hack-approved email template

* Move email sending to util file

* Add trigger to send hack approved email

* Fix replyTo contact form regression

* Add email subject sanitization

* Adjust subject of hack approval email

* Use singleton for mail transporter

* Fix wrong replyTo restoration
2026-06-13 13:25:55 -06:00
Jared Schoeny
5fc3a45ade Update FAQ with more info 2026-05-29 13:03:01 -06:00
Jared Schoeny
4117d4a220 Add BaseRomErrorModal on bad rom selections 2026-05-22 23:37:28 -06:00
Jared Schoeny
ace34c4408 Add central Markdown component with spoiler support 2025-12-27 16:10:11 -10:00
jschoeny
93d8b83e7c Add basic anonymous analytics 2025-12-17 01:12:02 -10:00
Jared Schoeny
3becfbd1ad Add Cloudflare Turnstile for login/signup 2025-12-13 16:32:32 -10:00
Jared Schoeny
1942c95657 Update next to ^15.5.8 2025-12-13 14:13:57 -10:00
Jared Schoeny
e6de329a32 Change rom-patcher-js to not use patch-package 2025-12-10 01:28:09 -10:00
Jared Schoeny
8cc0160b41 Update packages from Dependabot alerts 2025-12-10 00:31:32 -10:00
Jared Schoeny
994bebe7a3 Update to Next 15.5.7 and React 19.1.2 2025-12-04 09:49:27 -10:00
Jared Schoeny
b8cefaa3d3 Fix db:pull script not updating types 2025-11-28 18:27:16 -10:00
Jared Schoeny
c7a174fea0 Add Discord admin webhook notifications 2025-11-07 17:50:20 -10:00
Jared Schoeny
3bbbc40253 Add contact page and form 2025-11-06 01:34:04 -10:00
Jared Schoeny
b5857bda4c Add support for static invite codes through edge config 2025-11-05 23:25:35 -10:00
Jared Schoeny
cecfd49b91 Improve SEO of hack pages 2025-11-03 18:40:21 -10:00
Jared Schoeny
04229b2a00 Add dashboard and hack insights 2025-11-03 16:25:53 -10:00
Jared Schoeny
239fb4c35c Fix db:pull npm script 2025-10-31 11:09:45 -10:00
Jared Schoeny
550e232390 Add Terms of Service 2025-10-31 01:12:27 -10:00
Jared Schoeny
27f920b905 Add anchor link support to markdown headers 2025-10-27 20:32:44 -10:00
Jared Schoeny
f486ecbabc Change db:pull script to gen types from local 2025-10-24 14:37:24 -10:00
Jared Schoeny
8f98287505 Refactor tag filters to dropdowns 2025-10-21 22:50:29 -10:00
Jared Schoeny
e3f4304525 Refactor and implement submit form functionality 2025-10-15 13:57:26 -10:00
Jared Schoeny
be00bea7d5 Add db:pull script 2025-10-11 12:39:50 -10:00
Jared Schoeny
210a987a45 Implement Supabase Auth with auth pages 2025-10-08 16:04:55 -10:00
Jared Schoeny
a3a68aae77 Add patching support using RomPatcher.js (with example patch file) 2025-10-07 13:07:25 -10:00
Jared Schoeny
64ee43d409 Initial mockup commit 2025-10-07 02:06:46 -10:00
Jared Schoeny
65cf2d5a46 Initial commit from Create Next App 2025-10-03 01:04:22 -10:00