DEV Community

Cover image for ๐Ÿ‘ป From Coffins to Code: Building a Spooky Study Dashboard in <8 Hrs with Kiro's Dark Magic ๐Ÿช„
Divya Subscriber for kirodotdev

Posted on

๐Ÿ‘ป From Coffins to Code: Building a Spooky Study Dashboard in <8 Hrs with Kiro's Dark Magic ๐Ÿช„

Documenting how I summoned a production-ready Halloween study app from the void in <8 hrs, complete with ghost companions, cursed achievements, & blood-moon themes using Kiro's spec-driven sorcery.

Why I built This

Picture this: It's late at night, and you're trying to focus on studying. But your brain? Completely checked out. You open yet another productivity app - clean, minimal, professional. And utterly boring.

Here's what I realized: productivity tools don't have to be soulless.

So I asked myself three questions:

  • What if your study companion was an actual ghost that reacted to your work?
  • What if your timer was a literal coffin with a blood-red progress bar?
  • What if hitting your goals felt like unlocking cursed achievements in a horror retro themed game?

The answer? I built it. All of it. In <8 hrs.

Not a prototype. Not a proof-of-concept. A fully functional, production-ready Halloween productivity app with ghost companions, atmospheric themes, achievements, comprehensive testing, & living documentation.

Here's exactly how I did it using Kiro's spec-driven development.


โšก How I Built This in <8 Hours

Let me break down exactly what happened, hour by hour. No fluff, just actual timeline:

First 30 mins - I brain-dumped everything into a document. Theme ideas, UI concepts, features I wanted, page layouts. It was messy, unstructured, but it captured my vision for the project.

Next 12 mins - This is where things got wild. I dumped my entire plan into Kiro's specs section. In 2 minutes, it generated a complete requirements.md with 8 user stories and 40+ acceptance criteria. 5 mins later, a full design.md with architecture and 22 correctness properties. Another 5 mins, and I had tasks.md with 100+ executable subtasks. 12 minutes total for complete specs.

Hours 1-3 - I clicked through those 100+ tasks one by one. Each click, Kiro generated the code. Timer components. Ghost animations. Theme system. Achievement logic. Everything. From an empty folder to a working MVP in under 3 hours.

Next 30 mins - Built the production bundle, tested locally, verified everything worked. No console errors. Clean.

Hours 4-7 - Time to make it beautiful. I switched to vibe coding mode. Added blood droplets falling in the Vampire theme. Haunting tree silhouettes for Witch Forest. Flickering moon phases. Ghost-specific audio. 6 horror fonts. CRT scanline effects. All the atmospheric magic.

Final 30 mins - Asked Kiro to update the specs to match my final code (living documentation), then deployed to Netlify. Live on the internet.

Total time: 7.5 hours from rough idea to production deployment.


๐ŸŽƒ What I Built

The Spooky Study Dashboard

A Halloween-themed Pomodoro timer that transforms studying into an immersive supernatural experience.

Imagine a productivity app where your timer lives inside a coffin, your study companion is a ghost with emotions, & hitting your goals unlocks cursed achievements. Where blood droplets fall across your screen in Vampire mode, & a flickering moon watches over you at midnight. Where every study session feels like you're leveling up in a horror game.

That's Spooky Study Dashboard - a fully functional productivity tool wrapped in a haunting, interactive Halloween aesthetic that actually makes you want to study.

my site

๐Ÿฆ‡ Core Features

๐Ÿ‘ป Five Ghost Companions with Emotions

Choose your spectral study buddy:

  • Baby Ghost ๐Ÿ‘ป - Innocent and encouraging
  • Witch Ghost ๐Ÿง™ - Mystical and wise
  • Vampire ๐Ÿง› - Sophisticated and focused
  • Werewolf ๐Ÿบ - Fierce and determined
  • Angel ๐Ÿ‘ผ - Heavenly and protective

