A simple, beautiful, and serverless virtual farewell card. It's built to be hosted on GitHub Pages and uses Google Forms and Google Sheets as a free "database" to collect and display messages from your team.
This project was created to give remote teams a way to create a shared, personal, and "live" card for departing colleagues.
^ (Replace this with a screenshot of your own card!)
This project uses a "serverless" approach by combining a few free tools:
- A Google Form is used to collect names and messages.
- All submissions are automatically sent to a Google Sheet.
- The Google Sheet is "Published to the web" as a
.tsvfile (Tab-Separated Values). - Client-side JavaScript (
script.js) on the GitHub Pages site fetches this.tsvfile every time the page is loaded. - The script parses the data and dynamically generates the HTML "wish cards" on the page.
Messages appear ~5 minutes after submission due to Google's publishing cache.
- Dynamic: Messages from the team appear "live" on the card.
- Serverless: No backend, no database, no server management.
- 100% Free: Hosted on GitHub Pages with Google Sheets as the data source.
- Beautiful UI: A responsive, modern, and heartfelt design.
- Easy to Set Up: Be up and running in about 5 minutes.
- Controllable: Easily "freeze" the card at any time by closing the Google Form.
Follow these steps exactly to launch your own wish board.
- Go to forms.google.com.
- Create a new, blank form.
- Add a "Short answer" question. Title it
Your Nameand make it "Required". - Add a "Paragraph" question. Title it
Your Wish for jane(or your colleague's name) and make it "Required". - Click the "Send" button in the top-right corner.
- Go to the "Link" tab (🔗 icon).
- Click "Copy" to copy the shareable link. You will need this in Step 4.
- In your Google Form, click the "Responses" tab at the top.
- Click the green Google Sheets icon ("View in Sheets").
- Select "Create a new spreadsheet" and click "Create".
- This will open a new spreadsheet with columns:
Timestamp,Your Name, andYour Wish....
This is the most critical step.
- In the new Google Sheet, go to
File>Share>Publish to web. - A new window will pop up.
- Under "Link", in the first dropdown, select your responses sheet (e.g.,
Form Responses 1). - In the second dropdown, select Tab-separated values (.tsv).
- Click the "Publish" button.
- Confirm by clicking "OK".
- A URL will appear in a box. Copy this URL. You will need this in Step 4.
Now, you'll connect your form and sheet to the website code.
- Fork this repository to your own GitHub account. (Or, download the code and create a new repository).
- Edit
index.html:- Find the
<a>tag at the bottom with theid="add-message-link". - Replace its
href="#"with your Google Form link from Step 1.
<a href="#" id="add-message-link" ...> <a href="[https://forms.gle/YOUR_UNIQUE_FORM_LINK](https://forms.gle/YOUR_UNIQUE_FORM_LINK)" id="add-message-link" ...>
- Find the
- Edit
script.js:- Find the
googleSheetURLconstant at the top of the file. - Paste your published .tsv link from Step 3.
// BEFORE const googleSheetURL = 'YOUR_PUBLISHED_GOOGLE_SHEET_TSV_URL_GOES_HERE'; // AFTER (Example) const googleSheetURL = '[https://docs.google.com/spreadsheets/d/e/2PACX-1v.../pub?gid=...&single=true&output=tsv](https://docs.google.com/spreadsheets/d/e/2PACX-1v.../pub?gid=...&single=true&output=tsv)';
- Find the
- Commit and push your changes to your repository's
mainbranch. - In your repository, go to
Settings>Pages. - Under "Build and deployment," select
Deploy from a branch. - Set the branch to
mainand the folder to/root. - Click
Save.
After a minute or two, your site will be live at https://your-username.github.io/your-repo-name/.
- Send the GitHub Pages link (e.g.,
https://wishboard.github.io/wishboard-for-jane/) to your coworkers in Slack, Teams, or email. - Team members click the "Add Your Personal Message" button.
- They fill out the Google Form.
- Their message will appear on the card automatically (after ~5 minutes).
When the farewell day has passed, you can easily stop new messages.
- Open your Google Form.
- Go to the "Responses" tab.
- Toggle off the "Accepting responses" switch.
That's it! The form will now show a "Not accepting responses" message, but the card will remain online for your colleague to read.
To take the data offline permanently:
If you want to remove the public data, go to your Google Sheet, navigate to File > Share > Publish to web, and click "Stop publishing". This will break the data link, and the card will show a "Could not load messages" error.
