using-github-template-repos-to-jump-start-static-site-projects

If you’re getting started with static site generators, did you know you can use GitHub template repositories to quickly start new projects and reduce your setup time?

Most static site generators make installation easy, but each project still requires configuration after installation. When you build a lot of similar projects, you may duplicate effort during the setup phase. GitHub template repositories may save you a lot of time if you find yourself:

  • creating the same folder structures from previous projects,
  • copying and pasting config files from previous projects, and
  • copying and pasting boilerplate code from previous projects.

Unlike forking a repository, which allows you to use someone else’s code as a starting point, template repositories allow you to use your own code as a starting point, where each new project gets its own, independent Git history. Check it out!

Let’s take a look at how we can set up a convenient workflow. We’ll set up a boilerplate Eleventy project, turn it into a Git repository, host the repository on GitHub, and then configure that repository to be a template. Then, next time you have a static site project, you’ll be able to come back to the repository, click a button, and start working from an exact copy of your boilerplate.

Are you ready to try it out? Let’s set up our own static site using GitHub templates to see just how much templates can help streamline a static site project.

I’m using Eleventy as an example of a static site generator because it’s my personal go-to, but this process will work for Hugo, Jekyll, Nuxt, or any other flavor of static site generator you prefer.

If you want to see the finished product, check out my static site template repository.

First off, let’s create a template folder

We’re going to kick things off by running each of these in the command line:

cd ~
mkdir static-site-template
cd static-site-template

These three commands change directory into your home directory (~ in Unix-based systems), make a new directory called static-site-template, and then change directory into the static-site-template directory.

Next, we’ll initialize the Node project

In order to work with Eleventy, we need to install Node.js which allows your computer to run JavaScript code outside of a web browser.

Node.js comes with node package manager, or npm, which downloads node packages to your computer. Eleventy is a node package, so we can use npm to fetch it.

Assuming Node.js is installed, let’s head back to the command line and run:

npm init

This creates a file called package.json in the directory. npm will prompt you for a series of questions to fill out the metadata in your package.json. After answering the questions, the Node.js project is initialized.

Now we can install Eleventy

Initializing the project gave us a package.json file which lets npm install packages, run scripts, and do other tasks for us inside that project. npm uses package.json as an entry point in the project to figure out precisely how and what it should do when we give it commands.

We can tell npm to install Eleventy as a development dependency by running:

npm install -D @11ty/eleventy

This will add a devDependency entry to the package.json file and install the Eleventy package to a node_modules folder in the project.

The cool thing about the package.json file is that any other computer with Node.js and npm can read it and know to install Eleventy in the project node_modules directory without having to install it manually. See, we’re already streamlining things!

Configuring Eleventy

There are tons of ways to configure an Eleventy project. Flexibility is Eleventy’s strength. For the purposes of this tutorial, I’m going to demonstrate a configuration that provides:

  • A folder to cleanly separate website source code from overall project files
  • An HTML document for a single page website
  • CSS to style the document
  • JavaScript to add functionality to the document

