Skip to content

feat: add 2026 registration flow with Google Sheets storage and confirmation email#891

Open
DarshanCode2005 wants to merge 86 commits intoasyncapi:masterfrom
DarshanCode2005:master
Open

feat: add 2026 registration flow with Google Sheets storage and confirmation email#891
DarshanCode2005 wants to merge 86 commits intoasyncapi:masterfrom
DarshanCode2005:master

Conversation

@DarshanCode2005
Copy link
Contributor

@DarshanCode2005 DarshanCode2005 commented Dec 23, 2025

Closes: #875

This PR introduces the Conference 2026 attendee registration flow, including backend persistence and frontend UX updates.

What’s included

  • New 2026 registration API (/api/registration/2026)

    • Validates required fields (name, email)
    • Appends submissions to a private Google Sheet using a service account
    • Captures explicit consent flags (updates opt-in, sponsor data sharing)
    • Sends a confirmation email after successful submission (non-blocking)
  • Google Sheets helper abstraction for safe append-only writes

  • Environment-based configuration for sheet ID and tab

  • Frontend form improvements:

    • Fixed button alignment and layout across steps
    • Styled Back action consistently (gray, non-primary)
    • Removed invalid anchor usage to comply with Next.js Link behavior

Why

  • Enables early collection of attendee data before ticket activation
  • Ensures consent is captured and stored explicitly
  • Keeps all submissions private and accessible only to the org team
  • Aligns UX and implementation with the existing CFP flow

Notes

  • Google Sheets access is restricted to a service account (Editor)
  • Email failures do not block successful registrations
  • .env.local and credentials are intentionally excluded from version control

Complete video of the flow: https://drive.google.com/file/d/11vWbNWZ0o3IFvmUiOKxSC1u-xg10dUzo/view?usp=sharing

@netlify
Copy link

netlify bot commented Dec 23, 2025

Deploy Preview for peaceful-ramanujan-288045 ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 32730e1
🔍 Latest deploy log https://app.netlify.com/projects/peaceful-ramanujan-288045/deploys/69b2f26b1ede1d0008f269d9
😎 Deploy Preview https://deploy-preview-891--peaceful-ramanujan-288045.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Welcome to AsyncAPI. Thanks a lot for creating your first pull request. Please check out our contributors guide useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@DarshanCode2005 DarshanCode2005 changed the title Add 2026 registration flow with Google Sheets storage and confirmation email feat: add 2026 registration flow with Google Sheets storage and confirmation email Dec 23, 2025
Copy link
Member

@AceTheCreator AceTheCreator left a comment

Choose a reason for hiding this comment

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

Hey @DarshanCode2005 👋🏽

Thanks for the contribution! Could you add a location dropdown that lists all conference locations for users to select from?

Once that’s in, I’ll review the PR 🙏🏽

@DarshanCode2005
Copy link
Contributor Author

@AceTheCreator I’ve added the location dropdown menu. Could you please take a look and let me know if it looks good to you?

@DarshanCode2005
Copy link
Contributor Author

@TenzDelek Sir , I actually went through what you have mentioned, I have understood , why it is not working, so do you want me to address it now, or after, you merge this one, and I open up another PR addressing the mail issue?

@DarshanCode2005
Copy link
Contributor Author

@TenzDelek I have addressed the issue of sending email, now working:
image

Do you think, creating a beautiful email template would be a better choice.

@DarshanCode2005
Copy link
Contributor Author

And one more thing , the back to conference button alignment is bit off, i guess. Is it intentional?
Screenshot from 2026-03-11 00-58-47

@DarshanCode2005
Copy link
Contributor Author

I mean something like the below illustration, just let me know if that sounds good to you. Actually the email code was not dead( I mean technically there was a bug), but I didn't have the clear instructions earlier , so I had just provided a bare minimum template of a basic implementation. Thanks!

If you want any changes @TenzDelek please mention.

image

@TenzDelek
Copy link
Member

@TenzDelek I have addressed the issue of sending email, now working: image

Do you think, creating a beautiful email template would be a better choice.

this looks great. no need to add illustration as for now. @thulieblack can you cross check the wording written in the mail. rest implementation seems good.

Copy link
Member

@TenzDelek TenzDelek left a comment

Choose a reason for hiding this comment

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

