HydePHP - Elegant and Powerful Static App Builder

Last update: Jun 24, 2022

HydePHP - Elegant and Powerful Static App Builder

Latest Version on Packagist Total Downloads on Packagist License MIT Test Coverage Test Suite

Make static websites, blogs, and documentation pages with the tools you already know and love.

About HydePHP

HydePHP is a content-first Laravel-powered Static Site Builder that allows you to create static HTML pages, blog posts, and documentation sites, using your choice of Markdown and/or Blade.

Build sites in record-time with a full batteries-included TailwindCSS frontend that just works without any fuzz.

Speed & simplicity first, full control when you need it.

Hyde is all about letting you get started quickly by giving you a full-featured frontend starter kit, while also giving you the power and freedom of doing things the way you want to.

Markdown purist? That's all you need. Blade artisan? Go for it. Hyde comes with hand-crafted frontend templates so you can focus on your content. You don't need to customize anything. But you can customize everything.

See the documentation and learn more at https://hydephp.com/docs/

Features

Content Creation

  • Create blog posts using Markdown and Front Matter.
  • Create documentation pages from plain Markdown, no front matter needed!
  • Create simple pages using Markdown, or create advanced ones using Laravel Blade.
  • You can scaffold blog posts and Markdown pages to automatically fill in the front matter.
  • You can also scaffold Blade pages to automatically use the default layout.

Built-in Frontend

  • Hyde comes with a TailwindCSS starter kit so you can start making content right away.
  • The starter kit is fully responsive, has a dark mode theme, and is customizable.
  • The frontend is accessible to screenreaders and rich with semantic HTML and microdata.
  • Hyde automatically chooses the right layout to use depending on the content being rendered.
  • Hyde also fills in and creates content like navigation menus and sidebars automatically.

Easy Asset Managing

  • The Hyde starter comes with HydeFront to serve the base stylesheet and JavaScript through the jsDelivr CDN.
  • Hyde ships with precompiled and minified TailwindCSS styles in the app.css file, you can also load them through the CDN.
  • This means that all the styles you need are already installed. However, if you want to customize the Tailwind config, or if you add new Tailwind classes through Blade files, you can simply run the npm run dev command to recompile the styles using Laravel Mix.

Customization

  • You don't need to configure anything as Hyde is shipped with sensible defaults.
  • You can, however, customize nearly everything. Here are some examples:
  • All frontend components and page layouts are created with Blade so you can publish the vendor views, just like in Laravel.
  • Override many of the dynamic content features like the menus and footer.

Live Demo & Media

The Hyde Website

