The Making of Sarah's Forge .Dev
Every developer, at some point, gets the itch to build their own little corner of the internet. A place to host projects, share ideas, and maybe even sell a digital product or two. This site, Sarah's Forge, is the result of me scratching that itch. Instead of reaching for a pre-built CMS like WordPress or a heavy framework, I decided to build it from the ground up, the old-fashioned way: with pure PHP, a dash of SQL, and a clear vision.
This post is a look "under the hood" at the tech, the features, and the lessons learned while forging the Forge.
The Philosophy: Keep it Simple, Keep it Fast
In a world of complex JavaScript frameworks and multi-megabyte library bundles, I wanted to go in the opposite direction. The core philosophy of this site is simplicity and performance.
The entire backend is powered by vanilla PHP connected to a MySQL database. There are no large frameworks abstracting the process; every query, every session, and every file upload is handled directly. This approach offers a few key advantages:
- Blazing Speed: With no overhead from third-party frameworks, pages are incredibly light and load almost instantly.
- Total Control: Every line of code serves a specific purpose. This makes debugging straightforward and customization limitless.
- A Learning Experience: Building from scratch forces a deeper understanding of how the web actually works, from handling HTTP requests to securing a user's session.
The frontend is equally lean, using vanilla JavaScript only where necessary for interactive elements like the shopping cart and the terminal-style "typing" animation on the homepage.
Core Features: A Modular Build
The site wasn't built all at once. It was assembled as a series of distinct, modular features that all plug into the central system. Here are some of the key components we've built:
- Dynamic Admin Panel: A secure, tabbed dashboard for managing all site content.
- User Authentication: A complete system for local registration and login, augmented with a Discord OAuth2 integration for social logins.
- Blog & Portfolio: Both are powered by Markdown (
Parsedown.php
for rendering), allowing for easy content creation directly from the admin panel. - Digital Storefront: A complete e-commerce solution with a product management backend.
- Shopping Cart & Invoicing: A session-based shopping cart and a custom invoicing system for my consulting work.
- Stripe Integration: Secure payment processing for both store products and client invoices, managed via the Stripe Checkout API.
- GitHub Integration: An admin tool that connects to the GitHub API via cURL to automatically pull in my latest open-source projects.
The Look & Feel: A Retro-Terminal Vibe
I wanted the design to reflect a developer's workspace. The aesthetic is heavily inspired by modern code editors and terminal color schemes.
The core of the design is a simple color palette and two carefully chosen fonts:
- Fira Mono: Used for headers, navigation, and code snippets to give everything a distinct, technical feel.
- Inter: A clean, highly readable sans-serif font used for body text.
This combination, along with the "window card" layout for content blocks, creates the feeling of navigating a desktop environment, which is exactly the vibe I was going for.
Challenges & Lessons Learned
Building from scratch isn't without its challenges. The two biggest hurdles were OAuth integration and server permissions. Getting the infamous "invalid redirect uri" error from Discord's API was a lesson in meticulous configuration. Similarly, the classic "permission denied" error on file uploads was a stark reminder of how critical proper server administration (chmod
and chown
) is.
One of the most valuable lessons was the power of reusable components. Early on, many pages had duplicated HTML for the header and footer. Refactoring this into a simple template system was a huge win for maintainability.