The code review has been approved. Once @thulieblack confirms the email template wording, we’ll be ready to move forward with the merge. Before that, let’s make sure the credentials are created. Pinging @AceTheCreator for credential setup.

@thulieblack
Copy link
Member

thulieblack commented Mar 11, 2026

@DarshanCode2005 change the wording here you go

Hi [First Name],

Thank you for registering. Your registration has been successfully received and confirmed.

We’re excited to have you join us and appreciate you taking the time to be part of the event.

In the meantime, feel free to explore the community, connect with others, and keep an eye on your inbox for upcoming announcements.

You can also join our Slack workspace for real-time updates, follow us on social media, or visit our website to stay up to date with the latest news.

If you have any questions or need assistance, don’t hesitate to reach out.

Thanks again for registering.

Best regards,

AsyncAPI Conference

@thulieblack
Copy link
Member

@TenzDelek, ping also @derberg via Slack for credentials

@DarshanCode2005
Copy link
Contributor Author

Done @thulieblack ma'am.
Screenshot from 2026-03-11 19-23-18

Copy link
Member

@thulieblack thulieblack left a comment

Choose a reason for hiding this comment

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

Over to you, Tenzin. Great work, Darshan!

@TenzDelek
Copy link
Member

@TenzDelek, ping also @derberg via Slack for credentials

done 👍

@TenzDelek
Copy link
Member

Hi all, Lukasz mentioned that he currently doesn’t have access to the AsyncAPI Google Workspace. From what I remember, I believe @AceTheCreator may have that access, especially since we had a similar implementation done earlier by @ashmit-coder for CFP.

As additional feedback, Lukasz also raised a valid point: he questioned the need to use a service like Google Sheets when there are other free tier options available, such as Supabase, which may be more suitable depending on the use case.

From my perspective, if this is going to be used by a non technical person, it makes much more sense to store it in a sheet.

I’d love to hear your thoughts on this, @AceTheCreator and @thulieblack.

@thulieblack
Copy link
Member

Explore the options if they're free and let us know which would suit with pros and cons.

@DarshanCode2005
Copy link
Contributor Author

Supabase has a generous free tier. I’ve used it previously while building a conference registration portal for a college research conference organized by the Department of Earthquake Engineering (https://iitr.ac.in/18see/). Google Sheets can sometimes hit rate limits, although it works well if the number of attendees is relatively small. In my case, that conference only happens once every four years, so using either option would have been manageable.
However, for AsyncAPI, since conferences are recurring, Supabase could be a better long-term fit. Additionally, if there are plans to build other services around the attendee data (for example, in our college conference the professor later asked for an application where attendees could view keynote schedules, their assigned sessions, and food arrangements), having a proper database like Supabase makes that much easier to support.
That said, the final decision obviously rests with the maintainer @TenzDelek. I just wanted to share my experience from working on a similar conference setup.

@TenzDelek
Copy link
Member

That said, the final decision obviously rests with the maintainer @TenzDelek. I just wanted to share my experience from working on a similar conference setup.

great overview @DarshanCode2005 , I am also leaning toward supabase. @derberg also mentioned that it has a generous free tier and has never hit any limit.

@thulieblack
Copy link
Member

Then I see no reason, let's go with it. Since we now have meetups we might extend the registration there as well so it's best we go with something that won't limit us.

@DarshanCode2005
Copy link
Contributor Author

@TenzDelek Sir, could you please point me in the right direction for this? Since you already seem to be busy resolving the bug (Homepage not covering mobile view) and handling other tasks, would it be alright if I continue working on the Supabase migration? I can try taking a shot at it over the weekend.

@TenzDelek
Copy link
Member

@TenzDelek Sir, could you please point me in the right direction for this? Since you already seem to be busy resolving the bug (Homepage not covering mobile view) and handling other tasks, would it be alright if I continue working on the Supabase migration? I can try taking a shot at it over the weekend.

Sure. Go ahead 👍

@DarshanCode2005
Copy link
Contributor Author

Done @TenzDelek Sir,

Video of the flow:

Screencast.from.2026-03-12.22-33-48.webm

Mail Received:

Screenshot from 2026-03-12 22-35-12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement 2026 Registration Page (attendee intake + consent + Sheets)

5 participants