Hop back in the command line. Inside the static-site-template folder, run these commands one by one (excluding the comments that appear after each # symbol):

mkdir src           # creates a directory for your website source code
mkdir src/css       # creates a directory for the website styles
mkdir src/js        # creates a directory for the website JavaScript
touch index.html    # creates the website HTML document
touch css/style.css # creates the website styles
touch js/main.js    # creates the website JavaScript

This creates the basic file structure that will inform the Eleventy build. However, if we run Eleventy right now, it won’t generate the website we want. We still have to configure Eleventy to understand that it should only use files in the src folder for building, and that the css and js folders should be processed with passthrough file copy.

You can give this information to Eleventy through a file called .eleventy.js in the root of the static-site-template folder. You can create that file by running this command inside the static-site-template folder:

touch .eleventy.js

Edit the file in your favorite text editor so that it contains this:

module.exports = function(eleventyConfig) {
  eleventyConfig.addPassthroughCopy("src/css");
  eleventyConfig.addPassthroughCopy("src/js");
  return {
    dir: {
      input: "src"
    }
  };
};

Lines 2 and 3 tell Eleventy to use passthrough file copy for CSS and JavaScript. Line 6 tells Eleventy to use only the src directory to build its output.

Eleventy will now give us the expected output we want. Let’s put that to the test by putting this In the command line:

npx @11ty/eleventy

The npx command allows npm to execute code from the project node_module directory without touching the global environment. You’ll see output like this:

Writing _site/index.html from ./src/index.html.
Copied 2 items and Processed 1 file in 0.04 seconds (v0.9.0)

The static-site-template folder should now have a new directory in it called _site. If you dig into that folder, you’ll find the css and js directories, along with the index.html file.

This _site folder is the final output from Eleventy. It is the entirety of the website, and you can host it on any static web host.

Without any content, styles, or scripts, the generated site isn’t very interesting:

Let’s create a boilerplate website

Next up, we’re going to put together the baseline for a super simple website we can use as the starting point for all projects moving forward.

It’s worth mentioning that Eleventy has a ton of boilerplate files for different types of projects. It’s totally fine to go with one of these though I often find I wind up needing to roll my own. So that’s what we’re doing here.



  
    
    
    Static site template
    
    
    
  
  
  

Great job making your website template!

We may as well style things a tiny bit, so let’s add this to src/css/style.css:

body {
  font-family: sans-serif;
}

And we can confirm JavaScript is hooked up by adding this to src/js/main.js:

(function() {
  console.log('Invoke the static site template JavaScript!');
})();

Want to see what we’ve got? Run npx @11ty/eleventy --serve in the command line. Eleventy will spin up a server with Browsersync and provide the local URL, which is probably something like localhost:8080.

Even the console tells us things are ready to go!

Let’s move this over to a GitHub repo

Git is the most commonly used version control system in software development. Most Unix-based computers come with it installed, and you can turn any directory into a Git repository by running this command:

git init

We should get a message like this:

Initialized empty Git repository in /path/to/static-site-template/.git/

That means a hidden .git folder was added inside the project directory, which allows the Git program to run commands against the project.

Before we start running a bunch of Git commands on the project, we need to tell Git about files we don’t want it to touch.

Inside the static-site-template directory, run:

touch .gitignore

Then open up that file in your favorite text editor. Add this content to the file:

_site/
node_modules/

This tells Git to ignore the node_modules directory and the _site directory. Committing every single Node.js module to the repo could make things really messy and tough to manage. All that information is already in package.json anyway.

Similarly, there’s no need to version control _site. Eleventy can generate it from the files in src, so no need to take up space in GitHub. It’s also possible that if we were to:

  • version control _site,
  • change files in src, or
  • forget to run Eleventy again,

then _site will reflect an older build of the website, and future developers (or a future version of yourself) may accidentally use an outdated version of the site.

Git is version control software, and GitHub is a Git repository host. There are other Git host providers like BitBucket or GitLab, but since we’re talking about a GitHub-specific feature (template repositories), we’ll push our work up to GitHub. If you don’t already have an account, go ahead and join GitHub. Once you have an account, create a GitHub repository and name it static-site-template.

GitHub will ask a few questions when setting up a new repository. One of those is whether we want to create a new repository on the command line or push an existing repository from the command line. Neither of these choices are exactly what we need. They assume we either don’t have anything at all, or we have been using Git locally already. The static-site-template project already exists, has a Git repository initialized, but doesn’t yet have any commits on it.

So let’s ignore the prompts and instead run the following commands in the command line. Make sure to have the URL GitHub provides in the command from line 3 handy:

git add .
git commit -m "first commit"
git remote add origin https://github.com/your-username/static-site-template.git
git push -u origin master

This adds the entire static-site-template folder to the Git staging area. It commits it with the message “first commit,” adds a remote repository (the GitHub repository), and then pushes up the master branch to that repository.

Let’s template-ize this thing

OK, this is the crux of what we have been working toward. GitHub templates allows us to use the repository we’ve just created as the foundation for other projects in the future — without having to do all the work we’ve done to get here!

Click Settings on the GitHub landing page of the repository to get started. On the settings page, check the button for Template repository.

Now when we go back to the repository page, we’ll get a big green button that says Use this template. Click it and GitHub will create a new repository that’s a mirror of our new template. The new repository will start with the same files and folders as static-site-template. From there, download or clone that new repository to start a new project with all the base files and configuration we set up in the template project.

We can extend the template for future projects

Now that we have a template repository, we can use it for any new static site project that comes up. However, You may find that a new project has additional needs than what’s been set up in the template. For example, let’s say you need to tap into Eleventy’s templating engine or data processing power.

Go ahead and build on top of the template as you work on the new project. When you finish that project, identify pieces you want to reuse in future projects. Perhaps you figured out a cool hover effect on buttons. Or you built your own JavaScript carousel element. Or maybe you’re really proud of the document design and hierarchy of information.

If you think anything you did on a project might come up again on your next run, remove the project-specific details and add the new stuff to your template project. Push those changes up to GitHub, and the next time you use static-site-template to kick off a project, your reusable code will be available to you.

There are some limitations to this, of course

GitHub template repositories are a useful tool for avoiding repetitive setup on new web development projects. I find this especially useful for static site projects. These template repositories might not be as appropriate for more complex projects that require external services like databases with configuration that cannot be version-controlled in a single directory.

Template repositories allow you to ship reusable code you have written so you can solve a problem once and use that solution over and over again. But while your new solutions will carry over to future projects, they won’t be ported backwards to old projects.

This is a useful process for sites with very similar structure, styles, and functionality. Projects with wildly varied requirements may not benefit from this code-sharing, and you could end up bloating your project with unnecessary code.

Wrapping up

There you have it! You now have everything you need to not only start a static site project using Eleventy, but the power to re-purpose it on future projects. GitHub templates are so handy for kicking off projects quickly where we otherwise would have to re-build the same wheel over and over. Use them to your advantage and enjoy a jump start on your projects moving forward!

119 comments

  1. Do you have a spam problem on this website; I also am a blogger, and I was wondering your situation; many of us have created some nice practices and we are looking to trade
    solutions with others, please shoot me an e-mail if
    interested.

  2. Hi there! I know this is somеwhat off topic but I was wondering
    which blog platform aгe you using for this site? I’mgetting fed ᥙp of Wordpгess because I’ve
    had problems with hackers and I’m looking at options for anther platfοrm.
    I would be fantastс if you could point me in the ԁirection of a
    good platfогm.

  3. Hi there! This is kind of off topic but I need
    some guidance from an established blog. Is it very hard to set up your own blog?
    I’m not very techincal but I can figure things out pretty fast.

    I’m thinking about creating my own but I’m not sure
    where to start. Do you have any tips or suggestions?
    Appreciate it

  4. I simply had to appreciate you once again. I’m
    not certain what I would’ve created without the basics documented
    by you concerning this theme. Certainly was a horrifying case in my opinion, but looking at this professional manner you dealt with
    it forced me to cry over contentment. Extremely grateful for
    your assistance and even sincerely hope you realize
    what a powerful job that you are accomplishing instructing
    people today via your websites. Probably you haven’t met all of us.

    Also visit my web-site bbs.pdmao.com

  5. A fascinating discussion is worth comment. I do think that you need to publish more about this
    issue, it may not be a taboo matter but typically
    people don’t speak about such issues. To the next! Many
    thanks!!

    Also visit my blog mpc-install.com

  6. Hello there, I discovered your web site via Google whilst searching for a comparable
    topic, your site came up, it seems to be great. I have bookmarked it in my google bookmarks.[X-N-E-W-L-I-N-S-P-I-N-X]Hi there,
    simply became aware of your weblog thru Google, and found that it’s truly informative.
    I am going to be careful for brussels. I will be grateful for those who proceed this in future.
    Many people can be benefited out of your writing. Cheers!

    Also visit my webpage bbs.yunweishidai.com

  7. Hello! Do you know if they make any plugins to assist
    with SEO? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very
    good success. If you know of any please share. Many thanks!

    Also visit my webpage – 163.30.42.16

  8. wonderful put up, very informative. I wonder why the
    other specialists of this sector don’t realize this. You must continue your writing.
    I’m sure, you have a great readers’ base already!

    Also visit my site :: silvanus.us

  9. Good website! I truly love how it is easy on my eyes and the data are well written. I am wondering how I could be notified
    when a new post has been made. I have subscribed to your feed which must do the trick!
    Have a great day!

    Feel free to visit my blog – yunke029.com

  10. Thanks for one’s marvelous posting! I really enjoyed reading it, you’re a great
    author. I will be sure to bookmark your blog and may come back someday.
    I want to encourage you continue your great job, have a nice
    day!

    Also visit my homepage mpc-install.com

  11. Hi, this weekend is good in favor of me, for the reason that this point in time i am reading this
    enormous informative paragraph here at my home.

  12. This is really interesting, You are a very skilled blogger.
    I have joined your feed and look forward to seeking more of your fantastic post.

    Also, I have shared your website in my social networks!

    my site – kannikar.com

  13. My husband and i were peaceful Peter managed to
    do his analysis by way of the precious recommendations he discovered when using the blog.

    It is now and again perplexing to simply choose to be giving for free guides that many men and women could have been selling.
    Therefore we know we’ve got the writer to give thanks to for this.
    Those explanations you have made, the straightforward site navigation, the friendships you can aid to engender – it is mostly fantastic,
    and it’s aiding our son in addition to us reason why the subject is excellent,
    and that is rather pressing. Many thanks for the whole lot!

    Here is my web blog :: http://frun-test.sakura.ne.jp

  14. Thanks for the auspicious writeup. It in fact was a
    enjoyment account it. Glance advanced to more delivered agreeable from you!
    However, how could we keep up a correspondence?

    my website; Lashonda

  15. With havin so much content and articles do you ever run into any issues of plagorism or copyright violation? My site has a lot of
    unique content I’ve either authored myself or outsourced but it appears a lot of it is popping it up all over the internet without my permission. Do you
    know any techniques to help protect against content
    from being ripped off? I’d genuinely appreciate
    it.

    Here is my web blog: mpc-install.com

  16. I will immediately seize your rss as I can not find your email subscription hyperlink or newsletter service.
    Do you’ve any? Please allow me realize in order that I may subscribe.

    Thanks.

    Also visit my web-site :: clubriders.men

  17. hey there and thank you for your information – I’ve definitely picked up anything new from right here.

    I did however expertise some technical issues using this website,
    as I experienced to reload the web site many times previous to I could
    get it to load properly. I had been wondering if your hosting is
    OK? Not that I’m complaining, but slow loading instances times will very frequently affect
    your placement in google and could damage your high quality score if ads
    and marketing with Adwords. Anyway I am adding this RSS to my email and can look out for a lot
    more of your respective intriguing content. Make sure you update this again soon..

    My web page: vetearii.free.fr

  18. We would like to thank you just as before for the stunning
    ideas you offered Janet when preparing her post-graduate research as well as, most
    importantly, for providing every one of the ideas in a
    single blog post. If we had been aware of your blog a year
    ago, we will have been rescued from the needless measures we were having to take.

    Thanks to you.

    Take a look at my site :: http://pansionat.com.ru/modules.php?name=Your_Account&op=userinfo&username=CaseErnestine

  19. I intended to put you this bit of note to say thank you
    over again for your pretty principles you have featured on this site.
    This is certainly seriously generous of you to supply publicly exactly what a few people would have sold for an ebook in making some cash on their own, notably considering that you
    could possibly have tried it in the event you considered necessary.

    These good tips in addition worked as the easy way to
    recognize that the rest have a similar dreams really like my very own to figure out lots more
    related to this condition. I know there are thousands of more pleasant instances in the future for many who find out your blog.

    Feel free to surf to my blog post; http://www.ankarac.com

  20. I’m curious to find out what blog platform you happen to be utilizing?

    I’m experiencing some small security issues with my latest site and I’d like to find something more risk-free.
    Do you have any solutions?

    my web-site – mpc-install.com

  21. Hi! Someone in my Facebook group shared this website with us so I came to give it a look.
    I’m definitely loving the information. I’m book-marking and
    will be tweeting this to my followers! Exceptional blog and wonderful design.

    Here is my web blog :: mpc-install.com

  22. Right here is the perfect webpage for everyone who wishes to understand this topic.
    You understand a whole lot its almost hard to argue with you
    (not that I really will need to?HaHa). You certainly put a new spin on a topic that’s been discussed for years.
    Excellent stuff, just great!

    My website http://www.qijiang520.com

  23. you’re actually a good webmaster. The site loading pace is amazing.
    It sort of feels that you’re doing any distinctive trick.
    Also, The contents are masterwork. you’ve performed a great task in this topic!

    Here is my web-site: http://www.mi77b.cn

  24. I enjoy you because of your entire hard work on this website.

    My mom really likes setting aside time for investigations and it is obvious why.
    My spouse and i hear all about the dynamic medium you provide efficient information via your web site
    and even encourage contribution from visitors on this subject
    matter while our favorite daughter is now becoming
    educated so much. Take advantage of the rest of the new year.
    You are always carrying out a good job.

    Stop by my web site … http://www.craksracing.com

  25. Thank you for another informative site. Where else may I get that kind of info
    written in such an ideal approach? I’ve a project that I
    am just now running on, and I’ve been on the glance out
    for such information.

    My blog post; clubriders.men

  26. certainly like your web site however you need to
    check the spelling on quite a few of your posts. Several of them are rife with spelling problems and I to
    find it very troublesome to inform the reality then again I will
    definitely come again again.

    Stop by my website … https://kebe.top/

  27. hello there and thank you for your information ? I have certainly picked up anything
    new from right here. I did however expertise several technical
    points using this site, since I experienced to reload the web site
    lots of times previous to I could get it to load properly.
    I had been wondering if your web host is OK? Not that I am
    complaining, but slow loading instances times will very frequently affect your placement
    in google and could damage your quality score if ads and marketing with Adwords.
    Anyway I?m adding this RSS to my e-mail and could look out for much more of
    your respective interesting content. Make sure you update this again very soon..

    Here is my web page :: lovegamematch.com

  28. I think this is one of the most important information for me.
    And i’m glad reading your article. But wanna remark on few general things, The website style is perfect, the articles is really
    nice : D. Good job, cheers

    Have a look at my blog … a91764dx.bget.ru

  29. An outstanding share! I’ve just forwarded this onto a friend who has been conducting
    a little homework on this. And he in fact bought me lunch due
    to the fact that I found it for him… lol.
    So let me reword this…. Thank YOU for the meal!!
    But yeah, thanks for spending time to discuss this
    subject here on your internet site.

    Here is my homepage :: http://www.aniene.net/modules.php?name=Your_Account&op=userinfo&username=WysockiPete

  30. Thank you for your own effort on this blog. My mum loves participating in investigations and it’s really easy to see why.

    A number of us notice all concerning the powerful
    tactic you offer practical tips and hints by means of your web blog and as well cause contribution from people
    on that concept then our princess is now being taught a lot.
    Take advantage of the remaining portion of the new year.
    You are always performing a great job.

    Also visit my web site pansionat.com.ru

  31. Hiya, I am really glad I’ve found this information. Today bloggers publish just about
    gossips and internet and this is actually annoying. A good site
    with interesting content, that’s what I need. Thank you for keeping
    this website, I will be visiting it. Do you do newsletters?
    Can’t find it.

    My blog post; http://www.qijiang520.com

  32. Thanks for one’s marvelous posting! I truly enjoyed reading it, you may be a great
    author. I will remember to bookmark your blog
    and may come back at some point. I want to encourage you
    continue your great work, have a nice afternoon!

    Feel free to surf to my blog post … yunke029.com

  33. This excellent website definitely has all the information I
    wanted about this subject and didn’t know who to ask.

    Feel free to visit my web-site – kebe.top

  34. Its not my first time to pay a quick visit this website, i am visiting this website dailly and obtain pleasant
    information from here everyday.

    My webpage kebe.top

  35. An impressive share! I’ve just forwarded this onto
    a colleague who has been doing a little research on this.
    And he actually ordered me breakfast due to
    the fact that I stumbled upon it for him… lol.
    So allow me to reword this…. Thank YOU for the meal!!
    But yeah, thanks for spending the time to discuss this matter here
    on your blog.

    Visit my homepage … lovegamematch.com

  36. I love your blog.. very nice colors & theme.
    Did you make this website yourself or did you hire someone to do it
    for you? Plz reply as I’m looking to design my own blog and would
    like to find out where u got this from. thanks a lot

    my blog post … 120.116.38.11

  37. Wow, wonderful blog layout! How long have you been blogging for?
    you make blogging look easy. The overall look of your website is wonderful, as well as the content!

    Also visit my web site; Tracie

  38. Great goods from you, man. I have understand your stuff previous
    to and you are just extremely fantastic. I actually like what you’ve acquired
    here, certainly like what you are saying and the way in which you say it.
    You make it enjoyable and you still care for to keep it sensible.
    I cant wait to read much more from you. This
    is really a great website.

    Take a look at my website https://kebe.top

  39. Hello! I could have sworn I?ve visited this website before but
    after looking at many of the posts I realized it?s new to me.
    Anyways, I?m definitely pleased I stumbled upon it and I?ll be bookmarking it and
    checking back regularly!

    Here is my website – bbs.pdmao.com

  40. Hi there! Quick question that’s totally off topic. Do you know how
    to make your site mobile friendly? My site looks weird when browsing from my iphone4.

    I’m trying to find a theme or plugin that might be able to resolve
    this issue. If you have any recommendations, please
    share. Thanks!

    Feel free to surf to my page :: kebe.top

  41. Attractive component to content. I simply stumbled upon your site and
    in accession capital to claim that I get actually loved
    account your weblog posts. Any way I’ll be subscribing
    for your feeds or even I fulfillment you get entry to consistently
    rapidly.

    My site: Karissa

  42. I keep listening to the newscast talk about getting free online grant applications so I have been looking
    around for the most excellent site to get one. Could you tell me please, where could i find some?

    Here is my homepage … Boltz Pro Charger

  43. Everyone loves what you guys tend to be up too.
    Such clever work and coverage! Keep up the awesome works
    guys I’ve incorporated you guys to my personal blogroll.

    My web site: Boltz Pro

  44. I’m impressed, I have to admit. Seldom do I come across a blog that’s both educative and entertaining,
    and let me tell you, you’ve hit the nail on the head.
    The problem is something not enough men and women are speaking intelligently about.
    I’m very happy that I came across this during my hunt for something relating to this.

    Feel free to visit my homepage – Instant Keto Price

  45. I hardly leave remarks, however I read some of the responses on this page Using GitHub Template Repos to Jump-Start Static Site Projects –
    Pavvy Designs. I actually do have a couple of
    questions for you if it’s allright. Is it simply me or
    do some of the responses look like they are written by brain dead folks?

    😛 And, if you are posting at additional social sites,
    I’d like to follow everything new you have to post.

    Would you make a list of all of all your social community pages like your
    Facebook page, twitter feed, or linkedin profile?

    My web site … fotosombra.com.br

  46. We’re a bunch of volunteers and opening a brand new scheme in our community.
    Your web site provided us with valuable information to work on. You’ve performed a formidable task and our
    entire community might be thankful to you.

    Feel free to surf to my webpage … Keto Vibe Pills

  47. Thanks for all of your labor on this site.
    My daughter takes pleasure in setting aside time for investigation and it’s really simple to grasp why.
    We notice all relating to the dynamic ways you render functional
    solutions via your blog and in addition attract response from other people on that area so
    our favorite girl is starting to learn a great deal.
    Take advantage of the remaining portion of the year. You
    are always conducting a splendid job.[X-N-E-W-L-I-N-S-P-I-N-X]I’m really impressed together with
    your writing talents as smartly as with the structure in your blog.
    Is this a paid theme or did you customize it yourself?
    Either way stay up the nice high quality writing, it is rare
    to see a great blog like this one today.

    Also visit my web page – Premium Shot Keto

  48. You can definitely see your skills in the paintings you write.
    The sector hopes for even more passionate writers like you who are not afraid to say how they believe.
    All the time go after your heart.

    My blog Nuubu

  49. I would like to consider the ability of thanking you for the
    professional assistance I have constantly enjoyed viewing your site.
    I will be looking forward to the commencement of my university
    research and the overall prep would never have been complete without surfing this site.
    If I might be of any assistance to others, I’d personally be glad to help by way
    of what I have discovered from here.

    Feel free to surf to my site – mpc-install.com

  50. Hi there, simply was alert to your blog thru Google,
    and found that it’s really informative. I am gonna be careful for brussels.
    I’ll appreciate if you proceed this in future. A lot of other folks can be
    benefited from your writing. Cheers!

    my web-site: mpc-install.com

  51. Nice weblog right here! Additionally your website rather a lot up very fast!

    What web host are you using? Can I get your associate hyperlink in your host?
    I desire my web site loaded up as fast as yours lol

    Review my web page :: shihan.com.ru

  52. Terrific work! That is the type of information that are supposed to be shared around the internet.
    Disgrace on Google for no longer positioning
    this submit upper! Come on over and consult with my website .
    Thank you =)

    Here is my web-site: Breeze Tech

Leave a Reply

Your email address will not be published.