The Hyde site (https://hydephp.com/) is fully built with Hyde. That includes the homepage, the blog, and the documentation. You can also take a look at the Gallery page which was created using the Blade page module in Hyde and contains interactive graphics showcasing Hyde.

Demo video showcasing how to scaffold a blog post and compile it to static HTML

YouTube Thumbnail

Getting Started - High-level overview

See Installation Guide and Getting Started for the full details.

It's a breeze to get started with Hyde. Create a new Hyde project using Composer:

composer create-project hyde/hyde

Next, place your Markdown files in one of the content directories: _posts, _docs, and _pages which also accepts Blade files. You can also use use the hyde:make command to scaffold them.

When you're ready, run the build command to compile your static site which will save your HTML files in the _site directory.

php hyde build

Beta Software Warning

Heads up! HydePHP is still new and currently in beta. Please report any bugs and issues in the appropriate issue tracker. Versions in the 0.x series might not be stable and may change at any time. No backwards compatibility guarantees are made and there will be breaking changes without notice.

Please wait until v1.0 for production use and remember to back up your source files before updating (use Git!). See https://hydephp.com/docs/master/updating-hyde.html for the upgrade guide.

Resources

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

HydePHP is an open-source project, contributions are very welcome!

Development is made in the HydePHP Monorepo, which you can find here https://github.com/hydephp/develop.

Security

If you discover any security-related issues, please email [email protected] instead of using the issue tracker. All vulnerabilities will be promptly addressed.

Credits

License

The MIT License (MIT). Please see License File for more information.

Attributions

Please see the respective authors' repositories for their license files

GitHub

https://github.com/hydephp/hyde
Comments
  • 1. Roadmap: Extracting the core into a separate package

    #Roadmap: Extracting the core into a separate package

    Abstract:

    I want to extract the core source code into a separate Framework package to make it easier to maintain and update.

    I think this is an important feature that needs to be done before v1.0.

    However, there needs to be some work done first.

    Todos:

    • [x] We need to to make sure the proper file paths are always used. This means that when running code from a vendor directory, Hyde uses paths relative to the actual project.
    • [x] We need to make resources publishable. This means that resources such as Blade files need to reside in the vendor/src, but if they exist (for example if they have been published by a command) in the project resources the custom files take precedence.
    • [x] Since Laravel Zero (which Hyde is based on) has a neat feature to compile into a standalone .phar executable, we should also utilise that in releases. Seems like Zero is not really compatible with apps that make such heavy use of filesystems as Hyde does.

    How to help:

    If you have experience in writing code like this, please leave a comment in this issue and we can coordinate!

    Update

    I have now successfully managed to extract the App directory into a new package. However, I have not yet touched on resources. Adding some new todos of code that needs to be extracted.

    Code to extract

    Code directories:

    • [x] tests
    • [x] app/Commands

    Resource directories: (with stuff that may need to be publishable)

    • [x] resources/
    • [x] src/

    Other:

    • [x] Create a facade for the main Hyde class, added in ffbdf16
    Reviewed by caendesilva at 2022-03-21 13:51
  • 2. v0.35.0-beta - Internal monorepo restructuring and changing of low-level application files

    About

    v0.35.x brings a major internal restructure by organizing the core files into a monorepository, https://github.com/hydephp/develop.

    The most noticeable change for end users is that some low-level Laravel files such as the default AppServiceProvider has been removed, and the bootstrapping file as also been moved. Updating your Hyde project will take care of all these changes. See https://hydephp.com/docs/master/updating-hyde.

    Hyde/Hyde versions higher than this may not be compatible with Hyde/Framework versions that are lower. Same goes the other way around.

    Changes:

    • Breaking: Move bootstrap/app.php to app/bootstrap.php https://github.com/hydephp/develop/commit/f08c97964a10d1e66b6e50ba91b82d30cb05ac28
    • Major: https://github.com/hydephp/develop/pull/6
    • Major (upcoming): Removes the tests directory (as they are moved to the monorepo)
    • Minor: Remove composer and package lock files from the readonly repositories
    • Major internal: Delete .github directory https://github.com/hydephp/develop/commit/d0447357d7f07e814c0bb7df3c8fe239eb242a0e (as actions are moved to the monorepo)
    • Internal: https://github.com/hydephp/develop/pull/8
    • Internal: Change tests namespace from Tests to Hyde\Testing
    • Deprecation: The entire tests directory is deprecated and will be removed, as will the phpunit.dist.xml. The reason being that tests are now handled in the monorepo. The validators are in the process of being rewritten to a custom solution that does not require additional dependencies. This will also make them more testable.
    Reviewed by caendesilva at 2022-06-14 13:50
  • 3. Community Feedback Thread

    Hi everyone! This is Caen, creator of HydePHP! I'd love to get to know everyone interested in this project. Please leave a comment with any thoughts you have, big and small!

    I also want to create a section for the HydePHP website with testimonials and news mentions. This is a great place to leave those!

    I have already gotten some very kind words on Twitter, and mentions in news sites, so here's what I'm thinking: I'll collect those mentions and put them on the website. Since they were posted publicly I will assume it's okay for me to crosspost them. For the sake of privacy, I will not post full names (unless I've gotten explicit permission to do so). However, if I use your mention and you want me to remove it I will, and if you want me to link to your social media etc I will.

    Reviewed by caendesilva at 2022-06-11 13:05
  • 4. Hydeflip? HydePHP 🤝 Kickflip (Experimenting with using Kickflip together with HydePHP)

    Creating this thread to discuss compatibility between HydePHP and Kickflip created by @mallardduck (https://github.com/KickflipCli/kickflip-src / https://kickflip.lucidinternets.com/)

    Reviewed by caendesilva at 2022-05-16 08:34
  • 5. Frontend: Update default index page

    Currently, the default index page is not very meaningful since there are no posts in a base install. _D__Dev_Laravel_ProjectHyde_hydetemp__site_index html

    Instead, I am thinking it would be neat with a page similar to the "Welcome aboard" page in Rails, with instructions on how to get started, how to publish the current default page, and links to the docs.

    Reviewed by caendesilva at 2022-03-22 21:40
  • 6. `npm run watch` endless loop of when using `./_site/**/*.html` in the Tailwind config

    This is related to https://github.com/laravel-mix/laravel-mix/issues/1942 and can probably be fixed by adding the package fast-glob. However, I want to keep dependencies light, so it will not be included with Hyde at this point in time. The issue only happens when running Laravel Mix with the watch script. Running Tailwind with their watch script does not seem to have this issue.

    Reviewed by caendesilva at 2022-05-04 18:08
  • 7. Add Laravel Mix?

    Thinking about adding Laravel Mix. I still want NPM to be optional, but since HydeFront is on NPM it could be cool be able to import it. That way we still have version control, while being able to merge all styles into a single stylesheet.

    Originally posted by @caendesilva in https://github.com/hydephp/framework/issues/207#issuecomment-1114039052

    Reviewed by caendesilva at 2022-04-30 19:12
  • 8. Remove BrowserSync and other dependencies

    Removes BrowserSync as it is not critical to the project and continuously contains too many security vulnerabilities. Users are of course, free to install it if they want it, but it is no longer part of the Hyde core.

    Also removes Concurrently and the Hyde build scripts as they are no longer needed as we have the php hyde serve command.

    Reviewed by caendesilva at 2022-04-20 09:10
  • 9. Companion branch to https://github.com/hydephp/framework/pull/84

    Companion to https://github.com/hydephp/framework/pull/84. Adds the new & changed tests.

    Also adds helpers to the Pest.php class to handle backups and unlinking test files.

    Reviewed by caendesilva at 2022-04-09 10:18
  • 10. Frontend A11y/UX improvement: Increase clickable area of navigation menu items on mobile

    Describe the bug Currently, the default navigation menu on mobile screens has a small bounding box.

    To Reproduce Steps to reproduce the behavior:

    1. Go to a base installation of Hyde, such as the hosted docs, using a mobile device, or by emulating one by resizing the browser window.
    2. Open the navigation menu
    3. Tap to side of a navigation menu item
    4. The link toes not work

    Expected behavior Discovered while device testing on my phone, was attempting to change page using the navigation menu and tapped the list item on the right side of the screen, expected behavior would be for the interaction to still register and lead me to the page, even if I did not technically click on the actual text.

    Screenshots The bounding boxes of the links have been highlighted in blue. The Gallery link has been set to display: block; to increase the bounding box to illustrate the expected behaviour. image

    Desktop (please complete the following information): N/A

    Smartphone (please complete the following information): All mobile devices, or narrow screens are affected.

    Additional context Add any other context about the problem here.

    Reviewed by caendesilva at 2022-04-04 10:10
  • 11. The namespace of the command tests don't follow the project standard

    The namespace name doesn't match the PSR-0/PSR-4 project structure in the command tests.

    This must have happened when separating the Hyde core and needs to be fixed before v1.

    image

    Reviewed by caendesilva at 2022-04-01 18:34
  • 12. GitHub Bug: Files set to export-ignore should not be included when generating a repository from the template

    When using the GitHub template, the resulting repository includes the test directory and the CI workflow. These are set to be ignored by export, and should not be included when using the template either. Noting here for now, will raise an issue for GitHub as well.

    Workarounds: When creating a project using the template, delete the tests and .github directories.

    Reviewed by caendesilva at 2022-06-22 16:55
A Laravel package to manage versions of endpoints in an elegant way

API version control A Laravel package to manage versions of endpoints in an elegant way Two ways to manage the versions of your endpoints Option 1: Ve

Jun 25, 2022
An elegant package for integrate laravel with openwa
An elegant package for integrate laravel with openwa

Whatsapp Laravel An elegant package to integrate Laravel with Whatsapp automate Features Function Reference Send text Send contact Send media (doc, im

Jun 19, 2022
A laravel package to handle model specific additional meta fields in an elegant way.

Laravel Meta Fields A php package for laravel framework to handle model meta data in a elegant way. Installation Require the package using composer: c

Apr 5, 2022
📝 Artisan Menu - Use Artisan via an elegant console GUI
📝 Artisan Menu - Use Artisan via an elegant console GUI

?? Artisan Menu Use Artisan via an elegant console GUI Features Run built-in and custom Artisan commands from a console GUI Prompts to enter required

Mar 9, 2022
📝 Artisan Menu - Use Artisan via an elegant console GUI
📝 Artisan Menu - Use Artisan via an elegant console GUI

?? Artisan Menu Use Artisan via an elegant console GUI Features Run built-in and custom Artisan commands from a console GUI Prompts to enter required

Mar 9, 2022
Generate and autoload custom Helpers, Builder Scope, Service class, Trait

laravel-make-extender Generate and autoload custom helpers, It can generate multilevel helpers in the context of the directory. Generate Service class

Jun 22, 2022
this is cv-builder project in php and ajax

download the project make a database has name cv_builder extract the project in xampp/htdocs/ open the project localhost/cv_builder/index.php or use t

Jun 21, 2022
A MongoDB based Eloquent model and Query builder for Laravel (Moloquent)

Laravel MongoDB This package adds functionalities to the Eloquent model and Query builder for MongoDB, using the original Laravel API. This library ex

Jul 2, 2022
A Laravel Admin Starter project with Page Builder, Roles, Impersonation, Analytics, Blog, News, Banners, FAQ, Testimonials and more

Laravel CMS Starter Project A Laravel CMS Starter project with AdminLTE theme and core features. Preview project here User: [email protected]

Jun 27, 2022
A DynamoDB based Eloquent model and Query builder for Laravel.

Laravel DynamoDB A DynamoDB based Eloquent model and Query builder for Laravel. You can find an example implementation in kitar/simplechat. Motivation

Jun 17, 2022
A simple blog app where a user can signup , login, like a post , delete a post , edit a post. The app is built using laravel , tailwind css and postgres

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Mar 6, 2022
Laravel Form builder for version 5+!

Laravel 5 form builder Form builder for Laravel 5 inspired by Symfony's form builder. With help of Laravels FormBuilder class creates forms that can b

Jun 28, 2022
Provides a Eloquent query builder for Laravel or Lumen
 Provides a Eloquent query builder for Laravel or Lumen

This package provides an advanced filter for Laravel or Lumen model based on incoming requets.

Jun 21, 2022
Reactive Form Builder for Vue.js with Laravel Support
Reactive Form Builder for Vue.js with Laravel Support

Dynamic Form Builder for Laravel with Vue.js Create even the most complex forms with ease, using two-sided validation, eloquent, nested elements, cond

Jun 22, 2022
Laravel Mysql Spatial Builder Extension

magutti-spatial V2 Laravel Builder Mysql Spatial Extension Laravel Builder extensions to calculate distances between two Spatial points using Mysql na

Oct 2, 2021
A TWBS menu builder for Laravel

Laravel Menu Builder A menu builder for Laravel 4-5 using Bootstrap's markup. Документация на Русском Note that this package is shipped with no styles

Jan 6, 2021
A simple to use query builder for the jQuery QueryBuilder plugin for use with Laravel.
A simple to use query builder for the jQuery QueryBuilder plugin for use with Laravel.

QueryBuilderParser Status Label Status Value Build Insights Code Climate Test Coverage QueryBuilderParser is designed mainly to be used inside Laravel

May 29, 2022
Laravel API architecture builder based on artisan commands.

??‍?? API-Formula Laravel API architecture builder based on artisan commands. This package provides a nice and fluent way to generate combined control

Jan 16, 2022
Builder - A handful of tools for Rapid Laravel Development

Grafite Builder Grafite has archived this project and no longer supports or develops the code. We recommend using only as a source of ideas for your o

Jun 25, 2022