Project Template

I built a very simple node app so that I can mockup projects quickly using pug templates. It’s public on [GitHub](https://github.com/GinBlades/node-mockups), though I don’t really have any plans to make it more accessible for the general public to use it. Basically it’s just a static site generator, and there are plenty out there for people that need more features.

I realized I was jumping into personal projects too quickly, even though I was trying to be careful about planning out the database and business rules. This kind of thing isn’t really a  problem when I’m given a project. But with personal projects, often I try to incorporate new technology or techniques that make it much harder to work with a loose project spec.

I noticed this most recently when I was building something with Laravel and Vue. The goal was actually to learn both Laravel and Vue while making a fun little role-playing game. Of course, making the game actually fun required a bit more complexity to the design than I had planned. Being my first project with frontend and backend technology I wasn’t familiar with, it wasn’t long before the code got out of hand. I decided to make this mockup project to kind of re-center myself.

Originally, I thought Sinatra with Ruby would be the best platform. I thought Sinatra would work fine on Windows, but in fact loading changes to the view seemed to be really slow. It could just be I have something weird with my setup, but I didn’t really want to dig into it. I had much better luck with Node’s Express framework. Node seems to work a bit better on Windows than Ruby or PHP, but I don’t have any benchmarks to back that up.

So now I have a new problem, in that I can set up new mockups very quickly and never finish them. I started three this week. It’s also hard to resist diving into coding the real project before I finish. I think I get more excited about the project when I click through this variation on a “paper prototype” and see it taking shape.

Leave a Reply

Your email address will not be published.