Skip to content

feat: add community event submissions - #22

Open
Elvis020 wants to merge 1 commit into
mainfrom
feature/community-event-submissions
Open

feat: add community event submissions#22
Elvis020 wants to merge 1 commit into
mainfrom
feature/community-event-submissions

Conversation

@Elvis020

@Elvis020 Elvis020 commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a simple public event submission flow to DevCongress and sends proposals to Events Management for organizer review.

What changed

  • Adds a three-step event form with inline validation, custom date/time zone/type controls, draft recovery, navigation warnings, and Turnstile.
  • Consolidates public discovery under Events and adds the create-event entry points.
  • Loads published events from the generic EMS events feed, with the existing meetup content as a build fallback.
  • Preserves the permanent community-first Support Us and Join Slack navbar actions; no event-submission CTA is added during beta.
  • Adds one fail-closed build-time switch for the direct-link beta form.
  • Keeps the static site refreshed through pushes, manual runs, and the daily 06:17 UTC build.

Submission lifecycle

  1. A visitor completes the form and passes Turnstile.
  2. The website sends the proposal to the EMS public submissions endpoint.
  3. EMS validates the request, applies rate limits, saves it as pending, and queues a receipt email.
  4. An organizer reviews it in the EMS submissions queue.

Approval

  • EMS idempotently promotes the proposal to a published community event.
  • An approval email is queued for the submitter.
  • It becomes available through the public events API and appears on the static website after its next build.

Rejection

  • The organizer selects a reason and can add a submitter-facing message plus a private internal note.
  • EMS records the rejection and queues the rejection email.
  • No public event is created.

Email delivery is handled through the EMS outbox, so failed sends can be retried without repeating the moderation action.

Minimal launch plan

The launch control is a GitHub Actions repository variable consumed by both static deployment workflows:

Stage PUBLIC_EVENT_SUBMISSIONS_ENABLED Result
Disabled/default false or unset /events/submit/ redirects to /events/.
Private beta true The direct form URL works and remains noindex; the website renders no submission CTA.

For beta, share the direct URL with selected testers and monitor successful/failed submissions, Turnstile and rate-limit errors, moderation workload, and receipt/approval/rejection emails. To stop website submissions, set the variable to false and rerun both production workflows. The permanent public entry point will be chosen after beta.

Architecture note

The EMS origin is intentionally hard-coded as https://em.devcongress.org for now. It is a public origin, not a secret.

Removing it from source would require additional setup: build-time repository variables for Astro, a runtime variable plus a Worker entrypoint/proxy because the current Worker is static-assets-only, and corresponding local configuration. Reviewer input is requested before introducing that deployment architecture.

Screenshots

1. Event details

Event details

2. Place and time

Place and time

3. Contact and human check

Contact and human check

4. Submitted for review

Submitted for review

Verification

  • pnpm exec tsc --noEmit
  • Enabled beta build with no submission CTA and an active noindex form
  • Disabled build with the submission route redirected to Events
  • pnpm deploy:dry-run
  • Manual submission through the deployed EMS endpoint and Turnstile to the success state

@Elvis020
Elvis020 requested a review from bubunyo August 2, 2026 21:45
Comment thread src/components/Navbar.astro Outdated
Comment on lines +14 to +15
<a href="/events/submit/" class="btn btn-yellow">
Create an event

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should not remove the 2 current main items. Remember we are a community first.

Also, this should not be the way we launch this. Lets come up with a minimal launch plan at least. we can gate this button and release this for some public beta.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, i will bring it back, removed it because i thought it looked redundant since it's already in the hero section...

I have added a Minimal launch plan in the description as well

@Elvis020
Elvis020 force-pushed the feature/community-event-submissions branch 2 times, most recently from 17f11aa to 5deee63 Compare August 4, 2026 09:40
- add a validated three-step public event submission flow with app-styled date, time zone, and event type controls
- protect submissions with Turnstile, draft recovery, inline errors, and unsaved-change navigation warnings
- consolidate public discovery around Events while preserving the permanent community-first Support Us and Join Slack navbar actions
- keep the beta form focused by exposing only the home logo in its header and no public submission CTA
- add a fail-closed build-time switch that enables the noindex beta form only through its direct URL
- document launch configuration, the daily static refresh, and the four reviewed submission-flow screenshots

Verification:
- pnpm exec tsc --noEmit
- enabled beta build with no submission CTA and an active noindex form
- disabled build with the submission route redirected to Events
- pnpm deploy:dry-run
@Elvis020
Elvis020 force-pushed the feature/community-event-submissions branch from 5deee63 to e0f11e3 Compare August 4, 2026 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants