BiteofanApple Archive About Code Microblog Photos Links
by Brian Schrader

Writing for a website you built from scratch

Posted on Sun, 07 Jul 2013 at 02:35 AM

Creating this site was a challenge I set for myself. As you may have seen from a previous post, I built this site from scratch using nothing but Google, the Mac OS X Terminal, and TextWrangler (For you non-techie folks, that means I wrote the code for this site by hand, without any fancy programs or plugins like Wordpress). I did it as a learning exercise, as a way to learn how websites work internally, and as a way to prove that I could do it.

I had a website before this one. It was a terrible site that I won't even link to, but I had one. It isran on a free Wordpress account and I could customize it to my heart's content, but my heart wasn't content. After a few, admittedly terrible, posts, I abandoned that site and started building this one. The first build of the site was black text on a white background (completely different from now). It read, "You have reached BiteOfAnApple.com," a humble start. From there, I learned how to style things with CSS, and how to use Javascript (well, sorta). I learned all kinds of things about how the web works, and I loved every minute. These are things you just can't learn from a plugin.

The one really important thing I learned from this was that basic websites are really easy to make, like really easy. HTML is so simple and CSS so elegant, that anyone can do it. The hard part is the PHP and the upkeep. If you are reading this, and you think to can't do what I did, you are very wrong. ANYONE CAN.

The Learning, Oh the Learning

The idea of building a website from scratch may sound stupid. People tell me, "There are a ton of really good website builder programs out there, why do it yourself?" Professional web developers even laughed at me, saying I was, "doing it the Old School/Hard way," and this is a good point. What's more, there are thousands of templates you can customize to make a site your own, but the thing is, I didn't want to use them. I wanted to build it from scratch, and having done so, I wholly recommend it. I learned so much about CSS, PHP, Javascript, Python, XML, RSS, and HTML, much more than I would have learned otherwise; plus I really enjoyed doing it. The experience has given me insight into database workings, organizational schemes, and so much more that I would never had been able to grasp by reading a book, or playing with Wordpress. Sometimes you have to build it, and break yourself, in order to understand it, and know how to fix it.

The one thing you will learn, over almost anything else, is that "past-you" was an idiot. You will spend more time cleaning up mistakes you made the day before when you didn't know some crucial bit of information. From personal experience, I can say that I have rewritten the backend of this site more times than I care to think about, but every time making it faster, easier, and more efficient for the computer and for me.

ProTip: Learn how to use "PHP Includes". It makes life so much better.

All of this was a learning experience. All of this taught me to think through what I was going to do before doing it. All of this taught me to be patient, and attentive. In the end, it was all for the better.

The Problem

The thing is, and please read this part before starting up Notepad/TextEdit and doing what I did, I recommend this practice only for test websites, as a learning tool. As I am very quickly finding that keeping this website working properly across all browsers, and keeping it updated manually is quite a pain. Every additional blog post makes it exponentially harder to keep everything working properly. PHP scripts have made the upkeep easier, but there is only so much they can help. At the end of the day, Im still updating XML files manually and FTP-ing into the server to post anything.Now granted, I am working on a CMS (Content Management System) to do most of that for me, but it's not easy (mostly because I have to write the CMS myself). The bottom line for this kind of exercise is: If you do it yourself, you have to be willing to do it ALL yourself. If you want a new feature, you have to make it. This being said, I love the complete customization control that I have. I can change anything anytime, and at levels Wordpress users can only dream of. That being said, I have a lot of days when I go to my site on a friend's computer (or more recently my work computer) and see that the site is broken beyond recognition simply because they use a different browser. I then have to go home, download that browser, or browser version, and figure out why its not working. This is extraordinarily time consuming, and I spend more time fixing the CSS than writing articles, but I do not have a single thing I didn't fix where I didn't learn something.

The Takeaway

I guess the message is, if you are interested in learning how the web works, what makes a website, or you are just absolutely crazy and have a lot of time to waste, then open up Notepad, TextWrangler, or TextEdit, go to Stack Overflow and get working. I promise you'll learn so much after just a few days with it. You may want to stab yourself after the first few hours, but thats expected behavior. Get past that, and a sea of knowledge is in your hands. You'll appreciate the websites you go to a lot more, and you'll be a better person in the end. Just remember, please don't use that site as your main site, there exist professional tools for a reason (I speak from experience).

For now, this site will continue to be 100% hand made. Its too much work now for me to migrate over to something else, and I'm almost over the last big hump (the CMS). If you do choose to build a site yourself, feel free to reach out for help. Stack Overflow is your closest friend, let me tell you that. I'm also available for questions on my about page.

Check it out, whether you succeed or not, it'll be an experience you'll not soon forget (for better or worse), and who knows, you might like it.

Creative Commons License