Back to Projects

Lexdrel Main Site

Ruby RoR AWS K8S TurboRails PostgresQL

Lexdrel Main Site


The Lexdrel Main Site is a full-stack web application built entirely with Ruby on Rails, designed not only as a personal platform but also as a practical environment to explore modern software architecture, cloud services, container orchestration, and production-grade deployment workflows.

Application Architecture

The application uses PostgreSQL as its primary relational database. PostgreSQL was selected for its reliability, performance, advanced querying capabilities, and strong integration with the Rails ecosystem. All business logic, data persistence, and application workflows are managed through Rails and Active Record.

The entire backend is developed in Ruby on Rails, following a monolithic architecture that emphasizes maintainability, developer productivity, and rapid feature development. The project intentionally demonstrates how a modern Rails application can scale while maintaining a clean and understandable codebase.

Modern Frontend with Hotwire

Instead of relying on a large JavaScript framework such as React, Angular, or Vue, the frontend leverages the Hotwire ecosystem, specifically Turbo and Stimulus.

Turbo is used to provide fast page navigation, partial page updates, and seamless user interactions without requiring full-page reloads. Stimulus controllers introduce JavaScript behavior only where necessary, resulting in a lightweight frontend architecture that remains highly interactive while avoiding excessive client-side complexity.

This approach keeps most application logic server-side while still delivering a responsive user experience.

Background Processing

The application processes asynchronous workloads using Solid Queue, the modern database-backed background job framework for Rails.

Background jobs are primarily used for email-related workflows, including customer notifications, contact requests, and other communication processes that should not block the main request-response cycle.

The production environment currently runs two dedicated worker processes, allowing jobs to be processed independently from the web application. This architecture improves responsiveness and ensures a better experience for end users even during periods of increased activity.

Email Infrastructure

Email delivery is powered by Amazon Web Services Simple Email Service (AWS SES).

The application is fully integrated with AWS SES and is deployed with production credentials, allowing the platform to send transactional emails to external recipients through the Rails application. This setup provides:

  • Reliable outbound email delivery
  • High deliverability rates
  • Scalable email infrastructure
  • Centralized monitoring through AWS
The system supports automated email workflows initiated both synchronously and through background job processing.

Media Storage

User-uploaded and application-generated images are stored in Amazon S3.

Rails Active Storage is integrated with S3, enabling scalable object storage outside the application servers. This approach keeps container images lightweight while allowing the platform to efficiently manage and serve uploaded media content.

Benefits include:

  • Virtually unlimited storage capacity
  • High durability and availability
  • Separation between application compute resources and file storage
  • Simplified backup and disaster recovery considerations

Containerized Deployment

The entire application is containerized using Docker and deployed within a K3s Kubernetes cluster.

The deployment pipeline automatically builds Docker images, publishes them to Docker Hub, and updates the running application through Kubernetes rolling deployments. This workflow provides a modern CI/CD experience while maintaining operational simplicity.

Hybrid Kubernetes Infrastructure

One of the most interesting aspects of the project is its Kubernetes environment.

Rather than using a traditional single-cloud deployment, the cluster was intentionally built as a hybrid multi-node K3s environment composed of:

  • A Virtual Private Server (VPS)
  • An Amazon EC2 instance
  • An on-premises server
This architecture was created primarily for educational purposes. The goal was to gain practical experience managing distributed Kubernetes infrastructure across different environments and networking conditions.

Through this setup, the project explores topics such as:

  • Kubernetes cluster administration
  • Hybrid cloud infrastructure
  • Container orchestration
  • Service discovery
  • TLS and ingress management
  • High availability concepts
  • Continuous deployment pipelines
Project Goals

Beyond serving as a personal website, the Lexdrel Main Site functions as a living laboratory for modern software engineering practices. The project combines application development, cloud services, containerization, infrastructure management, CI/CD automation, and distributed systems into a single production environment.

It demonstrates how a modern Rails application can integrate with AWS services, process asynchronous workloads, leverage Hotwire for rich user experiences, and operate in a Kubernetes-based infrastructure while remaining focused on simplicity, maintainability, and practical learning.