Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/atom.xml

Large diffs are not rendered by default.

Binary file added docs/images/homelab_2025.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 11 additions & 11 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -46,25 +46,25 @@
<div class="content">

<div class="container p-0">
<img class="w-100" src="&#x2F;images&#x2F;htmx_2025.png" alt="PHPScript&#x20;&#x28;HTMX&#x29;&#x3A;&#x20;Postmodern&#x20;front&#x20;end&#x20;interactions&#x20;in&#x20;PHP">
<img class="w-100" src="&#x2F;images&#x2F;homelab_2025.png" alt="Hosting&#x20;a&#x20;PHP&#x20;app&#x20;in&#x20;a&#x20;Homelab">
</div>
<div class="container bg-white pt-5">
<div class="row px-3 pb-5">
<div class="col-md-12">
<p>Join us on
<time datetime="2025-05-08T19:00:00-04:00" style="display:inline">May 8th, 2025</time>
as Jose Diaz-Gonzalez presents</p>
<h2 class="mb-4 font-weight-bold">PHPScript (HTMX): Postmodern front end interactions in PHP</h2>
<time datetime="2025-06-12T19:00:00-04:00" style="display:inline">June 12th, 2025</time>
as Daniel Abernathy presents</p>
<h2 class="mb-4 font-weight-bold">Hosting a PHP app in a Homelab</h2>
<p class="m-0">
<p>Interactivity in applications has always been important to providing a world-class user experience, but modern
frontend frameworks can make this difficult for small teams or those without frontend experience. We've been
writing interactive applications for decades, so has anything changed for PHP developers? This talk will
cover the history of how PHP developers have typically built applications, and how building great experiences
may not always need new languages and frameworks.</p>
<p>We all love fun and exotic ways to deploy web applications, but sometimes you just want to keep things simple.
You might reach for a VPS - but why not try hosting that app from your house? With Cloudflare Tunnels and a
cheap mini PC you can easily and securely deploy a web application directly from your closet!</p>

</p>
<h3>Presented by Jose Diaz-Gonzalez</h3>
<p><p>CakePHP Core Developer and Platform Engineer</p>
<h3>Presented by Daniel Abernathy</h3>
<p><p>Daniel Abernathy has been a web developer for 13 years.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The nested <p> doesn't look right. Nothing you did, but something that should be looked at outside this PR

He spent much of that time working with PHP, although he works solely with TypeScript today.
He lives outside of Austin, Texas with his wife and two boys.</p>
</p>

</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
<h2 class="mb-4 font-weight-bold">PHPScript (HTMX): Postmodern front end interactions in PHP</h2>
<div class="d-flex mb-3">
<time datetime="2025-05-08T19:00:00-04:00" class="mr-3 text-muted"><i class="fa fa-calendar-alt"></i> May 8th, 2025</time>
<a href="https://www.youtube.com/watch?v=nIHBQQl4H-4" class="mr-3 text-muted"><i class="fab fa-youtube"></i> Watch on YouTube</a>
</div>

<article>
Expand All @@ -78,7 +79,8 @@ <h3>Presented by Jose Diaz-Gonzalez</h3>
<div class="col-12 py-4">
<div class="btn-group btn-group-lg w-100">
<button type="button" class="btn btn-outline-primary" onclick="window.location.href='/meetups/2025/04/10/heaps-of-fun-in-php.html'"><i class="fa fa-angle-left mr-2"></i> Previous meetup: Heaps of Fun in PHP</button>
</div>
<button type="button" class="btn btn-outline-primary" onclick="window.location.href='/meetups/2025/06/12/hosting-a-php-app-in-a-homelab.html'">Next meetup: Hosting a PHP app in a Homelab<i class="fa fa-angle-right ml-2"></i></button>
</div>
</div>

<!-- Footer Start -->
Expand Down
100 changes: 100 additions & 0 deletions docs/meetups/2025/06/12/hosting-a-php-app-in-a-homelab.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>MergePHP</title>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<link rel="alternate" type="application/rss+xml" title="RSS Feed for mergephp.com" href="/atom.xml">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link rel="manifest" href="/icons/site.webmanifest">
<link rel="mask-icon" href="/icons/safari-pinned-tab.svg" color="#000000">
<meta property="og:site_name" content="MergePHP">
<meta property="og:image" content="https://www.mergephp.com/https://www.mergephp.com/images/homelab_2025.png">

<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:300;400;600;700;800&display=swap" rel="stylesheet">

<!-- Font Awesome -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.10.0/css/all.min.css" rel="stylesheet">

<!-- Customized Bootstrap Stylesheet -->
<link href="/css/style.css" rel="stylesheet">
</head>

<body>
<div class="wrapper">
<div class="sidebar">
<div class="sidebar-text d-flex flex-column h-100 justify-content-center text-center">
<a href="/"><img class="mx-auto d-block bg-primary img-fluid mb-4" alt="MergePHP Logo" src="/images/logo.jpg"></a>
<p class="mb-4">
MergePHP meets the second Thursday of every month at 19:00 Eastern/16:00 Pacific
</p>
<div class="d-flex justify-content-center mb-5">
<a class="btn btn-outline-primary mr-2" title="Twitter" href="https://twitter.com/mergephp"><i class="fab fa-twitter"></i></a>
<a class="btn btn-outline-primary mr-2" title="YouTube" href="https://www.youtube.com/c/MergePHP"><i class="fab fa-youtube"></i></a>
<a class="btn btn-outline-primary mr-2" title="LinkedIn" href="https://www.linkedin.com/company/mergephp/"><i class="fab fa-linkedin-in"></i></a>
<a class="btn btn-outline-primary mr-2" title="Mastodon" href="https://phpc.social/@merge"><i class="fab fa-mastodon"></i></a>
<a class="btn btn-outline-primary mr-2" title="RSS" href="/atom.xml"><i class="fa fa-rss"></i></a>
</div>
</div>
<div class="sidebar-icon d-flex flex-column h-100 justify-content-center text-right">
<i class="fas fa-2x fa-angle-double-right text-primary"></i>
</div>
</div>
<div class="content">

<div class="container p-0">
<img class="w-100" src="/images/homelab_2025.png" alt="Hosting a PHP app in a Homelab">
</div>
<div class="container bg-white pt-5">
<div class="row px-3 pb-5">
<div class="col-md-12">

<h2 class="mb-4 font-weight-bold">Hosting a PHP app in a Homelab</h2>
<div class="d-flex mb-3">
<time datetime="2025-06-12T19:00:00-04:00" class="mr-3 text-muted"><i class="fa fa-calendar-alt"></i> June 12th, 2025</time>
</div>

<article>
<p>We all love fun and exotic ways to deploy web applications, but sometimes you just want to keep things simple.
You might reach for a VPS - but why not try hosting that app from your house? With Cloudflare Tunnels and a
cheap mini PC you can easily and securely deploy a web application directly from your closet!</p>

</article>

<h3>Presented by Daniel Abernathy</h3>
<p><p>Daniel Abernathy has been a web developer for 13 years.
He spent much of that time working with PHP, although he works solely with TypeScript today.
He lives outside of Austin, Texas with his wife and two boys.</p>
</p>

</div>
</div>
</div>

<div class="col-12 py-4">
<div class="btn-group btn-group-lg w-100">
<button type="button" class="btn btn-outline-primary" onclick="window.location.href='/meetups/2025/05/08/phpscript-htmx-postmodern-front-end-interactions-in-php.html'"><i class="fa fa-angle-left mr-2"></i> Previous meetup: PHPScript (HTMX): Postmodern front end interactions in PHP</button>
</div>
</div>

<!-- Footer Start -->
<div class="container py-4 bg-secondary text-center">
<p class="m-0 text-white">Participating Groups:
Atlanta, Austin, Boston, Kansas City, Las Vegas, Phoenix, Portland, San Diego, Seattle, Utah, Vancouver </p>
<p class="m-0 text-white">
&copy; MergePHP 2025. Source code available <a class="text-white font-weight-bold" href="https://www.github.com/mergephp/mergephp-website/">on GitHub</a>. Designed by <a class="text-white font-weight-bold" href="https://htmlcodex.com">HTML Codex</a>
</p>
</div>
<!-- Footer End -->
</div>
</div>

<!-- Back to Top -->
<a href="#" class="back-to-top"><i class="fa fa-angle-double-up"></i></a>
</body>
</html>

22 changes: 22 additions & 0 deletions docs/meetups/2025/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,28 @@ <h3 class="mt-md-4 px-md-3 mb-2 py-2 bg-white font-weight-bold"><a href="/meetup
</div>
</div>
</div>
<!-- Blog List Start -->
<div class="container bg-white pt-5">
<div class="row blog-item px-3 pb-5">
<div class="col-md-5">
<img class="img-fluid mb-4 mb-md-0" src="/images/htmx_2025.png" alt="PHPScript (HTMX): Postmodern front end interactions in PHP">
</div>
<div class="col-md-7">
<h3 class="mt-md-4 px-md-3 mb-2 py-2 bg-white font-weight-bold"><a href="/meetups/2025/05/08/phpscript-htmx-postmodern-front-end-interactions-in-php.html">PHPScript (HTMX): Postmodern front end interactions in PHP</a></h3>
<div class="d-flex mb-3">
<time class="mr-2 text-muted"><i class="fa fa-calendar-alt"></i> May 8th, 2025</time>
</div>
<p>
Interactivity in applications has always been important to providing a world-class user experience, but modern
frontend frameworks can make this difficult for small teams or those without frontend experience. We&#039;ve been
writing interactive applications for decades, so has anything changed for PHP developers? This talk will
cover the history of how PHP developers have typically built applications, and how building great experiences
may not always need new languages and frameworks.
</p>
<a class="btn btn-link p-0" href="/meetups/2025/05/08/phpscript-htmx-postmodern-front-end-interactions-in-php.html">Read More <i class="fa fa-angle-right"></i></a>
</div>
</div>
</div>

<hr>

Expand Down
15 changes: 12 additions & 3 deletions docs/sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.mergephp.com/</loc>
<lastmod>2025-04-17T19:54:12+00:00</lastmod>
<lastmod>2025-05-09T18:09:20+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
Expand Down Expand Up @@ -131,7 +131,7 @@
</url>
<url>
<loc>https://www.mergephp.com/meetups/2025/05/08/phpscript-htmx-postmodern-front-end-interactions-in-php.html</loc>
<lastmod>2025-04-17T19:54:05+00:00</lastmod>
<lastmod>2025-05-09T14:30:09+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
<image xmlns="image">
Expand All @@ -149,10 +149,19 @@
</url>
<url>
<loc>https://www.mergephp.com/meetups/2025/index.html</loc>
<lastmod>2025-04-17T19:25:28+00:00</lastmod>
<lastmod>2025-05-09T14:30:09+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.mergephp.com/meetups/2025/06/12/hosting-a-php-app-in-a-homelab.html</loc>
<lastmod>2025-05-09T18:09:04+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
<image xmlns="image">
<loc>https://www.mergephp.com/https://www.mergephp.com/images/homelab_2025.png</loc>
</image>
</url>
<url>
<loc>https://www.mergephp.com/meetups/2024/03/14/debugging-unleashed-mastering-xrdebug-for-php-brilliance.html</loc>
<lastmod>2025-04-17T19:25:28+00:00</lastmod>
Expand Down
Binary file added public/images/homelab_2025.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,9 @@ public function getSpeakerBio(): string
{
return 'CakePHP Core Developer and Platform Engineer';
}

public function getYouTubeLink(): ?string
{
return 'https://www.youtube.com/watch?v=nIHBQQl4H-4';
}
}
51 changes: 51 additions & 0 deletions src/Meetup/Meetup20250612HostingAPhpAppInAHomelab.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?php

declare(strict_types=1);

namespace MergePHP\Website\Meetup;

use DateTimeImmutable;
use DateTimeZone;
use MergePHP\Website\AbstractMeetup;

class Meetup20250612HostingAPhpAppInAHomelab extends AbstractMeetup
{
public function getTitle(): string
{
return 'Hosting a PHP app in a Homelab';
}

public function getDescription(): string
{
return <<<END
We all love fun and exotic ways to deploy web applications, but sometimes you just want to keep things simple.
You might reach for a VPS - but why not try hosting that app from your house? With Cloudflare Tunnels and a
cheap mini PC you can easily and securely deploy a web application directly from your closet!
END;
}

public function getDateTime(): DateTimeImmutable
{
/** @noinspection PhpUnhandledExceptionInspection */
return new DateTimeImmutable('2025-06-12 19:00:00', new DateTimeZone('America/New_York'));
}

public function getImage(): string
{
return '/images/homelab_2025.png';
}

public function getSpeakerName(): string
{
return 'Daniel Abernathy';
}

public function getSpeakerBio(): string
{
return <<<END
Daniel Abernathy has been a web developer for 13 years.
He spent much of that time working with PHP, although he works solely with TypeScript today.
He lives outside of Austin, Texas with his wife and two boys.
END;
}
}