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.

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;homelab_2025.png" alt="Hosting&#x20;a&#x20;PHP&#x20;app&#x20;in&#x20;a&#x20;Homelab">
<img class="w-100" src="&#x2F;images&#x2F;placeholder.webp" alt="Return&#x20;to&#x20;REST">
</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-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>
<time datetime="2025-07-10T19:00:00-04:00" style="display:inline">July 10th, 2025</time>
as Ben Ramsey presents</p>
<h2 class="mb-4 font-weight-bold">Return to REST</h2>
<p class="m-0">
<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>We don't talk about REST much these days. Why is that? Was REST too hard? Did we get tired of it? Did GraphQL
win? Let's revisit REST to learn how its concepts can be put into practice to build great APIs. Along the way,
we'll talk about some of the criticisms of REST and why GraphQL is an attractive alternative. We'll also
discuss when it's okay to bend or break the rules, and we'll cover hypermedia, content negotiation, and API
versioning pitfalls.</p>

</p>
<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>
<h3>Presented by Ben Ramsey</h3>
<p><p>Ben is a seasoned software engineer with 25+ years of experience in web applications. As a Senior Staff Software Engineer at Intuit Mailchimp, he leads the API Core team managing the Mailchimp public API. A passionate advocate for open source, Ben is a PHP release manager, creator of the ramsey/uuid library, and an active community contributor. A prolific writer and speaker, he has contributed to books, articles, and conferences. Connect with him on the web at https://ben.ramsey.dev or on the Fediverse at @ramsey@phpc.social.</p>
</p>

</div>
Expand Down
30 changes: 22 additions & 8 deletions docs/meetups/2025/04/10/heaps-of-fun-in-php.html
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,28 @@ <h2 class="mb-4 font-weight-bold">Heaps of Fun in PHP</h2>
in PHP.</p>
<h3>Resources</h3>
<ul>
<li><a href="https://www.php.net/manual/en/spl.datastructures.php">SPL Data Structures</a></li>
<li><a href="https://doeken.org/blog/linked-lists-explained-in-php">Linked Lists Explained in PHP</a></li>
<li><a href="https://doeken.org/blog/tree-traversal-in-php">Tree Traversal in PHP</a></li>
<li><a href="https://medium.com/the-andela-way/binary-tree-implementation-in-php-e12df09d046f">Binary Tree Implementation in PHP
</a></li>
<li><a href="https://doeken.org/blog/heaps-explained-in-php">Heaps Explained in PHP</a></li>
<li><a href="https://xdebug.org/docs/profiler">Xdebug Profiler</a></li>
<li><a href="https://www.jetbrains.com/help/phpstorm/profiling-with-xdebug.html">PhpStorm Profiling with Xdebug</a></li>
<li>
<a href="https://www.php.net/manual/en/spl.datastructures.php">SPL Data Structures</a>
</li>
<li>
<a href="https://doeken.org/blog/linked-lists-explained-in-php">Linked Lists Explained in PHP</a>
</li>
<li>
<a href="https://doeken.org/blog/tree-traversal-in-php">Tree Traversal in PHP</a>
</li>
<li>
<a href="https://medium.com/the-andela-way/binary-tree-implementation-in-php-e12df09d046f">Binary Tree Implementation in PHP
</a>
</li>
<li>
<a href="https://doeken.org/blog/heaps-explained-in-php">Heaps Explained in PHP</a>
</li>
<li>
<a href="https://xdebug.org/docs/profiler">Xdebug Profiler</a>
</li>
<li>
<a href="https://www.jetbrains.com/help/phpstorm/profiling-with-xdebug.html">PhpStorm Profiling with Xdebug</a>
</li>
</ul>

</article>
Expand Down
3 changes: 2 additions & 1 deletion docs/meetups/2025/06/12/hosting-a-php-app-in-a-homelab.html
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ <h3>Presented by Daniel Abernathy</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/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>
<button type="button" class="btn btn-outline-primary" onclick="window.location.href='/meetups/2025/07/10/return-to-rest.html'">Next meetup: Return to REST<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/07/10/return-to-rest.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/placeholder.webp">

<!-- 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/placeholder.webp" alt="Return to REST">
</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">Return to REST</h2>
<div class="d-flex mb-3">
<time datetime="2025-07-10T19:00:00-04:00" class="mr-3 text-muted"><i class="fa fa-calendar-alt"></i> July 10th, 2025</time>
</div>

<article>
<p>We don't talk about REST much these days. Why is that? Was REST too hard? Did we get tired of it? Did GraphQL
win? Let's revisit REST to learn how its concepts can be put into practice to build great APIs. Along the way,
we'll talk about some of the criticisms of REST and why GraphQL is an attractive alternative. We'll also
discuss when it's okay to bend or break the rules, and we'll cover hypermedia, content negotiation, and API
versioning pitfalls.</p>

</article>

<h3>Presented by Ben Ramsey</h3>
<p><p>Ben is a seasoned software engineer with 25+ years of experience in web applications. As a Senior Staff Software Engineer at Intuit Mailchimp, he leads the API Core team managing the Mailchimp public API. A passionate advocate for open source, Ben is a PHP release manager, creator of the ramsey/uuid library, and an active community contributor. A prolific writer and speaker, he has contributed to books, articles, and conferences. Connect with him on the web at https://ben.ramsey.dev or on the Fediverse at @ramsey@phpc.social.</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/06/12/hosting-a-php-app-in-a-homelab.html'"><i class="fa fa-angle-left mr-2"></i> Previous meetup: Hosting a PHP app in a Homelab</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>

20 changes: 20 additions & 0 deletions docs/meetups/2025/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,26 @@ <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/homelab_2025.png" alt="Hosting a PHP app in a Homelab">
</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/06/12/hosting-a-php-app-in-a-homelab.html">Hosting a PHP app in a Homelab</a></h3>
<div class="d-flex mb-3">
<time class="mr-2 text-muted"><i class="fa fa-calendar-alt"></i> June 12th, 2025</time>
</div>
<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>
<a class="btn btn-link p-0" href="/meetups/2025/06/12/hosting-a-php-app-in-a-homelab.html">Read More <i class="fa fa-angle-right"></i></a>
</div>
</div>
</div>

<hr>

Expand Down
Loading
Loading