A Contemporary Approach to Web Building: How I Used Cursor to Rebuild My Portfolio

A meta case study on designing, developing, and launching my own portfolio as a demonstration of modern web skills, design systems, and technical fluency.

Role:Designer, Developer, Writer
At:christinamday.com
Year:2025
Platforms & Tools
Next.jsReactTailwindFramer MotionVercel
Focus Areas
Design SystemsFront-End DevelopmentUX/UIContent Strategy
Portfolio homepage hero result
Cursor editor showing portfolio development in progress
Development
Result
Drag to compare

Drag the slider to compare development environment and final result

Why Rebuild? (Motivation & Goals)

After years of relying on Squarespace for my portfolio, I realized it was time for a change. The old site was easy to maintain, but it didn't reflect my current skills or the way I actually work. I wanted a portfolio that wasn't just a gallery of past projects, but a living demonstration of my technical fluency, design process, and ability to build with today's best tools.

But the real driver was personal. After a break from tech—working in art fabrication, taking on design gigs, and navigating some big life changes—I needed to prove to myself that my skills weren't just intact, but sharper than ever. This project is both a bridge across my career gap and a statement: I can actually deliver results with the latest stack.

"I wanted a portfolio that's a living demonstration, not just a gallery."

The problem? Squarespace is perfect for quick, no-code sites, but it's not built for the kind of experimentation and customization I wanted. The templates are beautiful, but you can always spot a Squarespace site. Custom code is possible, but it's more workaround than workflow. And building a living style guide or reusable components? That's not what Squarespace is made for.

That's not a criticism—Squarespace is excellent at what it does. But I needed something that would let me tinker, experiment, and build the kind of interactive, dynamic portfolio that actually demonstrates my current capabilities.

christinamday.com (Squarespace)
Old Squarespace Portfolio Screenshot
Scroll to explore

A screenshot of my previous Squarespace portfolio. • Scroll to explore the full interface

Issues with Squarespace limitations

  • Clean, but the same homepage as a thousand others.
  • Custom ideas? Usually met with "not supported."
  • Great for non-developers; too tidy for code-driven work.

Case studies, but stuck in a template

  • Every project story started to sound the same. That's the tradeoff for consistency.
  • Breaking the grid or adding custom layouts? Not really an option.
  • Consistent, but the personality was a little muted.
christinamday.com/case-studies (Squarespace)
Old Squarespace Portfolio Case Studies Screenshot
Scroll to explore

A screenshot of the case studies section from my previous Squarespace portfolio. • Scroll to explore the full interface

christinamday.com/case-studies/spotlights-reporting (Squarespace)
Old Squarespace Portfolio Spotlights Reporting Screenshot
Scroll to explore

A screenshot of a case study from my previous Squarespace portfolio. • Scroll to explore the full interface

Project pages: stuck in the box

  • Project pages were always a remix of the same blocks.
  • Technical depth or custom visuals? Only if "custom" means "sort of like everyone else."
  • Scrollability or interactivity? Not really. For many, that's a feature, not a bug.

Design & Tech Stack Choices

Choosing the right stack wasn't just about using the latest tools. I needed a foundation that would let me move fast, experiment, and actually document my process as I went. This portfolio isn't a static gallery—it's a living demonstration of how I work, how I solve problems, and how I approach design systems in the real world.

Every decision here was made to support rapid iteration, honest documentation, and the kind of workflow I'd use on a real product team. The stack below is what enables that: tools that are proven, flexible, and built for real-world results—not just to look good on a portfolio site.

Tech Stack

This isn't just a list of trendy tools. Every choice here supports the way I actually work: rapid prototyping, real design system thinking, and documenting every pattern as I go. The stack below is what lets this portfolio be a living demonstration, not just a static gallery.

Next.js logo

Next.js

File-based routing, hybrid rendering, and Vercel integration—lets me ship fast and focus on building.

React logo

React

Component-driven UI, huge ecosystem, and the best way to build interactive sites in 2025.

Tailwind CSS logo

Tailwind CSS

Utility-first, design in markup, iterate fast, and keep everything consistent.

Framer Motion logo

Framer Motion

Modern, smooth animation for React—declarative, powerful, and easy to use.

Vercel logo

Vercel

Fast, reliable deployments, instant previews, and zero-config—lets me focus on building, not DevOps.

The Living Style Guide

