A beautiful, emotional, single-page birthday gift web app — built with pure HTML, CSS and JavaScript. No frameworks, no installs, no server needed.
idiot
Change it to something personal before sharing. See how below.
Simplest way — just double-click index.html and it opens in your browser. Done.
For GitHub Pages (so she can open it from her phone):
- Upload all files to a GitHub repo
- Go to Settings → Pages → Source: main branch → Save
- Share the link:
https://yourusername.github.io/repo-name
Open script.js in any text editor (Notepad, VS Code, anything). Everything you need is inside the CONFIG block at the very top.
password: "idiot",Change "idiot" to whatever you want her to type to unlock the site.
Also update the hint line in index.html — search for gate-hint and change the text inside it.
yourName: "Someone",letterFrom: "Someone",Create an images/ folder, put your photos in it, then update the photos array:
photos: [
{ src: "images/photo1.jpg", caption: "our little moment" },
{ src: "images/photo2.jpg", caption: "my favourite rabbit" },
],Find the reasons array and replace or add lines:
reasons: [
"I love how soft you are, even in a harsh world.",
// add as many as you want
],timeline: [
{
date: "The beginning",
event: "We met",
desc: "Your story here.",
emoji: "✨"
},
],Find letterBody and replace the text between backticks. Use a blank line between paragraphs:
letterBody: `First paragraph.
Second paragraph.`,memories: [
{ icon: "🌙", text: "Your memory here." },
{ icon: "💛", text: "Another one." },
],Edit the :root block at the top of style.css:
:root {
--cream: #fdf6ee;
--blush: #f2d0c8;
--rose: #e8a49c;
--deeprose: #c97b7b;
--gold: #c9a96e;
}ours/
├── index.html ← Page structure
├── style.css ← All styling
├── script.js ← All content (edit this the most)
├── images/ ← Put your photos here
└── README.md
Made with ❤️ by Someone — for someone worth every line of code.