About 25 years ago, a graphic designer I worked with - annoyed by spending so much time just editing text - wished his customers could easily update their content themselves. Shortly after, I got a gig creating a website for a speech recognition company, so using PHP I just started programming a CMS. That was before WordPress, when Netscape 4.7 was still a thing. Sleepless nights of cross-browser incompatibility.
I've used, extended, refactored and experimented with it ever since, across hundreds of real-world web projects. I'm publishing it only now because I wanted to tidy everything up first and... well, life. It's a process though, never done.
It's called PWNC (pounce). The CMS is still a relevant part, but it has grown into an all-in-one web platform. One with many features but streamlined, not relying on any 3rd-party libraries. (I plugged in PhotoSwipe for show though.) It's more like a modular toolset for working with basic web technologies than an abstract framework.
How far did I take it? Let me just say it has its own code highlighting, can fall back to a JPEG codec written in ANSI C, and has UTF-8 support based directly on the official UNICODE tables. Some decisions simply were historical necessities, but I take independence quite seriously. Doesn't mean you can't use external libs though. And sure, realistically, there's no zero-dependency. PWNC just doesn't depend on composer or npm packages.
Why bother? It's fast. Rendering an uncached frontend output takes about 40 ms for an average web page, about 10 ms with integrated partial caching - measured on $5 shared hosting. I can easily get 100/100 PageSpeed building with PWNC.
It's also comfortable and robust. Even optimized for touchscreens. You can just click in, nest and drag around components when editing. But you can also go deep anytime, create your own components using a template engine that offers data/asset integration and basic logic with simple XML tags while allowing you to seamlessly insert PHP code. A component's source looks like basic web code. That's a flat learning curve for any web developer.
PWNC comes with a comprehensive selection of ready-to-use components and frontend/backend apps. Rough summary here: https://pwnc.it/en/features.php . The technical docs are always up to date thanks to an AI workflow (currently Mistral Large 3). I don't have the time to do that manually - and it's actually good. Updating is one click in the backend, automatic full ZIP backup included. Download (or git clone) to running system takes less than 5 minutes.
License: Free to use, modify, and build commercial projects with. If I get hit by a bus, PWNC reverts to MIT. The reason it's not fully OSS at this time is that I don't want my work to be exploited directly. Full license here: https://pwnc.it/en/license.php
If you find a bug - I will fix it. If you have suggestions I will consider them. (Via GitHub please.) If you build something with it, I'd sincerely love to hear about it.
I hope that PWNC poses a useful alternative for devs who prefer my approach or projects that call for it. Let me know if you have questions, but please take a look at my site first, as you may already find an answer there. Before you ask: The mysql_* functions are wrappers.
katzito•1h ago
I've used, extended, refactored and experimented with it ever since, across hundreds of real-world web projects. I'm publishing it only now because I wanted to tidy everything up first and... well, life. It's a process though, never done.
It's called PWNC (pounce). The CMS is still a relevant part, but it has grown into an all-in-one web platform. One with many features but streamlined, not relying on any 3rd-party libraries. (I plugged in PhotoSwipe for show though.) It's more like a modular toolset for working with basic web technologies than an abstract framework.
How far did I take it? Let me just say it has its own code highlighting, can fall back to a JPEG codec written in ANSI C, and has UTF-8 support based directly on the official UNICODE tables. Some decisions simply were historical necessities, but I take independence quite seriously. Doesn't mean you can't use external libs though. And sure, realistically, there's no zero-dependency. PWNC just doesn't depend on composer or npm packages.
Why bother? It's fast. Rendering an uncached frontend output takes about 40 ms for an average web page, about 10 ms with integrated partial caching - measured on $5 shared hosting. I can easily get 100/100 PageSpeed building with PWNC.
It's also comfortable and robust. Even optimized for touchscreens. You can just click in, nest and drag around components when editing. But you can also go deep anytime, create your own components using a template engine that offers data/asset integration and basic logic with simple XML tags while allowing you to seamlessly insert PHP code. A component's source looks like basic web code. That's a flat learning curve for any web developer.
PWNC comes with a comprehensive selection of ready-to-use components and frontend/backend apps. Rough summary here: https://pwnc.it/en/features.php . The technical docs are always up to date thanks to an AI workflow (currently Mistral Large 3). I don't have the time to do that manually - and it's actually good. Updating is one click in the backend, automatic full ZIP backup included. Download (or git clone) to running system takes less than 5 minutes.
License: Free to use, modify, and build commercial projects with. If I get hit by a bus, PWNC reverts to MIT. The reason it's not fully OSS at this time is that I don't want my work to be exploited directly. Full license here: https://pwnc.it/en/license.php
To try it: git clone https://github.com/heydev-de/pwnc.git (or download ZIP) and have a MySQL/MariaDB database ready. Here's a quick-start: https://pwnc.it/en/download.php
If you find a bug - I will fix it. If you have suggestions I will consider them. (Via GitHub please.) If you build something with it, I'd sincerely love to hear about it.
I hope that PWNC poses a useful alternative for devs who prefer my approach or projects that call for it. Let me know if you have questions, but please take a look at my site first, as you may already find an answer there. Before you ask: The mysql_* functions are wrappers.
Website: https://pwnc.it GitHub: https://github.com/heydev-de/pwnc
Example component - HTML list: