This is the code behind mwop.net.
It is built on:
- Expressive - The entire site consists of different middleware and handlers for accomplishing different tasks. These include a contact form, social authentication, a blog, and static pages.
- Swoole and the Expressive Swoole bindings, for serving the site, as well as providing async task workers.
- league/plates for templating.
- zendframework/zend-expressive-session-cache for managing sessions.
- league/oauth2-client for social authentication.
- zend-inputfilter, zend-expressive-csrf, and SwiftMailer for handling contact forms.
- zend-paginator and zend-feed for implementing several features of the blog.
- symfony/console for implementing console commands for the site.
If you see bugs in the website, please feel free to provide a pull request!