Following a project allows you to receive updates via email. It also lets the owner know that you like them.×
Project blogs for everyone!
Most of my free time lately has been spent on the game, but I spent all today working on email notifications for the site. You should now get an email whenever somebody comments on a project you're following, or whenever there's a new log entry. I'm not totally happy with the implementation - the email sending happens in the HTTP request, so that means the user has to wait for email to send for the 'save' operation to finish. I wanted to do it in the background but Heroku doesn't seem to offer a cheap way to instantly run a background job.
I also had to modify django-mailgun a bunch to get it to send batch email. I couldn't get mailgun to batch send with the messages.mime endpoint, so that took a while to figure out. In the end I converted it to not use MIME on my side - now it sends text and HTML versions of the email to mailgun and lets them package it up.
This is definitely the kind of code that would really benefit from a test suite, which I have not targeted for the MVP edition of the site. :)
ANYWAY, the code may still be buggy so please let me know if you see anything weird, or if you are not happy with the way I implemented email notifications!
Today I spent a bunch of time on user registration and accounts. The related pages are styled now so the site feels a little more finished, which is nice. We can now send emails via mailgun too. You can reset your password if you forget it, and you can confirm your email address so we know it's ok to send you updates for projects you're following. It was a little painful to get Django to do what I wanted without reinventing the wheel, but it seems to be working well now.
Probably the next thing I'll work on is actually sending these updates to followers via email, which I think is a really important part of the concept - that's how I know Kickstarter projects I've backed are still going, for instance.
I'm also bumping to 75% because I feel like the work I did today was pretty significant!
There's now a 'settings' tab for projects and users so you can edit your info. Those were really quick to implement with Django forms. Previously I was trying to do settings as click-to-edit objects (like everything on Trello), but that's more trouble than it's worth for now.
I changed the title of this devlog to "devlogs.io MVP" to show that I'm working towards a minimum viable product, so the 70% in the progress is towards an MVP, not towards this site being perfect and done forever. There are different ways to go with the progress bar/status thing but I think I'll wait and see what user habits are.
Gfycat is a cool place to host animated .gif files. It does a bunch of magic to convert your .gif into a movie, saving a ton of bandwidth, and then stays backwards compatible to serve the original .gif to older browsers. Observe1:
Soon I will write a formatting help page. I extended the markdown parser to add support for Gfycat (as well as YouTube, Kickstarter and SoundCloud), so unfortunately it's a custom syntax that I came up with. I would have preferred to use a standardized format but I couldn't find one.
I didn't get much time to work on the site today, but I did put up some old projects just so the front page doesn't look so bare. It was pretty obvious right away that the project grid needed borders around the projects because the screenshot pictures were all white - it was hard to tell where a project ended and the next began. So, I added borders. I also put in analytics and figured out how to use psql with Heroku, which is going to be handy.
For a long time I've been thinking about how to accept donations for projects. I'm also trying to think of ways to monetize this site if it ever did manage to get a user base. One thing I thought of today is to try something similar to what Flattr does. It would work like this: you sign up for a $5/month philanthropist premium account. Then you go around to various projects and allocate percentages to whichever ones you like. Of your $5/month, perhaps a fixed $1 goes to support this website. The remaining $4 goes to the projects you like.
It can take a huge amount of money to fund a successful project, and monthly donations would be unpredictable, but I think a lot of people would be happy just to get a few tips now and then as an incentive to keep going.
This site is for trying to get other people excited about what you're excited about. I wanted to make it because I'm always working on various side projects (and so are most of my friends), but I wait too long to ever show them to anyone. It sucks to do that because you miss out on tons of opportunities for feedback, and then the final result suffers. It's also a bad idea to wait until the last minute to do any marketing. I think a lot of content creators are not comfortable with self-promotion, but just writing a few notes about some work you just did doesn't feel like self-promotion, and it can be really fun and inspiring for others to read.
So, this site lets you easily create a blog for your project with a convenient "about" page and a place for an ongoing discussion. If you have multiple projects, make multiple blogs. My hope is that if enough content creators come here then everybody's projects will improve and more productivity will happen.
That said, the site is not actually ready for anybody to use. It's not even a minimum viable product yet and lots of things are broken. I'll write more posts on the way to that first goal.
To share a little technical info, this site uses Django on the backend, Foundation and jQuery on the front end, and as of last night is hosted on Heroku. This is my first time with Django so I definitely made some time-consuming mistakes and will probably make some more, but overall I'm pretty happy with the stack.
According to the Wikipedia article, there was a dogfood company president who supposedly did eat a can at shareholder meetings. ↩