Most style guides are static documents or Figma files that quickly fall out of sync with the real product. I wanted something different—a living style guide, built directly into the site, that documents every pattern, component, and decision as it actually exists in production.

This approach lets me move fast, experiment safely, and keep the design system honest. The style guide isn't just a reference—it's a toolkit I use every day, evolving alongside the project and making it easy to onboard, iterate, and maintain consistency as the site grows.

Typography & Design Patterns

Typography Preview

Light Mode

Font Families

Heading Sample (Serif)
Prata (font-serif)
Body Sample (Sans)
Inter (font-sans)
Mono Sample (Mono)
Geist Mono (font-mono)

Typography Examples

Hero Heading (Serif)
A Contemporary Approach
Section Heading (Sans)
Design & Tech Stack
Body Text
This is how body text looks in the design system.

Typography Preview

Dark Mode

Font Families

Heading Sample (Serif)
Prata (font-serif)
Body Sample (Sans)
Inter (font-sans)
Mono Sample (Mono)
Geist Mono (font-mono)

Typography Examples

Hero Heading (Serif)
A Contemporary Approach
Section Heading (Sans)
Design & Tech Stack
Body Text
This is how body text looks in the design system.

Color Palette & UI Components

Color Palette

Light Mode

Background#ffffff
Text#1e293b
Accent#3b82f6
Surface#f1f5f9
Opal Pink#ffd1dc
Opal Blue#d4f1f9
Opal Purple#e6e6fa
Opal Green#e0f7fa

Buttons

Card Pattern

Info Card

This is a sample card pattern. Use for features, highlights, or structured info.

Color Palette

Dark Mode

Background#0f172a
Text#f8fafc
Accent#60a5fa
Surface#1e293b
Opal Pink#4a1e3a
Opal Blue#1a365d
Opal Purple#2d1b3b
Opal Green#1a3a3a

Buttons

Card Pattern

Info Card

This is a sample card pattern. Use for features, highlights, or structured info.

Beyond the Style Guide: Project Rules & Documentation

The style guide wasn't just a visual reference—it was part of a larger documentation system. I paired it with markdown files that contained project rules, naming conventions, and workflow guidelines. This dual approach meant I had both visual patterns and written guidelines that evolved together.

Project Rules & Documentation
Markdown project rules and workflow documentation
Scroll to explore

A screenshot showing the markdown files used for project rules, naming conventions, and workflow guidelines. • Scroll to explore the full interface

Style Guide (Visual)
  • Live component examples with real code
  • Typography hierarchy and spacing
  • Color palette with hex values
  • Button states and interactions
  • Card patterns and layouts
Project Rules (Markdown)
  • Naming conventions for files and components
  • Layout patterns and when to use them
  • Image workflow and optimization rules
  • Git commit message standards
  • Onboarding notes for future contributors

This system kept everything consistent and made it easy to onboard new contributors (including myself after breaks). Whenever I solved a new problem or found a better approach, I'd update both the visual style guide and the written rules—keeping everything in sync and honest about what actually works in production.

How the Style Guide Actually Works

The style guide and project rules I built weren't just documentation—they were the foundation of my actual workflow. I developed two distinct modes that let me move fast while maintaining quality: "get shit done mode" for rapid deployment using proven patterns, and "experimentation mode" for solving novel challenges and evolving the system.

This dual approach meant I could ship quickly when I knew exactly what I needed to build, but also had the flexibility to innovate when I hit content that didn't fit existing patterns. Every new solution that worked got documented and added to the style guide, so the system evolved with the project.

⚡️

Get Sh*t Done Mode

When I knew exactly what I needed to build, I'd use pre-approved components from the style guide. This was my default mode—fast, consistent, and reliable.

  • Reuse proven layout patterns
  • Apply established color and typography rules
  • Deploy content quickly with confidence
  • Maintain consistency across the site
🧪

Experimentation Mode

When I hit content that didn't fit existing patterns, I'd switch to experimentation mode. This was where the style guide evolved and grew.

  • Try new patterns and approaches
  • Document successful solutions
  • Update both style guide and project rules
  • Evolve the system based on real needs

A Real Example: The Timeline Component

When I needed to show my learning journey in the case study, I started in "get shit done mode" with existing card patterns. But the content didn't fit well—it needed a timeline layout. So I switched to "experimentation mode," built a custom timeline component, and then documented it in the style guide for future use.

