Back to projects← Back

Entre Líneas

12/12/2025 In Progress
Entre Líneas
Table of Contents

Entre Líneas: Poetry Analysis Reimagined

What if analyzing poetry could be as intuitive as reading your favorite lyrics on Genius?

Entre Líneas is a modern web application that transforms Spanish poetry analysis into an interactive, engaging experience. Built for students, teachers, and literature enthusiasts, it combines deep literary analysis with contemporary UX patterns.

  • React 19
    Modern stack
  • TanStack Start
    SSR framework
  • TypeScript
    End-to-end typesafety

The Challenge

Traditional poetry analysis tools are either outdated PDF documents, static websites with no interactivity, or academic platforms that feel like they’re from the early 2000s. Students and teachers deserve better, they need modern, intuitive tools that make literary analysis accessible and engaging.

The Solution

Entre Líneas brings poetry analysis into the modern web era with a fully interactive, server-rendered application built with a modern stack, designed as a personal project that merges 2 of my hobbies and solves a common problem I found when studying literature.

Entre Líneas home page showing a clean grid of poem cards

Core Features

  • Verse-by-verse analysis with identified rhetorical figures
  • Historical context and author biographies
  • Interactive highlights - click any figure to see related verses
  • Fully responsive - from mobile to desktop
  • Instant search with real-time filtering
  • Dark mode support throughout

Design & User Experience

Home: Your Poetry Library

The landing page presents poems as beautiful, scannable cards. Each card displays the poem’s title, author, era, and a preview of metrics like number of verses and rhetorical figures.

Mobile view of the home page with responsive cardsMobile view of the home page with responsive cards

Smart Filtering & Sorting

Filter poems by author, era, or literary movement. Sort by title, date, or number of verses. Everything updates in real-time.

Seamless Navigation

Navigate between poems with intuitive next/previous buttons. No page reloads, everything is instant thanks to SSR and smart prefetching.


Reading Experience

The Three-Column Layout

Desktop users get a powerful three-column interface optimized for deep analysis:

  1. Left sidebar: Poem navigation and quick actions
  2. Center: The poem itself with interactive verse annotations
  3. Right sidebar: Analysis panel with context, figures, and metrics
Desktop three-column layout showing poem with analysis panel

Interactive Annotations

Hover over any verse to see contextual tooltips with instant information about rhetorical figures, historical notes, or vocabulary definitions.

Rhetorical Figure Highlighting

Click on any rhetorical figure in the analysis panel, and watch as all related verses light up in the poem. This creates visual connections that make understanding complex literary devices intuitive.


Mobile-First Design

Responsive Layouts

On mobile, the three-column layout transforms into a streamlined single-column view with collapsible panels. The analysis panel becomes a drawer that slides up from the bottom.

Mobile poem reading viewMobile filters interfaceMobile sorting options

Read Mode

Toggle Read Mode to remove all UI distractions and focus purely on the poetry. Perfect for deep reading sessions or classroom presentations.

Mobile read mode interface

Advanced Features

Context Accordions

Each poem includes expandable sections with rich context: historical background, author biography, literary movement, and thematic analysis.

Action Bar & Interactions

The action bar provides quick access to essential functions:

Action bar with favorite, share, and read mode controls
  • Favorite poems with a delightful like animation
  • Share directly using the native Web Share API
  • Keyboard shortcuts for power users

Smart Filtering

Apply multiple filters simultaneously: combine authors, eras, and literary movements to find exactly what you need.

Applying filters on mobileResults after filters are applied
Technical Details
For developers & curious minds

Technical Architecture

Why TanStack Start?

I chose TanStack Start over Next.js for several technical reasons:

  • End-to-end type safety: Fully typed router with automatic parameter inference
  • Zero API overhead: Direct data access without unnecessary HTTP layers
  • Lower abstraction: More control over SSR and rendering strategies
  • Modern patterns: Built-in suspense, streaming, and progressive enhancement
  • Developer experience: Outstanding DevTools for debugging and optimization

