Professional freelance PHP engineer portfolio website showcasing expertise in modern PHP development, infrastructure automation, and high-performance web applications with hybrid pagination system.
The portfolio is automatically deployed to GitHub Pages at: ltscommerce.dev
This is a statically generated portfolio site built with modern web technologies and automated CI/CD deployment. The site features:
- Modern Build System: Vite 5.x with ES modules and asset optimization
- Template-Driven Development: EJS templating system for maintainable code
- Automated Deployment: GitHub Actions CI/CD with quality gates
- Performance Optimized: Lighthouse-tested with automated performance monitoring
- Content Management: Dynamic article system with syntax highlighting
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Templating: EJS (Embedded JavaScript templates)
- Build Tool: Vite 5.x (ES module bundler)
- Package Manager: npm with lockfile
- Syntax Highlighting: Highlight.js
- CI/CD: GitHub Actions
- Hosting: GitHub Pages
βββ private_html/ # Source files (development)
β βββ templates/ # EJS template system
β β βββ layouts/ # Base layouts (base.ejs, page.ejs, article.ejs)
β β βββ partials/ # Reusable components (navigation.ejs, footer.ejs)
β β βββ components/ # Smaller components (article-card.ejs)
β βββ pages/ # EJS page templates
β βββ data/ # Template data (site.json, navigation.json)
β βββ articles/ # Article EJS templates
β βββ css/ # Stylesheets
β βββ js/ # JavaScript modules
β βββ images/ # Static assets
βββ public_html/ # Built files (production)
βββ scripts/ # Build utilities
βββ .github/workflows/ # CI/CD configuration
βββ qa-tools/ # Code quality tools
- Node.js 18+ and npm
- Git
-
Clone the repository
git clone <repository-url> cd site
-
Install dependencies
npm install
-
Start development server
npm run dev
The site will be available at
http://localhost:3000 -
Build for production
npm run build
-
Preview production build
npm run preview
The site uses a three-stage build process:
- Article Registration - Scans EJS templates and extracts metadata
- Vite Asset Processing - Bundles and optimizes CSS/JS with hashing
- EJS Template Processing - Converts templates to static HTML
Articles are created using EJS templates with automated metadata extraction:
-
Create article template
cp private_html/articles/example-article.ejs private_html/articles/your-article-slug.ejs
-
Edit the EJS template
<%- include('../templates/layouts/article', { articleTitle: 'Your Article Title', articleDescription: 'SEO meta description', articleDate: '2025-07-25', articleCategory: 'php|infrastructure|database|ai', articleReadingTime: '6', articleContent: ` <div class="intro"> <p class="lead">Lead paragraph...</p> </div> <section> <h2>Section Title</h2> <pre><code class="language-php"><?php echo "Hello World"; ?></code></pre> </section> ` }) %>
-
Test locally
npm run dev
-
Deploy (articles are automatically registered!)
git add . git commit -m "Add new article: Your Article Title" git push origin main
- CSS, JavaScript, PHP, Bash, SQL, YAML, JSON, Nginx
Every push to the main branch triggers the automated CI/CD pipeline:
- Auto-Format - Prettier formats all code and commits changes
- Quality Checks - Linting and code style validation
- Build Process - Three-stage build with asset optimization
- Deploy - Built files committed to repository
- GitHub Pages - Site deployment (triggered only on CI success)
- Performance Audit - Lighthouse testing post-deployment
Force deployment using GitHub Actions UI:
gh workflow run "Deploy static content to Pages"npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview built site
npm run format:check # Check code formatting (CI only)
npm run lint:check # Check linting (CI only)
npm run syntax-highlight # Process code syntax highlightingImportant: This project uses CI-only formatting. Do NOT run local formatting commands.
- Auto-Formatting: Prettier automatically formats code on push
- Auto-Fixing: PHP-CS-Fixer automatically fixes PHP code style
- Quality Gates: Deployment blocked if CI checks fail
- Performance Monitoring: Automated Lighthouse auditing
Debug layout issues by taking screenshots of live pages:
node scripts/screenshot.js
# Modify the URL in the script as neededScreenshots are saved to the var/ directory (gitignored).
- Fork the repository
- Create a feature branch
- Make changes and test locally with
npm run dev - Push to your fork - CI will handle formatting and quality checks
- Create a pull request
- Focus on functionality - CI handles all formatting automatically
- Use semantic HTML and accessible markup
- Follow the existing EJS template patterns
- Include proper syntax highlighting for code blocks
This is a personal portfolio project. Please respect the content and code structure.
Portfolio Site | Built with