Luy Photography

luyphotography.com · Rails Photography Portfolio Website

Snippet of Home Page. luyphotography.com.

Built to showcase the work of my brand, Luy Photography—established in 2017, this website is a personal project born from the intersection of engineering and artistic passion. The site provides a platform for clients to explore my services and understand my brand. It represents the realization of a long-held vision: to leverage technical skills to enhance and express creative endeavors. This project is a testament to the power of technology as a medium for artistic exploration, and I hope it encourages others to bridge the gap between technical proficiency and creative expression.

Tech Stack

Rails

HTML.ERB

SCSS

JavaScript

Bootstrap

Stimulus / Hotwire

PostgreSQL

RSpec

Heroku

Github

Key Features
View Components

Rather than relying on a pre-built CMS, I chose to build a dynamic content management system within my Rails photography website using View Components. This decision allowed for granular control and optimization. I created reusable components like 'carousel,' 'testimonial,' and 'card,' designed to be easily populated with diverse image and text content. This component-based approach facilitates the rapid assembly of sophisticated features, such as 'image carousels' and 'testimonial carousels,' directly within the site's architecture. This method offers the efficiency of a CMS while retaining the customizability and performance benefits of a tailored Rails application.

Challenges & Solutions
Mobile View

Achieving pixel-perfect responsiveness across mobile devices was a significant technical hurdle. Initial issues with layout breakpoints and element scaling required extensive debugging and optimization of CSS media queries. This involved strategic implementation of flexible grid systems and image handling techniques to ensure consistent rendering and functionality on diverse mobile platforms.

Interactive Components

Componentizing interactive elements, such as collapsible text sections, resulted in functionality conflicts when multiple instances were rendered. This was due to shared JavaScript state and event listeners interfering with each other. By implementing independent state management and scoped event delegation, I successfully resolved the issue, ensuring each component functioned correctly in isolation and in multiples.

Development Milestones
Simple Static Rails App (Local Setup & Basic Deployment)

Built a functional static Rails app, mastering routing, controllers, views, asset management, local server setup, and basic deployment, including DNS configuration

Testing & CI/CD

Integrated RSpec for robust unit and integration testing to ensure the reliability and quality of new features. Established a Continuous Integration/Continuous Deployment (CI/CD) pipeline using GitHub Actions, which automates the testing and deployment process on every code change.

Dynamic Database & Inquiries Form

Successfully configured a PostgreSQL database and implemented a new Inquiries model to collect and manage data from prospective clients. This milestone was a crucial step in transforming the site from a static portfolio to a dynamic platform for user interaction.

Stimulus & Hotwire Implementation

Configured and integrated Stimulus to add interactive behavior to the site with minimal JavaScript. This streamlined the development of dynamic user interfaces and improved overall site performance, all while keeping the application's complexity low.

Development Roadmap (Upcoming Features!)
  • Basic Dynamic Content: Blog Posts Model
  • Dynamic Imagery Galleries: Dynamic Gallery, File Uploads, & Cloud Storage
  • User Interactions & Inquiries Related-Tasks: Inquiry Form (Forms, Email, & Background Jobs)
  • More to Come... Stay Tuned for More Updates!

Last Updated: August 1st, 2025.