This is how the system actually works: it's not just about following rules, but about knowing when to break them and how to evolve the rules based on real needs.

Image Workflow: Supporting Both Modes

The image workflow I built had to support both workflow modes seamlessly. In "get shit done mode," I needed a system that was fast and predictable—drop an image in the right folder, use the standard component, and it just works. In "experimentation mode," I needed the flexibility to try new approaches while maintaining the same performance and organization standards.

This meant creating a workflow that was both systematic and flexible. Every image follows the same basic patterns, but the system can handle everything from quick screenshots to complex multi-image layouts. The result is a system that scales with the project and keeps the codebase clean.

⚡️

Images in "Get Sh*t Done" Mode

For standard images, I follow the established patterns: organized storage, consistent implementation, and automatic optimization.

  • Drop image in /public/images/
  • Use Next.js Image component with standard props
  • Apply consistent styling (borders, shadows, radius)
  • Let the system handle optimization automatically
🧪

Images in "Experimentation" Mode

For complex image layouts or new patterns, I experiment while maintaining the same organizational standards.

  • Try new layout patterns (grids, carousels, overlays)
  • Experiment with advanced interactions
  • Document successful patterns for future use
  • Maintain performance and accessibility standards

The System in Action

The workflow wasn't just theoretical—it was built into the codebase itself. Every image follows the same patterns: organized storage, consistent implementation, and performance optimization built right into the components.

This systematic approach meant I could focus on building features rather than managing assets, while still maintaining professional quality and performance standards.

Image Workflow Code Example

Smart Image Routing

The system automatically routes images based on size: small images stay on Vercel for speed, while larger images get uploaded to my hosting.com CDN to keep deployment sizes manageable. The getImageUrl() function handles all the routing logic seamlessly.

Small Images (< 1MB):
  • Stored in /public/images/
  • Served directly from Vercel
  • Fast local development
  • Cursor manages uploads via Vercel
Large Images (> 1MB):
  • Uploaded to hosting.com CDN
  • Added to LARGE_IMAGES array
  • Removed from local storage
  • Cursor manages uploads via FTP

Cursor's Role in the Workflow

Cursor isn't just my code editor—it's an active participant in this image workflow. It automatically manages uploads based on image size, using Vercel's deployment pipeline for smaller assets and FTP for larger files that need to be sent to external servers.

Vercel Integration:
  • Small images deployed with code
  • Automatic optimization
  • Instant previews
  • Zero configuration
FTP Automation:
  • Large images sent to external CDN
  • Automated upload scripts
  • Keeps deployment sizes small
  • Maintains performance

"A good image workflow isn't just about storing files—it's about creating a system that supports how you actually work."

This workflow ensured that images were properly organized, optimized, and maintainable throughout the project lifecycle. It supported both development speed and production quality, making it easy to iterate quickly while maintaining professional standards. The result was a system that scaled with the project and kept the codebase clean and performant.

Innovations That Emerged from Experimentation

The best innovations in this project came from "experimentation mode"—when I hit content challenges that didn't fit existing patterns. Instead of forcing square pegs into round holes, I built custom solutions that solved real problems and then documented them for future use.

These aren't just technical tricks—they're proof that I can design and build systems that actually work for real users. Every innovation started as a problem that needed solving, evolved through experimentation, and ended up as a documented pattern in the style guide.

How Innovations Emerged

1. Problem Identification
  • Content didn't fit existing patterns
  • User experience needed improvement
  • Performance or accessibility gaps
2. Experimentation
  • Try new approaches and patterns
  • Test in real context
  • Iterate based on results
3. Documentation
  • Add to style guide
  • Update project rules
  • Make reusable for future

Live Demo: Homepage Hero Title

Designer & Developer for B2BB2B Companies

Building digital products that actually work.

CyclingText: A Real Problem, Real Solution

Problem: I needed a hero title that could adapt to different audiences without creating multiple pages.

Solution: Built a custom CyclingText component that cycles through different company types with smooth animations and accessibility features.

Result: One hero title that works for multiple audiences, with the pattern documented for future use.

Live Demo: Animated SVG Graphics

Interactive Starfield Animations

Problem: The homepage hero needed visual interest that matched the space theme without being distracting.

Solution: Custom SVG animations with the Scorpio constellation, shooting stars, and satellite movements that enhance rather than compete with the content.

Constellation

Pulsating connecting lines and glowing stars

Shooting Star

Animated comet with gradient tail