Performance Optimization

// Map-based indexes for O(1) lookups instead of O(n) filters
const poemsByAuthor = new Map<string, Poem[]>();
const figuresByType = new Map<string, Figure[]>();

All data is statically embedded at build time, eliminating network requests and ensuring instant responses. This approach provides:

  • Zero latency for data access
  • Free hosting on any CDN (Vercel, Netlify, Cloudflare)
  • Perfect caching - immutable content gets cached forever
  • Offline capability - works without network once loaded

Lighthouse Scores

98
Performance
100
Accessibility
100
Best Practices
100
SEO

Data Architecture

Poem Structure

interface Poem {
  id: string;
  title: string;
  author: Author;
  era: Era;
  verses: Verse[];
  figures: Figure[];
  context: Context;
  metrics: {
    verseCount: number;
    figureCount: number;
    readingTime: number;
  };
}

Figure Highlighting System

const highlightFigure = (figureId: string) => {
  const relatedVerses = figureToVerseMap.get(figureId) ?? [];
  
  // Batch DOM updates for performance
  requestAnimationFrame(() => {
    relatedVerses.forEach(verseId => {
      document
        .querySelector(`[data-verse-id="${verseId}"]`)
        ?.classList.add('highlighted');
    });
  });
};

Responsive Design Breakpoints

/* Mobile-first approach */
.layout {
  grid-template-columns: 1fr; /* Mobile */
}

@media (min-width: 768px) {
  .layout {
    grid-template-columns: 240px 1fr; /* Tablet */
  }
}

@media (min-width: 1024px) {
  .layout {
    grid-template-columns: 280px 1fr 320px; /* Desktop */
  }
}

Deployment

Vercel Configuration

{
  "buildCommand": "pnpm build",
  "outputDirectory": "dist",
  "framework": "vite",
  "installCommand": "pnpm install"
}

Environment Setup

No environment variables required—all data is statically embedded. This makes deployment trivial and eliminates configuration errors.

Future Enhancements

  • 📝 User annotations and notes
  • 👥 Community contributions for new poems
  • 🎓 Study guides and lesson plans for teachers
  • 🔊 Audio recordings of poem recitations
  • 🌍 Multi-language support (Catalan, English)
  • 📊 Learning analytics for students

Key Takeaways

For Recruiters

  • Modern stack: React 19, TypeScript, TanStack Start (SSR)
  • Performance-first: Optimized data structures, static generation, perfect Lighthouse scores
  • Design systems: shadcn/ui inspired, fully responsive, dark mode
  • Accessibility: WCAG compliant, keyboard navigation, semantic HTML
  • Production-ready: Deployed on Vercel with CI/CD pipeline

For Developers

  • Architecture: Server-rendered React with client-side hydration
  • Data strategy: Static data with Map-based indexes for O(1) lookups
  • Type safety: Full end-to-end TypeScript with strict mode
  • Styling: Tailwind CSS with custom design tokens
  • State management: TanStack Router for URL-driven state
  • Deployment: Vercel with automatic preview environments

For Literature Enthusiasts

  • Intuitive: No learning curve—hover, click, explore
  • Fast: Instant navigation, no loading spinners
  • Beautiful: Clean, modern interface that respects your preferences
  • Accessible: Works on any device, any screen size, any input method
  • Educational: Makes poetry analysis engaging and approachable

Conclusion

Entre Líneas represents the intersection of literature and modern web technology. By applying contemporary UX patterns to classical poetry analysis, it demonstrates how digital tools can enhance rather than replace traditional learning.

The project showcases technical excellence through performance optimization, type safety, and accessibility, while maintaining a focus on user experience and educational value. It’s a testament to how thoughtful engineering can make complex subjects more accessible and engaging for everyone.

Similar Projects

Entre Líneas