Envoy is a visa invitation letter management system built for Hack Club. It handles the end-to-end process of issuing official visa invitation letters for international attendees of Hack Club events.
When someone from outside the United States wants to attend a Hack Club hackathon, they often need a visa invitation letter to support their B1/B2 visa application. Envoy manages this process:
- Event Management - Administrators create events with details like dates, venue, and application deadlines
- Application Submission - Participants select an event and submit their personal information (name, passport details, address, etc.)
- Email Verification - Applicants verify their email address with a 6-digit code
- Admin Review - Staff review applications and approve or reject them
- Letter Generation - Approved applications automatically generate a PDF visa invitation letter
- Letter Verification - Each letter includes a verification code that embassies can use to confirm authenticity
- Framework: Rails 8.1
- Database: PostgreSQL
- Background Jobs: Sidekiq with Redis
- PDF Generation: Prawn
- Styling: Tailwind CSS 4.x
- Frontend: Hotwire (Turbo + Stimulus)
- Authentication: OmniAuth with Hack Club OAuth
# Install dependencies
bundle install
# Set up the database
rails db:create db:migrate db:seed
# Start the development server
bin/devThe app runs at http://localhost:3000.
The following environment variables are required in production:
DATABASE_URL- PostgreSQL connection stringREDIS_URL- Redis connection string for SidekiqHACKCLUB_CLIENT_ID- OAuth client ID for Hack Club authenticationHACKCLUB_CLIENT_SECRET- OAuth client secretPOSTMARK_API_TOKEN- API token for sending emails via PostmarkAWS_ACCESS_KEY_ID- AWS credentials for S3 storageAWS_SECRET_ACCESS_KEY- AWS credentials for S3 storageAWS_BUCKET- S3 bucket name for file storageAWS_REGION- AWS region
Copyright The Hack Foundation. All rights reserved.