Satellite

Small orbiting dot with pulsing signal

Live Demo: Theme Switching

Light Mode / Dark Mode

Interactive theme switching with automatic system preference detection and manual toggle controls.

Theme Preview

Designer & Developer for B2B Companies

Building digital products that actually work.

Project Card

Clean typography with subtle borders

Creative Technical Solutions

Atmospheric Background Elements

Custom gradient clouds, nebula effects, and parallax animations that create depth without overwhelming content.

Gradient Clouds

Custom CSS gradients with blur effects and mix-blend-mode to create atmospheric depth. Each cloud uses radial gradients with carefully tuned opacity and positioning.

Light Mode:Soft pastel swirls
Dark Mode:Nebula-inspired clouds
Animation:Parallax scrolling
Nebula Effects

Inspired by the Horsehead Nebula, these effects use multiple layered gradients with different blend modes to create cosmic depth and movement.

Layers:Color glows + dark clouds
Blend Modes:Screen + Multiply
Performance:GPU-accelerated
Starfield Animation

Dynamic SVG starfield with twinkling stars, shooting stars, and the Scorpio constellation. Each star has unique animation timing and opacity patterns.

Stars:Twinkling animation
Shooting Star:Trailing effect
Colors:White, blue, pink
Parallax System

Custom scroll-based animation system using requestAnimationFrame for smooth 60fps performance. Each element moves at different speeds to create depth.

Starfield:0.15x scroll speed
Pink clouds:0.25x scroll speed
Blue clouds:0.35x scroll speed
Parallax Layers

Multiple gradient layers moving at different scroll speeds to create depth. Each layer uses transform3d for hardware acceleration.

Background:0.15x speed
Middle:0.25x speed
Foreground:0.35x speed
Performance Optimizations

Every background element is optimized for performance with will-change properties, passive event listeners, and efficient CSS transforms.

GPU Usage:Transform3d triggers
Event Handling:Passive listeners
Memory:Efficient cleanup
Technical Implementation

The background system uses a combination of CSS gradients, SVG filters, and JavaScript scroll handling. Each element is positioned absolutely with different z-index layers, and the parallax effect is achieved through transform3d for hardware acceleration. The system automatically adapts to light/dark mode with different gradient sets.

Challenges & How the Workflow Helped

Coming back to modern frameworks after a break was humbling—there's always something new to learn, and the pace of change in web development doesn't slow down for anyone. But having the workflow modes I established made all the difference. When I hit roadblocks, I could switch to "experimentation mode" to figure things out, then document the solutions for future "get shit done mode" use.

The biggest challenge was fighting the urge to make everything perfect before shipping. The workflow helped me focus on getting real, working solutions out the door first, then improving them. Documenting as I went was harder than expected, but it paid off—every solution I figured out became part of the system for next time.

🔥

Challenge: Modern Framework Learning Curve

Problem: Coming back to modern React/Next.js after a break meant learning new patterns, hooks, and best practices.

Workflow Solution: Used "experimentation mode" to try different approaches, then documented successful patterns in the style guide for future "get shit done mode" use.

Result: Built a library of proven patterns that made subsequent development much faster.

Challenge: Perfectionism vs. Shipping

Problem: Wanted to make everything perfect before shipping, which slowed down progress and killed momentum.

Workflow Solution: Used "get shit done mode" to ship working solutions quickly, then "experimentation mode" to iterate and improve based on real feedback.

Result: Shipped faster, learned more from real usage, and built better solutions through iteration.

📚

Challenge: Documentation Discipline

Problem: Documenting as I went was harder than expected—easy to skip when focused on building.

Workflow Solution: Made documentation part of the workflow—every "experimentation mode" solution had to be documented before it could be used in "get shit done mode."

Result: Built a comprehensive style guide and project rules that made onboarding (even for myself) much easier.

🎯

Challenge: Content That Didn't Fit Patterns

Problem: Some content (like the timeline, complex image layouts) didn't fit existing patterns and needed custom solutions.

Workflow Solution: Used "experimentation mode" to build custom components, then documented them as new patterns for future use.

Result: Created innovative solutions that became part of the design system and improved the overall site quality.

The Key Lesson: Confidence Comes from Doing

The biggest lesson from this project? Confidence comes from doing the work, not just planning it. The workflow I built helped me move from "I should know this" to "I can figure this out" to "I know how to solve this."

