Martin Angelov

Joined on Aug 20th 2009
Tutorialzine founder. Interested in development and design. Busy working on the next big thing.
  • Great work! This looks like a serious tool for handling processing tasks on the frontend. I hope that it gains popularity, as I see great potential in using queues instead of hand coding workers.

    Did you make your library with some specific use case in mind (like machine learning)?

  • Thanks for starting this discussion! This is an interesting topic. Building an entire static blog platform is a lot of work. It seems easy at first, but when you consider the basic blog features like tag pages, categories, search, author bios it quickly goes out of hand.

    Of course it is possible to build it and learn a lot in the process. Any programming language would do. If you go with node, there are lots of libraries on NPM that you can use. Basically you will need to read markdown and transform it to static HTML pages.

    You can also look into the many existing open source static site generators like Jekyll and Hugo. You can find more here.

  • Thank you for sharing! These are some very handy tips. I especially like the blend-mode example and those with box-shadow.

    As of the page itself, this must be the first time I've seen twitter's moments feature. Kinda reminds me of Medium.

  • Thanks for starting this thread, Jean! We considered writing such an article, but there wasn't much to say, really. The migration boiled down to the following steps:

    1. We created the brand new version of Tutorialzine that you see now, with Laravel and Bootstrap.
    2. We wrote some conversion scripts that took our old WordPress database and wp-uploads, and imported them into our new project.
    3. Finally, we initialized a brand new server, deployed the project and ran the migration script.

    Once everything was working, we pointed the DNS from the old server IP to the new one. We also set up cloudflare, so that we get HTTPS, CDN and DoS protection.

  • You can also check out this discussion. People have suggested some pretty good resources.

  • Hello, thanks for joining our forums! That tutorial is getting quite old and it depends on flash. These days browsers have built in support for web cameras through the getUserMedia api, so you should search for a different, more modern plugin. See this newer article by Danny for an example.

  • I see that you've found my tutorial! It is not hard to sort the photos. Add this after the glob statement in load.php:

    usort($files, function($a, $b) {
        return filemtime($b) - filemtime($a);

    I took this snippet from here:

  • I can suggest the Carbon PHP library for this. It has a handy method - diffForHumans that can output something similar. Here is how it's used:

    use Carbon\Carbon;
    $firstDate = Carbon::parse('2017-02-19');
    $secondDate = Carbon::parse('2015-11-14');
    echo $firstDate->diffForHumans($secondDate);

    A thing to keep in mind is that by default this rounds up to the larger unit, so the library would only output "1 Year", instead of 1 Year, X months.

  • Thanks for the reply! We will be announcing the redesign officially soon, complete with our experience migrating to Laravel. These last few days were dedicated to fixing issues and making the new site more usable, but I think we are almost ready for prime time :)

  • To get things started let me introduce myself.

    I am Martin and am based in Bulgaria. I am a web developer and I created Tutorialzine in 2009, during my first year in university (it has been 8 years, can you imagine? Time flies so fast..). Since then I've done a few other projects, but Tutorialzine has always been the place to share what I've learned. A couple of years back, Danny started helping out, and today he is the main editor of the site.

    A big thanks goes to all of you who've been reading Tutorialzine over the years! We have big plans for this site, and with your help, we can make awesome things.