Elevating Entropy.fi: My Contributions (January–June 2025)
Executive Snapshot
In the first half of 2025 I focused on four broad outcomes:
- Make the site feel faster (progressive media, stable layout, reduced jank)
- Clarify time‑based experiences (a clearer event timetable and a more “live” stream presence)
- Unify the visual and interaction layer (full icon system migration, consistent components)
- Reduce future friction (localization groundwork, refactoring, dead code removal)
The through‑line: reduce cognitive noise, surface “what matters now,” and prepare for growth without rewrites.
Two Distinct User Experiences: Timetable and Stream
The event timetable and the stream page serve different intents. Earlier drafts blurred them; this version separates them cleanly.
1. Event Timetable (Per‑Event Schedule View)
Purpose: Give visitors a full, glanceable map of an event—who plays when, on which stage, and how the sequence unfolds.
Improvements & Intent:
- Stage segmentation: Scales from single-stage events to multi-stage layouts without becoming cluttered.
- Current position awareness: Subtle “now” context for orientation if a user opens it mid‑event.
- Multi‑day resilience: Automatically adapts formatting when an event spans days; no manual mental conversion.
- Back‑to‑back clarity: Consecutive or simultaneous start times handled cleanly (including B2B or tight transitions).
- Optional enrichment: Genre or “Live” markers add value without overwhelming the timeline.
- Name consistency: Artists rendered in a predictable, uniform pattern to minimize scanning effort.
- Editor flexibility: Predefined blocks (DJ, VJ variants) can be embedded directly into event content without recreating logic.
Outcome: A timetable that behaves like a map—fast to scan, low friction for planning, and resilient to edge cases.
2. Stream Page created
Purpose: Give a “what’s live right now” view—nothing more, nothing less. The stream page is not a schedule and does not try to predict or display a running order.
Refinements:
- Live emphasis only: The page shows the act currently performing.
- Manual / dynamic performer set: A logged‑in user with permission can set or change the active artist at any moment. This is a deliberate manual action, not derived from any timetable.
- Flexible naming: If two artists collaborate spontaneously, the active label can simply be updated to reflect both—there is no sequencing logic to fight.
- Shareable clarity: When the stream link is shared, recipients immediately see who is live (the current manually set performer name flows into the context / metadata).
- Minimal cognitive load: By excluding past and future, the page reads as a single clear status panel instead of a compressed timeline.
- Post‑stream handling: After the stream ends, recordings are not listed on the live page. Instead, the artist profile owner can download the recording and distribute or publish it wherever they choose (external platforms, socials, etc.), keeping the live page free of archive clutter.
Outcome: A “now‑first” destination with no implied queue. It reports the present state accurately, adapts instantly to spontaneous changes, and leaves ownership and distribution of recordings to the artist rather than turning the live view into a library.
Media & Perceived Performance
What changed:
- Progressive image loading -> Immediate low‑res impression, seamless sharpen to full quality.
- Viewport‑aware lazy loading -> Only loads what a user is likely to see soon.
- Cache awareness -> Skips transitional effects for already-warm assets.
- Stabilized placeholder (sijaiskuva) logic site‑wide -> Eliminated flicker and mismatched transitions.
- Rationalized size semantics -> Reduced accidental overfetch and layout shift.
Result: The site feels faster, increasing trust and reducing abandonment friction.
Visual & Interaction Consistency
Full migration to Symfony UX Icons (site‑wide context):
- Unified sizing, stroke, and alignment for a cleaner rhythm.
- Simplifies future theming (dark mode, seasonal or event theming).
- Improves accessibility by standardizing decorative vs semantic icon patterns.
- Speeds iteration—icon changes become a naming concern, not an asset pipeline task.
Scheduling & Context Enhancements
Beyond isolating timetable vs stream:
- Surfaced simultaneous / overlapping acts to prevent hidden conflicts.
- Added explicit end boundaries where useful (increasing schedule trust).
- Refined micro‑indicators so users can parse state with peripheral glance rather than full reading.
- Clear visual distinction between current, upcoming, and past slots.
Localization & Future-Facing Infrastructure
Groundwork laid:
- Routing and selectors adjusted for localized paths.
- Navigation normalized so locale expansion does not fragment layout or URL consistency.
- Deferred broad translation rollout until structural consolidation—avoids translating soon‑to‑change fragments.
Benefit: Language expansion becomes additive instead of a structural rewrite.
Maintainability & Refactoring
Highlights:
- Removed unused services to shrink mental surface area.
- Consolidated menu-building logic for a single, predictable source.
- Adopted automated refactoring (e.g. Rector) for syntax and pattern modernisation.
- Iterative micro-fixes (lazy load edges, cached asset states) prevented “minor” issues from compounding into major friction.
Principle: A codebase that invites change accelerates product evolution.
Reliability & Edge Cases
Addressed:
- Correct handling of artist inclusion/exclusion mid‑cycle.
- Graceful gaps and transitions in multi‑day timelines.
- Stable rendering when users land mid‑event with cached resources.
These small corrections multiply overall experiential stability.
Guiding Product Principles
- Clarity over cleverness: Each page has a single clear intent.
- Perceived speed is user trust.
- Separation of intent prevents UI cognitive overload.
- Consistency compounds: uniform patterns cut interpretive overhead.
- Prepare before scaling: groundwork for localization and component reuse reduces future capital expenditure.
Impact Overview (Qualitative)
| Area | User Value | Strategic Value |
|---|---|---|
| Timetable | Effortless planning | Reusable scheduling pattern |
| Stream Page | Instant live context | Platform for richer real-time features |
| Media Pipeline | Faster-feeling site | Performance headroom |
| Icon Migration | Cohesive visuals | Theming & a11y flexibility |
| Refactoring & Cleanup | Fewer glitches | Faster iteration, easier onboarding |
| Localization Prep | Native-feeling future languages | Avoids disruptive rewrites |
Iteration Pattern
- Ship a focused improvement
- Observe real-world edge cases
- Apply precise micro-fix
- Remove obsolete workaround
- Repeat to compound polish
This minimized risk while steadily raising quality.
Closing Reflection
First half or 2025 was about quiet structural compounding: a clearer boundary between planning and presence, a faster perceived experience, and groundwork for future feature velocity. The separation of these experiences establishes a cleaner narrative for upcoming user-facing enhancements.