Every challenge became an opportunity to improve the system. Every solution became part of the toolkit. The result is a portfolio that's not just a showcase of finished work, but a living record of my ability to adapt, learn, and deliver at a high level.

Process & Discovery Timeline

This timeline shows how the project evolved through discovery and experimentation. Each step involved exploring new approaches, testing ideas, and refining the system based on what was learned.

Framework Discovery

Relearning Next.js and React patterns after the break. Discovering what had changed and what new approaches were available.

Workflow Foundation

Setting up the development environment and establishing the dual-mode workflow approach that would guide the entire project.

Design System Discovery

Exploring color palettes, typography scales, and discovering what patterns would work best for the content I had in mind.

Component Exploration

Building and testing reusable components, discovering which patterns were most effective and which needed iteration.

Layout Experimentation

Trying different navigation and layout approaches, discovering what worked best for the content structure.

Content Discovery

Exploring how to tell the story of each case study, discovering the right narrative structure and content strategy.

Process Documentation

Documenting the design and development process as it unfolded, discovering what was worth preserving for future use.

Interactive Discovery

Exploring animations, demos, and interactive elements to discover what would best showcase the technical approach.

Performance Discovery

Discovering the right image optimization and loading strategies for the specific content and user experience goals.

Current

System Refinement

Discovering edge cases, optimizing the workflow, and refining the entire system based on real usage and feedback.

What This Project Actually Demonstrates

This project isn't about proving I can code—it's about showing how I think about problems, how I approach design systems, and how I build things that actually work. The workflow I developed, the innovations I created, and the challenges I solved all demonstrate real-world problem-solving skills that translate to any project.

The most valuable insight? Seeing how much the ecosystem has evolved, and how much better the developer experience has gotten. These tools make it possible to ship faster, iterate more confidently, and focus on the actual problems instead of fighting the framework. That's the kind of environment where real innovation happens.

🎨

Design System Thinking

Built a living style guide that evolves with the project, not just static documentation. Shows I understand how to create systems that scale and adapt.

  • Visual patterns that work in production
  • Written rules that guide development
  • Documentation that stays in sync

Workflow Optimization

Developed a dual-mode approach that balances speed with quality. Shows I can create systems that support both rapid deployment and thoughtful innovation.

  • "Get shit done" mode for proven patterns
  • "Experimentation" mode for novel challenges
  • Documentation that bridges both approaches
🔧

Real-World Problem Solving

Every challenge became an opportunity to improve the system. Shows I can adapt, learn quickly, and turn obstacles into advantages.

  • Modern framework learning curve
  • Perfectionism vs. shipping trade-offs
  • Content that didn't fit existing patterns
🚀

Technical Innovation

Created custom solutions that solve real problems. Shows I can build things that don't exist yet and make them work in production.

  • CyclingText component for dynamic content
  • Custom SVG animations for visual interest
  • Smart image routing system

Cutting-Edge Development Workflow

This portfolio was built using Model Context Protocol (MCP) tools that represent the future of AI-assisted development. These tools enabled rapid iteration, sophisticated problem-solving, and a development experience that feels like pair programming with an expert.

MCP Tools Used
  • Context7: Real-time documentation access for libraries and frameworks
  • Puppeteer: Automated browser testing and visual validation
  • Sequential Thinking: Complex problem breakdown and solution planning
  • File Operations: Intelligent code editing and refactoring
Development Benefits
  • Rapid Prototyping: Ideas to working code in minutes
  • Intelligent Debugging: Complex issues solved systematically
  • Documentation Integration: Always up-to-date with latest APIs
  • Visual Validation: Automated testing of complex animations
Why This Matters

Using MCPs isn't just about faster development—it's about building better software. These tools enable a development workflow where complex problems are broken down systematically, solutions are validated visually, and documentation is always current. This represents the future of AI-assisted development, where human creativity is amplified by intelligent tools rather than replaced by them.

What's Next: Applying This Approach

This project demonstrates the kind of thinking and approach I bring to every project. I'm excited to apply this same systematic, adaptive approach to bigger challenges and more complex problems.

🤝
Collaborate & Contribute

Excited to work with talented teams and ship meaningful products using this systematic approach.

🚀
Build Ambitious Products

Ready to tackle bigger challenges and ship real value with the same workflow optimization mindset.

🧑‍🏫
Mentor & Support

Looking forward to helping others develop their own systematic approaches to problem-solving.