A practical guide
How to Make a Birthday Website
By Jatin Shankar Srivastava · Updated
A birthday website is a page made for one person: their photos, your letter, a song, maybe your voice, sent as a link on their birthday. There are four realistic ways to make one, and the right one depends on how much time you have, whether you code, and whether you want it private.
Below is an honest comparison of all four, step-by-step instructions for the fastest route and for coding it yourself, and a checklist of what to put on the page.
Four ways to make a birthday website
| Method | Skill needed | Time | Cost | Privacy |
|---|---|---|---|---|
| Code it yourself | HTML, CSS and some JavaScript | 3–10 hours | Free (GitHub Pages, Netlify or Vercel hosting) | Public to anyone with the link unless you build a lock yourself |
| Google Sites | None | 1–2 hours | Free | Public, or shared only with people you add (they sign in with Google) |
| Canva website | None, some design sense | 1–3 hours | Free on a canva.site address | Public link by default |
| A birthday website maker | None | 10–20 minutes | Varies by service | Usually private; WishCupid pages are password-protected |
Code it yourself
Best for: Developers who enjoy the project as much as the gift.
Google Sites
Best for: A simple photo page when you have an afternoon.
Canva website
Best for: People who already design in Canva and want full control of the look.
A birthday website maker
Best for: Anyone who wants the birthday parts — cake, countdown, voice note, letter — ready-made.
Step by step with a birthday website maker
This is the route on WishCupid; most makers follow a similar order. Building and previewing is free, and publishing costs ₹299 one time.
- 1
Choose who it is for
Pick how you know them — girlfriend, boyfriend, partner, friend, parent or sibling — and enter their name, your name and their birthday. The wording and mini-games adapt to the relationship.
- 2
Add the main photo and a theme
Upload the photo they will see first, adjust the crop for phone and desktop, and pick one of six colour themes.
- 3
Write the words
Add the reasons you love or admire them, one short line each. Example lines show what each field is for; write yours so they sound like you.
- 4
Add memories and music
Upload up to six gallery photos, choose their song from YouTube and record a voice note — the part people replay most.
- 5
Write the letter
Write a multi-page letter, add an optional secret message and a future letter that unlocks on a date you choose. Wishes from friends and family can be added with the Friend Wishes add-on.
- 6
Preview, publish and send
Preview the whole website for free. When it is right, publish to get one private link and a password, then send both — the link at midnight, the password in a separate message.
Step by step if you want to code it
- Start from an open-source birthday template on GitHub, or a blank HTML page if you want to build it all.
- Replace the name, text and photos. Compress the photos first so the page loads quickly on mobile data.
- Add music, knowing that browsers block sound until the visitor taps — put a “tap to open” screen first so the song can start.
- Test it on a phone, not just your laptop. Most people open birthday links on WhatsApp.
- Publish it free on GitHub Pages, Netlify or Vercel and copy the link.
- Remember the page is public to anyone with the link. Keep private photos off it, or add your own password screen.
What to put on a birthday website
A photo they love
The first thing they see. Pick the one they would choose, not the one you like of yourself.
A letter in your words
The heart of the page. Write it like you talk.
Your voice
A one or two minute voice note. It is what people replay.
Their song
Or the song that is yours together.
A gallery of the year
Six good photos beat thirty average ones.
Reasons you love or admire them
Short, specific, one per card.
Something to play with
A cake to blow out, a scratch card, a small game.
Wishes from other people
A line or a short video from friends and family.
Need the words? See birthday wishes for a girlfriend, for a boyfriend or for a best friend.
Try it right here
This is a real birthday website, running live. Scroll inside the phone, then pick a theme to see the same gift in a completely different mood. Themes are free, and you can change yours any time.
🌹 Midnight Rose
Rose pink and gold under a starry night
Best for: Partners and anyone special
Birthday website FAQ
How do I make a birthday website for someone?
Choose a method — code a template, use Google Sites or Canva, or use a birthday website maker — then add their photos, a letter, a song and your voice note, preview it, and send the link on their birthday. A maker is the fastest route at around 15 minutes; coding takes hours but costs nothing.
Can I make a birthday website for free?
Yes. A coded template on GitHub Pages, Google Sites and a Canva website are all free to publish. Birthday website makers are usually free to build and preview and charge a one-time fee to publish; WishCupid works this way.
Do I need to know coding to make a birthday website?
No. Google Sites, Canva and birthday website makers need no code. Coding only makes sense if you want to build every animation yourself and enjoy that part.
How do I make a birthday website private?
Free builders usually publish a public link, so anyone who gets it can open it. A birthday website maker like WishCupid puts each page behind a password and keeps it out of search engines, so only the person you send it to can open it.
What should I put on a birthday website for my girlfriend or boyfriend?
A photo they love, a letter in your words, reasons you love them, a gallery of your year together, your song, a voice note and something playful — a cake to blow out or a small game. See our birthday wishes for a girlfriend or boyfriend if you need words.
How do I send a birthday website?
Send the link like any other message — WhatsApp, Instagram DM, SMS or email. Send it at midnight or when they wake up, and if the page has a password, send it in a separate message so the surprise opens in order.