A scalable multi-tenant link-in-bio platform that allows users to create customizable public profile pages and track real-time analytics through optimized, write-heavy event logging.
- Ruby
- Ruby on Rails
- MySQL
- SQL
- AWS EC2
- Nginx
- Active Storage
- Docker
- Unique slug-based public profiles (
yourapp.com/username) - Strict ownership scoping for secure user data isolation
- Designed for scalable profile-based SaaS systems
- Indexed slug lookups for fast profile resolution
- ETag / Last-Modified headers for efficient browser caching
- Cache invalidation tied to profile content updates
- Upload, preview, and download PDF resumes from profiles
- Managed with Active Storage for safe file handling
- Unified link and file experience in a single profile flow
- Captures click events separately from reporting reads
- Background jobs aggregate data into hourly/daily metrics
- Enables scalable analytics without impacting request latency
- Dockerized Rails app for consistent environments
- Nginx reverse proxy with HTTPS/TLS configuration
- Ready for internet-facing production deployment
- Devise-based authentication for user account management
- Ownership checks prevent cross-user data access
- Clear separation of public and private routes
- Strong validations and uniqueness constraints
- Safer URL handling and session/auth edge-case fixes
- Dependency auditing and vulnerability patching
-
Designing a Multi-Tenant System Structured data models to isolate user data safely while supporting scalable public traffic across thousands of profiles.
-
Aggressive MySQL Indexing Implemented compound indexes (profile_id, occurred_at) and unique constraints to maintain performance under scale.
- Clone the repo (git clone )
- Install dependencies (bundle install)
- Setup database (rails db:create db:migrate)
- Start Redis (redis-server)
- Start Rails (rails server)
- Start Sidekiq (in another terminal) (bundle exec sidekiq)
- Build image (docker build -t linknest:latest .)
- Run containers (docker compose up --build)
