17 May 2016 - by 'Maurits van der Schee'
I have been blogging for two and a half months now on TQdev.com and traffic slowly starts to build up. Unlike most blogs on the Internet this blog is not powered by Wordpress. For this blog I am writing my own blogging software. I am basing the features on my WordPress experience. The software aims to be a Wordpress clone that is faster, more secure and batteries (such as SEO and analytics) included. It renders super-fast as it does not do any cross-site requests or execute any JavaScript at all. It is not complete yet, but very much a "Work In Progress" that is being built while also writing posts. I chose this path because I feel that it is quite educational (and satisfying) to be confronted with every detail of blogging and it's software.
I have added a few features since I started:
These features are all focused on increasing visitors and views, either through SEO (Sitemap), through revisiting (RSS) or via the user interface (Archive).
This blog is build for speed, security and usability. Currently it is protected by an application firewall limiting to 10 concurrent connections from the same IP address to avoid Denial of Service attacks. Even with this protection enabled the site performs under 10ms and does about 1000rps as you can see below:
maurits@nuc:~$ ab -c 8 -n 100000 http://localhost/2016-xubuntu-16-04-thunar
This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
^C
Server Software: Apache/2.4.18
Server Hostname: localhost
Server Port: 80
Document Path: /2016-xubuntu-16-04-thunar-crashes-on-rename
Document Length: 8415 bytes
Concurrency Level: 8
Time taken for tests: 6.329 seconds
Complete requests: 6246
Failed requests: 0
Total transferred: 54733698 bytes
HTML transferred: 52560090 bytes
Requests per second: 986.92 [#/sec] (mean)
Time per request: 8.106 [ms] (mean)
Time per request: 1.013 [ms] (mean, across all concurrent requests)
Transfer rate: 8445.71 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 2 8 3.0 8 40
Waiting: 2 8 2.9 7 39
Total: 3 8 3.0 8 40
Percentage of the requests served within a certain time (ms)
50% 8
66% 9
75% 10
80% 10
90% 12
95% 13
98% 15
99% 17
100% 40 (longest request)
maurits@nuc:~$
NB: The above is achieved without turning off the (server-side database-driven) analytics!
Do you want to help build this free, secure, fast, user-friendly and SEO optimized blog software? Join me on Github.
PS: Liked this article? Please share it on Facebook, Twitter or LinkedIn.