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
- Redis
- Sidekiq
- Devise
- Docker
-
Multi-Tenant Architecture
- Users can create multiple profile pages
- Slug-based routing (yourapp.com/justin)
- Strict ownership scoping for secure data isolation
-
Optimized Read-Heavy Endpoints
- Indexed slug lookups
- ETag / Last-Modified caching headers
- Cache invalidation tied to profile updates
-
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.
-
Integrated Continuous Integration Implemented GitHub action workflows for continuous integration and continuous delivery
-
Background Processing with Sidekiq Built asynchronous aggregation jobs to maintain responsive dashboards while handling high event volume.
- 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)