About Skills Projects Contact

$ Web Development

I develop and test all my websites in a local Docker-powered environment running Apache, PHP, and MariaDB, replicating real-world server setups. This allows me to fully control dependencies, configure services like HTTPS, and fine-tune performance before deployment. Working locally ensures I can safely experiment, debug, and optimize without affecting live sites.


Want to know how I normally develop websites? Take a look for yourself :)

> Tools and Technologies:

This is a list of tools and technologies I use in web development, during the development process or even the hosting process.


  1. Frontend: HTML, CSS, JavaScript, React.
  2. Backend: PHP, Node.js, MariaDB (MySQL).
  3. Server/DevOps: Docker, Apache, Git, Open-ssh, sshfs, sftp
  4. Domains & Deployment: Namecheap, Cloudflare, Let's Encrypt

> Development Process

  1. Initial Setup:

    Configure Docker container for:

    • Set up environment variables for production (DB credentials, API keys)
    • Apache (web server with PHP support)
    • MariaDB/MySQL (database)

    I use Docker Compose to orchestrate services so the environment mimics production.
    Mount project folders into containers for real-time updates.
    Test URLs locally (e.g., http://localhost:8080) before moving to live hosting.


  2. Developing the website:
    • Frontend: HTML, CSS, JS (in my projects I normally go from scratch with HTML, CSS and JS but I've also used frameworks like React).
    • Backend: PHP with Database connection (sometimes also Node.js)
    • Database: MariaDB (I normaly go with MariaDB as my database of choice

    I regularly test my websites for responsiveness, browser compatibility, and performance on both client and server sides, while writing efficient, secure code to prevent attacks like SQL injection and keeping sensitive database information encrypted.


  3. Preparing for deployment:

    Most of the following preparations I do while developing the website but some just speed up the process of the development if done in the end


    • Configure Apache virtual hosts to match live domain structure.
    • Configure ngrok if website as multiple subdomains for port forwarding
    • Optimize performance (minifying CSS/JS, caching, image compression).

  4. Domain Registration & Hosting:
    • Hosting: I host my websites on my personal home server, which gives me complete control over both the software and the hardware. This allows me to fine-tune performance, security, and configurations to match my needs. I do have power protection in place, but since it’s a single location, it remains a potential single point of failure. To reduce risk, I keep regular cloud backups so my files and projects are always safe even in worst-case scenarios.
    • Domain Registration: I register my domains through services like Namecheap, keeping ownership and control under my name.
    • DNS Configuration: I use Cloudflare to point my domains to my server’s IP address, configuring A, AAAA, and CNAME records as needed. Cloudflare also acts as a protective proxy, adding an extra layer of security against DDoS attacks and improving reliability.
    • SSL Certificates: I secure all my websites with Let’s Encrypt SSL certificates, combined with Cloudflare’s HTTPS support, ensuring encrypted and trustworthy connections for all visitors.

> Web-Development Projects

meSH

meSH is a community-driven discussion platform where users can create, join, and interact in topic-based threads. It’s designed for open conversation, idea sharing, and collaborative discussions, with an interface that makes it easy to browse topics, reply to others, and keep track of ongoing conversations. Built with a focus on speed and simplicity

PHP MySQL HTML CSS JavaScript Docker Apache