[steempress] Open source & self hosted blog platform powered by the steem blockchain
SteemPress Alpha - 0.0.1 - Contributors wanted!
SteemPress is an open source project providing a simple, customizable, self-hostable blog engine powered by the steem blockchain. The goals of the projects are as follows: create a blog platform that anyone can host on any web host. It should be as simple as downloading a zip, editing a few config files, and uploading to a server running PHP.
The initial proof of concept launched almost 2 weeks ago was an interesting experiment, but was using some technologies preventing it from being truly portable. The version released today is a complete rebuild from the ground up using all open source technologies that should theoretically run everywhere!
Interested in viewing the code? Want to help?
I currently don't have a demo site setup but will have one setup in the coming days. My plan is to setup a blog for updates to SteemStats.
Discussion on technologies used
Before the project gets too far along I wanted to release an alpha and start engaging with developers, designers and bloggers here on steemit. This project will take a community to foster and raise, as most open source initiatives do. As a collective, we just need to make sure the right tools are being used and it's accessible to everyone.
To kick things off, here's a list of technologies currently in use by SteemPress, along with my reasoning for choosing them:
- PHP - Almost every web host supports it.
- Silex Framework - Microframe work powered by Symfony. Small footprint and based on rock solid Symfony.
- Twig Templating - Easy to use HTML templating.
- Foundation 6 CSS Framework - The same CSS framework that's used here on steemit.com.
I am open to all of this changing as long as it fits our goals and needs. If you've got ideas, let's chat!
Get involved and opportunities
There's a lot to do to bring this project up to what could be considered 1.0, and I can't do it all alone! If you're interested in contributing, here are some ways to help:
SteemPress could use a default theme that's fitting of being a Steem project. Currently it's using Foundation 6 CSS as the base, but an amazing theme could be build on top of this. If you're interested, I'd currently recommend just building an HTML/CSS template of how you imagine it would look (with sample data) using foundation.
I'd be more than happy to help implement it into SteemPress's core code. Right now it looks pretty crappy :)
In the future, we could have an entire theme marketplace. People creating and sharing themes, posting screenshots, and potentially earning rewards/tips from other users who then use their themes. As much as I hate to say it, the potential for "premium" themes also exists.
There's a lot of work that needs to be done, and I'll be hitting it hard over the next couple days implementing new features and continuing to setup the foundation of the project. Pull requests, opening issues, hell, even just installing it and seeing how easy it is to get running would help at this point. Take a look at the future features list below for some ideas.
Currently I think one of the highest priorities for development is getting a JS layer implemented that allows users to login with their
posting key. From there, we could allow users to comment and vote on posts as they are reading.
To get started, just clone down the code and run
composer install to install the dependencies. I've also included a sample nginx config in the repo. If you have problems, just let me know.
Do you have an idea for a blog that you'd like to be steem powered, yet on it's own blog style website? I'd love to hear what you'd want out of a system like that. It will help shape the direction of the project and hopefully help you get running!
There will also be opportunities for "how-to" articles on how to setup your own blog using steempress!
Places to further discuss this
Currently supported features
- User Blog: Visiting
/@usernameon the application loads a blog style list of that users posts. Each piece of content is previewed, displaying the title, first 2 paragraphs of text, the author and date.
- Full page posts: Using the same URL structure that exists here on steemit, you can access posts for a full view of the content.
- Localization Support: Using the configuration file, you can set the default language of the site to customize the non-content elements. These localization files will need to be expanded and defined.
Features yet to be developed
- Homepage: A default homepage needs to be created that reads the site's configuration and creates a blog based on the configuration provided. The site should be configurable to automatically host the blog of the specified user(s) and could even match specific tags.
- Tag Browsing: Create an in-site navigation that allows for browsing of all content by that user.
- Theme Support:
resources/templatesshould contain different "themes", which users can download to customize the look and feel of the blog.
- User Authentication: Implementing a solution like steemjs by @fabien to allow for user authentication. From there voting, commenting, and even authoring tools could be added. I imagine all user-related activity will happen in the browser, much like steemit.com, and never communicate with the server.
- Deployment Scripts: Setting up scripts to allow for easy deployment to Heroku and similar services for microhosting.
- Caching Layer: A simple caching layer should be added to cache content (statically) on the server for X amount of time. Currently each request calls the blockchain for content.
- Full Test Coverage: The testing framework exists using
phpunit, but needs to be built upon. I plan on integrating it with TravisCI in the very near future for public testing results.
Future of SteemPress.io
The last bit of the puzzle is where the original concept (steempress.io) fits into this equation. It's still running on the proof of concept design I did a few weeks ago, but I will be upgrading it to use this new format in the near future. We will use it to showcase all things steempress related - themes, updates, tutorials, etc.
Let's build something awesome together!
Thanks again steemians - this community has produced some amazing works over the past few weeks. Let's keep this ball rolling and keep adding more and more value to the steem platform!