Skip to content

Tech Stack Overview

This document provides a comprehensive overview of our project's technologies and tools. It aims to familiarize you with our technical landscape so you can hit the ground running in your first few weeks.

Server Stack

Our server-side infrastructure prioritizes performance, scalability, and simplicity. Below is an overview of the core components you'll be working with:

  • OS: Ubuntu 22.04 LTS
  • Web Server: nginx (>= 1.26) (We are evaluating the possibility of migrating to FrankenPHP with Caddy for performance improvements.)
  • PHP: Version 8.4, managed via Composer as the dependency manager.
  • Database: MySQL 5.7 (in the process of migrating to MySQL 8.0)
  • Caching: Redis as the key-value store for caching and session management.
  • Front-end: Plain JavaScript, with Laravel Blade serving as the template engine. Web Components are used for reusable UI elements.

Server Architecture

Our architecture is designed for simplicity and high performance. Below is a simplified overview of our core services:

Network Diagram

Key Components

  • App Server:
    • nginx: Handles HTTP requests and serves static content.
    • PHP-FPM: Processes PHP HTTP requests.
    • PHP-CLI: Manages cron jobs and queue workers.
  • Data Storage:
    • MySQL: Managed via DigitalOcean Managed Databases for high availability.
    • Redis: Used for caching and session storage.
    • AWS S3: Stores static assets and backups.
  • Content Delivery Network (CDN):
    • AWS CloudFront: Distributes static content from S3, caching resources closer to users.

Infrastructure Notes

  • Simplicity Over Complexity: We avoid containerization technologies like Docker or Kubernetes in production to maintain a straightforward, performant setup.
  • Content Delivery Strategy: Public pages are geo-cached for optimal performance, while content-heavy endpoints (e.g., course pages) are gated behind a paywall. This allows us to efficiently serve content using a single web server.
  • Hosting and Management:

Server Locations

We host our services in specific regions to meet performance expectations and compliance requirements from our corporate clients:

  • App Servers: DigitalOcean's NYC3 region.
  • AWS S3: us-east-1 region.

Ensure this information remains current, as clients frequently request these details.

For security-related inquiries (such as SOC 2 certification), refer to our security documentation.

Back-end Stack

Our back-end leverages modern PHP practices, focusing on maintainability and performance:

Front-end Stack

Our front-end utilizes modern JavaScript features and tools to enhance developer productivity:

Services and Tools

We leverage several services to streamline development, deployment, and monitoring:

  • Version Control:
  • Issue Tracking:
    • Developers: GitHub Issues and GitHub Projects
    • Non-Technical Teams: Asana
  • CI/CD:
    • GitHub Actions: For automated testing and deployment pipelines.
  • Hosting:
  • Server Management:
  • Monitoring and Analytics:
  • Cross-Browser Testing: