Happy Lunar New Year!

Lunar New Year is one of the biggest celebrations in the world, marking the start of a new year based on the moon’s cycles. While it’s most widely celebrated in China, Korea (as Seollal), and Vietnam (as Tết), you’ll also find it observed in places like Malaysia, Singapore, Indonesia, the Philippines, and across Asian communities worldwide.

The traditions vary, but the themes are universal: family gatherings, honoring ancestors, and starting fresh with hope and good fortune.

How Lunar New Year Is Celebrated

  • In China, the festivities span 15 days, starting with reunion dinners and ending with the Lantern Festival. Red envelopes filled with money (hongbao) are given for good luck, and homes are decorated in red to symbolize prosperity.
  • In Korea, families perform ancestral rites (charye), wear traditional hanbok, and play folk games. Children bow to elders (sebae) to receive blessings and small gifts.
  • In Vietnam, families prepare for Tết by deep cleaning their homes to welcome good luck, making traditional foods like sticky rice cakes (bánh chưng), and exchanging red envelopes (lì xì) for prosperity.

2025: The Year of the Snake 🐍

The Year of the Wood Snake begins on January 29, 2025, and lasts until February 16, 2026. The Snake is the sixth animal in the Chinese zodiac and represents wisdom, intuition, and transformation.

If you’re born in the Year of the Snake (e.g., 1965, 1977, 1989, 2001, 2013, 2025), you’re thought to be intelligent, strategic, and naturally charismatic. In 2025, the Wood element brings a focus on growth, adaptability, and planning—making it a year to think long-term and move with purpose.

What Does This Year Mean for You?

  • In work: A great year to fine-tune your goals and play the long game. Snakes are strategic, so take your time.
  • In life: It’s a year for reflection and personal growth—shedding old habits and embracing what serves you.
  • In relationships: Real connections matter more than ever. It’s all about quality over quantity.

We’re not fortune tellers, and let’s be honest, we got these fortunes from Google. But we did code this fun game where you can catch a snake and get a little dose of luck.

Click the snake, rack up points, and get a fortune. And if for some reason you want to make a catch a snake game for yourself, we added the code below.

Happy Lunar New Year! 🧧🐍

Score: 0
<style>
        #body {
            margin: 0;
            font-family: Arial, sans-serif;
            background-color: #FEF2E4;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            flex-direction: column;
        }
        .container {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
        }
        .grid {
            display: grid;
            grid-template-columns: repeat(3, 100px);
            grid-template-rows: repeat(3, 100px);
            gap: 10px;
            margin-top: 20px;
        }
        .hole {
            width: 100px;
            height: 100px;
            background-color: #EAC435;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            cursor: pointer;
            position: relative;
        }
        .snake img {
            width: 80px;
            height: 80px;
        }
        .score {
            font-size: 24px;
            color: #E63946;
            margin-bottom: 10px;
            font-weight: bold;
        }
        .buttons {
            display: flex;
            gap: 10px;
            margin-top: 15px;
        }
        .play-button, .reset-button {
            padding: 10px 15px;
            font-size: 16px;
            background-color: #E63946;
            color: white;
            border: none;
            cursor: pointer;
            border-radius: 5px;
            transition: background-color 0.2s ease-in-out;
        }
        .play-button:hover, .reset-button:hover {
            background-color: #D62828;
        }
        .fortune {
            font-size: 18px;
            color: #457B9D;
            margin-top: 20px;
            max-width: 300px;
            text-align: center;
            font-weight: bold;
            padding: 10px;
            background-color: #fff;
            border-radius: 10px;
            box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
        }
    </style>

<div id="body">
    <div class="container">
        <div class="score">Score: 0</div>
        <div class="buttons">
            <button class="play-button" onclick="startGame()">Play</button>
            <button class="reset-button" onclick="resetScore()">Reset Score</button>
        </div>
        <div class="grid" id="grid"></div>
        <div class="fortune" id="fortune"></div>
    </div>
</div>
    <script>
        const grid = document.getElementById("grid");
        const scoreDisplay = document.querySelector(".score");
        const fortuneDisplay = document.getElementById("fortune");
        let score = 0;
        let gameInterval;

        const fortunes = [
            "Your next snack will be elite.",
            "Your autocorrect will finally work.",
            "Your future self is already proud of you.",
            "You’re about to remember where you left that thing.",
            "Someone’s going to overshare with you today. Brace yourself.",
            "Someone out there thinks you're crushing it—even if you don't see it yet."
        ];

        function getRandomFortune() {
            return fortunes[Math.floor(Math.random() * fortunes.length)];
        }

        function createGrid() {
            grid.innerHTML = "";
            for (let i = 0; i < 9; i++) {
                const hole = document.createElement("div");
                hole.classList.add("hole");
                hole.dataset.index = i;
                hole.addEventListener("click", whack);
                grid.appendChild(hole);
            }
        }

        function spawnSnake() {
            const holes = document.querySelectorAll(".hole");
            holes.forEach(hole => hole.innerHTML = "");
            const randomHole = holes[Math.floor(Math.random() * holes.length)];
            const snake = document.createElement("div");
            snake.classList.add("snake");
            const snakeImage = document.createElement("img");
            snakeImage.src = "https://www.ruoomsoftware.com/wp-content/uploads/2025/01/Snake.png"; // Replace with the correct image URL
            snake.appendChild(snakeImage);
            randomHole.appendChild(snake);
        }

        function whack(event) {
            const clickedSnake = event.target.closest(".snake");  
            if (clickedSnake) {
                score++;
                scoreDisplay.textContent = `Score: ${score}`;
                fortuneDisplay.textContent = getRandomFortune();  
                clickedSnake.remove(); // Remove the clicked snake
                spawnSnake();  
            }
        }

        function startGame() {
            clearInterval(gameInterval);
            score = 0;
            scoreDisplay.textContent = "Score: 0";
            fortuneDisplay.textContent = "";
            createGrid();
            spawnSnake();
            gameInterval = setInterval(spawnSnake, 1000);
        }

        function resetScore() {
            score = 0;
            scoreDisplay.textContent = "Score: 0";
            fortuneDisplay.textContent = "";
        }
    </script>


If you’re looking for more support, here’s how we can help:

Resources & Guides: Access helpful guides, tutorials, and code to build the tools you need for your business.

Custom & Off the Shelf Software Solutions: Get our full Ruoom subscription as-is and ready to use right out of the box. Or, if off the shelf solutions won’t cut it, we work directly with you to build custom software tailored to your workflows, datasets, and integrations.