Each has two emotional states (sleepy ๐Ÿ˜ด / mischievous ๐Ÿ˜ˆ) & reacts to your study sessions with Framer Motion animations. They float when idle, bounce during studies, & drift during breaks.

โšฐ๏ธ Coffin-Shaped Timer

Forget boring circular progress bars. Your countdown lives in an animated coffin:

  • Skull and crossbones decorations ๐Ÿ’€
  • Blood-red progress bar
  • Flickering time display in horror fonts
  • Session indicators: "๐Ÿ“š CURSED STUDY SESSION" / "โ˜ ๏ธ HAUNTED REST TIME"
  • Status: ACTIVE ๐Ÿ”ฅ / PAUSED โธ๏ธ

๐Ÿฉธ Four Spooky Themes

Each theme transforms the entire interface with CSS-animated spooky effects:

Theme Palette Animations
Vampire Crimson ๐Ÿฉธ Dark reds (#8B0000, #DC143C) Falling blood droplets, swooping bats
Witch Forest ๐ŸŒฒ Mystical greens (#2D5016) + purple Haunting tree silhouettes, forest creatures
Haunted Midnight ๐ŸŒ• Deep purples (#4A148C, #7B1FA2) Flickering moon phases, bat formations
Graveyard ๐Ÿชฆ Monochrome grays + toxic green Floating spirits, cemetery fog

All themes meet WCAG AA accessibility standards.

๐Ÿ† Cursed Achievements

Unlock five spooky achievements:

  • Cursed Consistency ๐Ÿ”ฅ - Study 7 consecutive days
  • Demon of Discipline ๐Ÿ˜ˆ - Complete 10+ sessions in 7 days
  • Witching Hour Warrior ๐ŸŒ™ - Study between midnight-3 AM
  • Sleepy Survivor ๏ฟฝ - Complete 3 sessions with sleepy ghost
  • Mischievous Master ๐Ÿ‘ป - Experience 5 jumpscares

๐Ÿ“Š Soul Tracker Analytics

  • Tarot card-styled metric displays (daily/weekly stats)
  • Recharts-powered productivity visualization
  • Session history with ghost emotion tracking
  • Productivity score from completion rates & consistency

๐Ÿ”Š Immersive Audio System

  • Ghost-specific ambient sounds
  • Scary effects on timer interruptions
  • Success celebration audio
  • Volume controls with visual slider

๐Ÿง™โ€โ™€๏ธ The Kiro Magic: How I Built This in 7.5 Hours

๐ŸŽฏ Moment #1: Specs in 12 Mins

requirements.md

design.md

tasks.md

I spent 30 mins brain-dumping my project plan:

  • Theme, UI, features, sections, functionalities
  • Landing page + main page structure
  • All the spooky details I wanted

Then I dumped it ALL into Kiro's specs section.

What happened next blew my mind:

โฑ๏ธ 2 mins  โ†’ requirements.md generated
   8 requirements, 40+ EARS-compliant acceptance criteria

โฑ๏ธ 5 mins  โ†’ design.md created
   Complete architecture, 22 correctness properties, testing strategy

โฑ๏ธ 5 mins  โ†’ tasks.md generated
   20 major tasks, 100+ executable subtasks
Enter fullscreen mode Exit fullscreen mode

Total: 12 mins for complete specs.

This wasn't documentation. This was a complete blueprint for building the entire application.

What would have taken me 1-2 hrs of brainstorming & planning took 12 mins.

๐ŸŽฏ Moment #2: Empty Folder to MVP in 3 Hrs

Here's where my mind exploded.

In the tasks.md file, I could click on each task to execute it:

- [ ] 6. Timer Components
  - [ ] 6.1 Create TimerDisplay component
  - [ ] 6.2 Create TimerControls component
  - [ ] 6.3 Create SessionConfig component
Enter fullscreen mode Exit fullscreen mode

Click task 6.1 โ†’ Kiro generated complete TimerDisplay with coffin shape and progress bar

Click task 6.2 โ†’ Kiro implemented controls with validation and error handling

Click task 6.3 โ†’ Kiro wrote SessionConfig with duration settings

I clicked through 100+ tasks, one at a time.

150-180 mins later: Working MVP.

From an empty folder to a fully functional application. Each task built on the previous one. Zero context loss. No "what was I doing again?" moments.

๐Ÿ“‹ The Spec-Driven Advantage

Instead of jumping straight into code, I started with comprehensive specs in .kiro/specs/spooky-study-dashboard/:

  • requirements.md - 8 user stories with 40+ acceptance criteria
  • design.md - Complete architecture, 22 correctness properties, data models
  • tasks.md - 20 implementation phases with 100+ granular tasks

This became my single source of truth. Every feature, every component, every test had a clear purpose traced back to the requirements.

Before Kiro Specs:

  • โŒ Vague feature ideas floating in my head
  • โŒ Forgetting edge cases mid-implementation
  • โŒ Unclear testing priorities
  • โŒ Scope creep everywhere

With Kiro Specs:

  • โœ… Crystal-clear requirements with acceptance criteria
  • โœ… Correctness properties that guided testing strategy
  • โœ… Systematic task breakdown preventing overwhelm
  • โœ… Easy progress tracking (100+ tasks completed!)

๐Ÿ’ฌ Vibe Coding: The Creative Accelerator

While specs provided structure, vibe coding in Kiro's chat handled the creative heavy lifting.

Example: Coffin Timer

Me: "Create a coffin-shaped timer with vintage horror aesthetics and progress visualization"

Kiro generated the entire TimerDisplay component with:

  • Complex CSS for coffin shape with skull and crossbones
  • Animated blood-red progress bar at the bottom
  • Decorative elements (๐Ÿ’€, bones, cross, coffin handles)
  • Session type indicators (๐Ÿ“š CURSED STUDY SESSION / โ˜ ๏ธ HAUNTED REST TIME)
  • Status indicator (ACTIVE ๐Ÿ”ฅ / PAUSED โธ๏ธ)
  • Full accessibility attributes with screen reader support
  • Responsive design

Example: Landing Page

Me: "Make it feel like entering a haunted mansion with floating spooky elements and interactive ghost cursor"

Kiro generated:

  • Mouse-tracking ghost follower
  • 8 floating animated emojis (๐Ÿ‘ป๐ŸŽƒ๐Ÿฆ‡๐Ÿ•ท๏ธ๐Ÿ’€๐Ÿ•ธ๏ธ๐Ÿง™โ€โ™€๏ธโšฐ๏ธ)
  • Feature cards with hover effects
  • CRT overlay and scanline effects
  • Smooth entrance animations
  • "Enter the Crypt" call-to-action button

Then: "Add more vintage horror vibes with blood-flow text effects"

Kiro immediately added gradient animations and enhanced the typography system with 6 horror fonts (Creepster, Nosifer, Butcherman, Eater, Chiller, Griffy).

๐ŸŽจ Theme: 500+ Lines of CSS in Mins

Me: "Create four Halloween themes with unique CSS animations for each - blood droplets for vampire, strange & unnatural haunting trees for witch forest, flickering moonlight for midnight, & floating spirits for graveyard. Each theme should have its own color palette and meet WCAG AA accessibility standards."

Kiro generated 500+ lines of sophisticated CSS with:

  • Theme-specific ::before and ::after pseudo-elements
  • Complex keyframe animations (blood-fall, haunting-sway, moon-phases, spirits-float)
  • Dynamic color application via CSS variables
  • Smooth theme transitions
  • WCAG AA compliant color contrast ratios

๐Ÿงช Property-Based Testing: Finding Bugs I'd Never Catched( Not so easily atleast)

Kiro helped me implement comprehensive testing that went beyond traditional unit tests.

Traditional tests: "Does this specific input work?"

Property-based tests: "Does this work for ALL possible inputs?"

Using fast-check, I wrote tests that ran 100+ iterations with random inputs:

/**
 * Feature: spooky-study-dashboard, Property 12: Cursed Consistency achievement
 * Validates: Requirements 6.1
 */
it('should unlock Cursed Consistency for 7 consecutive days', () => {
  fc.assert(
    fc.property(
      arbSessionHistory(7, 20), // Random session history
      (sessions) => {
        const hasConsecutive = hasConsecutiveDays(sessions, 7);
        const achievement = checkAchievement('cursed-consistency', sessions);
        expect(achievement.unlocked).toBe(hasConsecutive);
      }
    ),
    { numRuns: 100 }
  );
});
Enter fullscreen mode Exit fullscreen mode

This found bugs I would NEVER have caught manually:

  • Edge cases with midnight boundary sessions
  • Timezone handling issues
  • Empty session history handling
  • Consecutive day calculation with gaps

Testing Coverage:

  • 100+ unit tests covering hooks, utilities, and components
  • Integration tests for context providers
  • Property-based tests for complex logic (achievements, metrics, persistence)
  • 22 correctness properties from design doc mapped to tests

๐Ÿ”„ Living Documentation

refining specs

After all the vibe coding enhancements, my code had evolved beyond the original specs.

So I asked Kiro:

"Analyze all files in the project and refine the specs to match the final implementation"

Kiro scanned every component, hook, and utility, then:
โœ… Updated requirements.md with new features

โœ… Refined design.md with actual architecture

โœ… Adjusted tasks.md to reflect what was built

Now my specs are living documentation - they perfectly describe the product I made it to be.


๐ŸŽฏ What This Proves

Here's what I shipped in 7.5 hours:

A production-ready application. Not a prototype. Not a hackathon demo that breaks when you click around. A real app with:

  • โœ… 8 user stories and 40+ acceptance criteria
  • โœ… Complete architecture with 22 correctness properties
  • โœ… 100+ unit tests including property-based testing
  • โœ… Living documentation that matches the actual code
  • โœ… Deployed and live on Netlify

The Traditional Way vs. The Kiro Way

Let's be honest about what this would normally take:

Traditional Development:

  • Spend 1-2 hrs writing specs manually
  • Another 3-5 hrs setting up the project
  • 10-15 hrs building core features
  • 6-10 hrs on polish & animations
  • 2-4 hrs writing tests & fixing bugs
  • 3-5 hrs documenting everything
  • 1-2 hrs deploying

Total: 40+ hours spread over a week

With Kiro's Spec-Driven Development:

  • 30 mins brain-dumping ideas
  • 12 mins for Kiro to generate complete specs
  • 3 hrs clicking through tasks to build the MVP
  • 30 mins to deploy and test
  • 3 hrs of creative vibe coding
  • 30 mins to update specs and deploy

Total: 7.5 hours in a single day

That's not just 8x faster. It's a completely different way of building software. And the quality? Better. Because every feature was spec'd, every edge case was considered, and every component was tested before I even started coding.


๐ŸŽƒ About the Project

Architecture

  • Frontend: React 19.2.0 with Vite 7.2.4
  • Styling: Tailwind CSS 4.1.17 + custom horror-themed CSS
  • Animations: Framer Motion 12.23.24
  • Charts: Recharts 3.5.1
  • Testing: Vitest 4.0.14 + fast-check 4.3.0
  • State: React Context + Custom Hooks
  • Storage: LocalStorage with error handling

Key Features

โœ… Fully Accessible - WCAG 2.1 AA compliant

โœ… Keyboard Navigation - Complete keyboard support

โœ… Screen Reader Support - ARIA labels and live regions

โœ… Offline-First - All data stored locally

โœ… Responsive Design - Works on all screen sizes

โœ… Error Boundaries - Graceful error handling

โœ… Performance Optimized - Lazy loading and code splitting

Code Quality

  • 100+ unit tests covering hooks, utilities, & components
  • Integration tests for context providers
  • Property-based tests for complex logic
  • JSDoc comments throughout codebase
  • Comprehensive error handling for storage & validation

๐Ÿ’ก Key Learnings

1. Specs First, Code Second

Starting with specs means:

  • โœ… Clear requirements before writing code
  • โœ… Defined correctness properties for testing
  • โœ… Systematic implementation plan
  • โœ… Comprehensive test coverage
  • โœ… Living documentation

You know exactly what to build before you build it.

2. Specs Prevent Scope Creep

Having written requirements kept me focused. When I wanted to add "ghost customization with user-uploaded images" mid-project, I could see it wasn't in the spec and saved it for v2.

3. Properties Guide Testing

The 22 correctness properties from the design doc became my testing checklist. Each property mapped to specific test cases.

4. Vibe Coding Accelerates Creativity

Describing visual ideas to Kiro and getting working code back in seconds let me iterate on design much faster than traditional coding.

5. The Combo is Powerful

Specs + vibe coding is greater than the sum of its parts:

  • Specs provide structure and correctness
  • Vibe coding provides creative freedom
  • Together they enable fast development without sacrificing quality

๐Ÿš€ Try It Yourself

๐ŸŒ™ Step into the darkness: Spooky Study dashboard

๐Ÿ”ฎ Peek behind the curtain:

๐ŸŽƒ Spooky Study Dashboard

A Halloween-themed productivity application that transforms traditional pomodoro timer functionality into an immersive supernatural experience. Study with ghost companions, unlock spooky achievements, and track your productivity through atmospheric themes and engaging audio experiences.

Check it out here:- https://spooky-study-dashboard.netlify.app

image


โœจ Features

๐Ÿ•ฐ๏ธ Intelligent Timer System

  • Pomodoro Technique: Configurable work/break sessions with visual progress tracking
  • Session Management: Customizable study (25-90 min) and rest (5-20 min) durations
  • Visual Feedback: Coffin-shaped timer display with animated progress indicators
  • Audio Cues: Success sounds and atmospheric feedback for session transitions

๐ŸŽจ Dynamic Theme System

  • 4 Atmospheric Themes: Vampire Crimson, Witch Forest, Haunted Midnight, and Graveyard
  • WCAG AA Compliant: All themes meet accessibility standards for color contrast
  • CSS Variable Integration: Seamless theme switching with Tailwind CSS
  • Animated Backgrounds: CSS-based environmental animations for each theme

๐Ÿ‘ป Ghost Companion System

  • 5 Supernatural Companions: Baby Ghost, Witch Ghostโ€ฆ

Witness the magic in motion:

Captured moments from the other side:

Warning: May cause sudden urges to study productively ๐Ÿ˜ฑ๐Ÿ’€โ˜ ๏ธ

landing Page

Study dashboard

stats- 1

stats- 2

stats- 3

stats- 4

Achievements section


Quick Start

git clone https://github.com/Divya4879/Spooky-Study-Dashboard.git
cd spooky-study-dashboard
npm install
npm run dev
Enter fullscreen mode Exit fullscreen mode

๐ŸŽƒ Final Thoughts

Building Spooky Study Dashboard taught me that productivity tools don't have to be boring. By combining:

  • Spec-driven development for structure and correctness
  • Vibe coding for rapid creative iteration
  • Halloween theming for engagement and delight
  • Accessibility-first design for inclusivity
  • Property-based testing for comprehensive coverage

I created something that's both functionally robust and genuinely fun to use.

Kiro's spec system gave me confidence that every feature was properly designed and tested. Vibe coding let me explore creative ideas without getting bogged down in boilerplate. Together, they enabled me to build a polished, feature-rich application in just 7.5 hours.

Whether you're a student looking for a more engaging study tool, a developer interested in spec-driven development, or someone who just loves Halloween, I hope Spooky Study Dashboard brings a little supernatural joy to your productivity routine.

Top comments (0)