Not only is Dropplets a lot more simple to work with compared to other CMS's/blogging platforms written in PHP, it works. It's easy to write themes for it, it's easy to publish content and easy to make it do whatever you want. It's perfect for those times when you want something lightweight that isn't bloated Wordpress.
So I am going to surprise you all by not weighing in on the dick-measuring contest that is language comparison. You can write bad code in any language, PHP just makes it easier to do so. I think this is a great project and if you have a problem with the way it's coded, remember it's open source and anyone can contribute.
This is the other problem with a lot of people that frequent this site, but not limited to this site. They're quick to complain and point out problems with other peoples code and their choice of language, but rarely ever put their keyboard where their mouth is and actually bother to make a difference by contributing to an open source project.
So my advice to anyone who came here to comment on the choice of PHP or the way it's coded would be to take it elsewhere and learn to compliment someone else's work. It's attitudes like the ones I am seeing that make people (like the author of this project) not want to release their work as open source because people are far too critical and judgemental of others.
And I believe people have been contributing, at least, issues have been opened up and at least one commenter has mentioned rewriting (possibly forking) it.
Also they are not using an existing PHP framework so they'll have to reinvent the wheel many times for proper session handling, caching, encryption, and for countless other problems that have already been solved.
Dropplets might not have the prettiest code, but there aren't many projects out there that do. In-fact, Dropplets is no worse than Wordpress is and that hasn't stopped Wordpress being hugely successful. Why? Most people don't care how things are coded if they work. Dropplets works, Wordpress works. If it works, who cares really? As a developer, I don't care, I'm not a code purist. My clients don't care either if I use Wordpress or Dropplets for their site.
Frameworks do have the added advantage of giving you things like encryption, database abstraction and a structure to adhere to, but there's nothing wrong with wanting to do things for yourself, sometimes understanding things on a lower-level makes you a better developer. Besides, the overhead of a PHP framework would be too much for a project like Dropplets in my opinion. Considering it's database-less, you don't need any database abstraction, ORM, no custom-built session management or complicated caching libraries.
Even a framework as light as Codeigniter would be far too heavy to build something like Dropplets on-top of. And people need to realise the future of PHP is not within frameworks, the Composer package manager means we can include what we want in our projects like a framework without the added overhead: include only what you need and ignore everything else.
I was hoping to avoid a framework, language, code-quality discussion but I guess it's fair people raise their hands after I question the intent of the comments on this submission. At the end of the day, good code is important, but as developers we know that it just isn't possible to write good code all of the time without help.
This highlights why open source is important and I think if people truly care about good code, they should roll up their sleeves and help. You can't deny Dropplets is pretty-darn cool. Not nearly enough people contribute to projects like this. I've forked the project and am planning on helping clean up the code-base a little bit if it means more people will use it.
I thought the whole point of open source was getting your ideas and work out there so others can improve it, not criticise it. If we spent all of our time perfecting something, most open source projects in existence would probably not exist. Sometimes it's best to get something that works, but isn't exactly coded to God-like developer levels out into the public. Criticism stems open source. We need to embrace imperfection and achieve perfection as a whole over time.
If I zoom out all the way, there's still no indication you can scroll down, because the page "helpfully" hides everything from you.
It's pretty bad.
It doesn't really matter if there's content below the page height, just that you ensure users see they have the affordance to scroll.
I rarely complain about design issues on websites but this a case where things should really be changed.
I'm a bit worried about the amount of mixedin html and php I see too -- one of the benefits of sticking with an existing templating system (though people will say that's superfluous since PHP is a templating system) is that data passed into templates can be automatically escaped, whereas just mixing in adds the possibility of an xss issue.
It also looks like he's using index.php pages as a way to protect his files possibly? I think he need to look into proper .htaccess protection and url routing - ensure that only predetermined urls can even resolve to anything.
Overall it looks interesting and there's definitely a place for it conceptually but as others have pointed out, the style of PHP is a bit behind what's considered best practice. Still, that can be easily fixed.
EDIT: the installation part in the README.md needs some extra info. Like it requires PHP and some file/directory permissions.
The seemingly only advantage is that Dropplets doesn't require a database, and its landing page is amazingly beautiful, clear, and to the point (though Ghost's "features" page is slick as well).
On a more technical note, click events seem to be propagated up the player on the landing page, closing it when toggling HD for example.
The video was down for me, but maybe the uploader makes it easier then some other systems? When I try to teach non tech people to use a db-less CMS with no online admin, they get Markdown (they can at least copy and paste my example pages). But uploading files, WinSCP, FileZilla, etc and opening its NOT in word... this blows their minds. So if anyone has seen the uploader and it makes it super simple, it might be worth checking out.
Not getting into the code.
I tried playing with the demo and the 'admin panel' (by pressing the dropplet icon in top left) didn't show up for me in Chrome on Windows 7.
The screen moved slightly to the right (say 2 px) so I knew it was supposed to move...but it didn't go the full way.
Not sure why that is.
Edit: It looks like some sort of JS error:
Uncaught TypeError: Cannot call method 'create' of undefined measureIt.js:120 (anonymous function) measureIt.js:120
But who knows, maybe Dropplets is the one.
Plus, it's pretty. Which is always a nice bonus.
----
If you're not averse to paying for something, Statamic looks really awesome.
As long as its price is reasonable, I don't mind paying for a CMS, but it looks like Anchor fit to my needs better than Statamic. All I want from a CMS is to have its own search and markdown support. That's it. I don't care much about themes and all that. I'm perfectly fine with having white background and black text on top of it centered on the page as a "theme".
It seems cool, it also seems like a little bit of work could be put into making it more accessible to people who didn't write it.
It's pretty, but the workflow isn't much better than Jekyll. I would have been happy if there was a post editor in the admin panel, but that's apparently not going to happen.
it's a little discouraging, however, that the issue queue has so many pull requests, comments, etc. without comment.
i love the concept of simplicity and i'm sure the maintainers have a roadmap in mind. it'd be nice if that was communicated a bit so i can know how simple they plan to keep it.
The videos either just stay on the Dropplet background with the music playing, or it just goes away. In all this the BG music keeps playing though like it's playing like normal.
Cool, sounds almost as easy as writing html and deploying it with ftp. We've come full circle to 1996.
Also, how about support for category pages? I mean, show a page full of posts from one particular category only? Possible??
Jekyll requires you to generate your site. Dropplets generates pages on each request.
Jekyll runs on your machine, and is written in Ruby. Dropplets runs on your server, and is written in PHP.
Jekyll's posts require very minimal metadata, and use a key/value pairing system with YAML. Dropplets' posts require a ton of metadata, and the same metadata for every post, and in a specific order, and you can't add arbitrary metadata.
----
I don't think Dropplets has categories, but I may be mistaken.
I looked at the code and my first impression wasn't good. These are minor issues but such "smells" are red flags (to mix metaphors) and warn me away from the codebase
https://github.com/circa75/dropplets/blob/master/index.php#L...
} else if($_GET['filename'] == 'rss' || $_GET['filename'] == 'atom') {
why would you set a get var called "filename" to request an RSS feed? There is no actual file called `rss`, so it's not a file name. So the filename get var is really maybe a file name, maybe some other non-file resource being requested. This is confusing & unintuitive, makes the code harder to read & parse.https://github.com/circa75/dropplets/blob/master/index.php#L...
$posts = ($pagination_on_off != "off") ? array_slice($all_posts,$offset,($posts_per_page > 0) ? $posts_per_page : null) : $all_posts;
too many ternaries!! Why are you testing against a specific string ("false") to indicate a boolean value? This is a major smell as it suggests the author doesn't know the proper use of basic PHP data types.* Why are you adding a ternary if to test posts_per_page size rather than just setting it to `null` to indicate "all posts" in the first place? How can pagination be true with unlimited posts per page anyway? Make posts_per_page null by default, remove redundancy in pagination config var name, make it a bool, and you're left with: $posts = $paginate ? array_slice($all_posts, $offset, $posts_per_page) : $all_posts;
I don't mean to condemn the efforts of the author: everyone starts somewhere and this looks like a pretty dang cool project, but smells like these make me walk away immediately because they indicate this code is going to be confusing and hard to work with. One last one: functions.php. This will send a cold chill down the spine of any PHP dev familiar with the bad old days. Group code logically, write reusable modules, and use namespaces (well skip this last one if you want to support old/cheap hosting)! No need to code like its PHP 4 anymore :)* Yes I see that it's a user defined setting in settings.php or config.php and an argument could be made that a user would understand "on"/"off" more easily than true/false, but this is a trivially solved by a comment & would make the code more robust and readable. More robust because string comparison in PHP is case sensitive, so if the user sets the setting to "OFF" it will effectively be "on." Boolean solves this.
I actually don't remember why I wrote them like that, but I'm pretty sure I had a reason (at least I think I do..)
Again, sorry about that.
Also the last time I tried to set it up, it required that I have a twitter account.
The index page could take a little longer.
Regardless, it's fairly quick, but it generates the output on each request. Which is to be expected, almost every other tool that isn't manually generated is the same.