Web Design and SEO Blog


Ongoing Phone Issues

by Joshua Reynolds in Announcements

You may have been having trouble reaching our Bozeman, Montana website development team’s office by telephone. On a daily basis, Charter Communications’ network has been having trouble and they have been unable to fix the issue.

We have ordered service through a new provider, though it may take a few weeks before the installation is complete. In the meanwhile we invite you to email us or to fill out the form on our contact page if you can't get ahold of us by phone and we'll get back to you as soon as we can. We're sorry for the inconvenience.

Spam-Blocking Upgraded

by Joshua Reynolds in Announcements

We have good news for those of you who have your email managed by JTech. We've improved our spam detection, refining the algorithms we use to protect your inbox from being flooded by a barrage of useless emails. For many of you, this means that you will immediately see a reduction in spam. We're still looking at other causes of spam and considering additional measures to address them.

Blocking spam is less straightforward than it may seem: every day, our email servers block hundreds of thousands of spam messages that never make it as far as your inbox — an invisible vast majority of messages being received by our mail servers. These are the obvious spam messages — from people and organizations you've never met, often trying to harvest your personal information or incite you to purchase off-brand pharmaceuticals.

There are other categories of junk mail that we can't categorically filter: emails from friends or business contacts who've had their email address hijacked, or newsletters that you signed up for but have long-since tired of reading. We can't hit the unsubscribe button for newsletters you're weary of, but we'll keep working to ensure that only legitimate messages make it to your inbox.

Landing Page: Bozeman Chrysler

by Joshua Reynolds in Announcements, SEO

Bozeman Chrysler Dealership
Bozeman Chrysler Dealership
A highlight among the pages in the landing page system we custom-developed for Yellowstone Country Motors is Bozeman Chrysler. This new microsite concisely addresses a very specific market niche — Bozeman, Montana-area residents looking for a Chrysler dealership from which to buy their new car.

JTech’s Bozeman internet marketing and web design team worked with Yellowstone Country Motors to develop content that perfectly captures what makes their dealership unique: an enthusiastic, passionate staff who make buying your new Chrysler fun, factory-cost pricing and a great inventory.

New Account Manager: Karen Addiego

by Joshua Reynolds in Announcements

Karen Addiego
Karen Addiego
Please join us in welcoming Karen Addiego, the latest member of JTech's Montana web development team. Karen is our new Account Manager and will allow us to collaborate more closely with our clients, understanding your custom website needs and helping you be successful doing business online. Karen comes from a background of client-creative relationships and will join our Operations Manager Tyler Miller in tracking web projects and making sure everything gets done on time and without a hitch.

We're excited to have Karen's energy and experience on JTech's team. With Karen as a dedicated Account Manager, we're confident that we can bring improvements to every stage of internet digital strategy — from the beginning of website planning through to ongoing promotion, maintenance and growth. Welcome, Karen!

Phone Trouble

by Joshua Reynolds in Announcements

Our telephone service provider is having trouble off and on. If you are unable to reach us by phone, please fill out the form on our contact page and we'll contact you as soon as possible. We apologize for the inconvenience!

A Website Refresh to Keep Customers Engaged

by Joshua Reynolds in Content, Design, Imagery, Tools & Tips

Your company built a website, spending significant money and time to get it launched. This is the point at which many businesses call it a day – once their website is complete, it is forgotten and left to gather dust. This is a critical error and wastes the money and time spent building their website in the first place. A website is a place to do business, and just like opening a branch office, it needs to be staffed, stocked, maintained, updated and enhanced over time.

What makes updating my website important?
Your website probably serves current and prospective customers, and it's important to show them that your company is busy and actively doing business. Sharing news, promotions or publications from your company does more than keep customers and prospects up to date — it sends the message that your company is still relevant and that they can trust the information found throughout the site.

Because the information is current, your customers are much more likely to share it with others. This has the potential to spread your website and company across social networks, blogs and other companies’ websites without additional promotional efforts, driving inbound traffic to your website. These links are valuable in of themselves, but they also improve your search engine rankings.

Lastly but very importantly, websites that are updated more frequently are given favorable treatment by search engines, showing up higher in the search results. Just as with your customers, updating your website signals to search engines that your website is current and relevant and worth showing to searchers.

Easy, effective ways to keep your website up to date.
How you keep your website fresh will depend somewhat on how you do business. Still, most companies have news worthy of announcing — new products, events, promotions, office openings, or job opportunities. Announcing your company's news on a regular basis is a simple way to keep your website current. Even brief announcements can show that your company is active and vibrant.

Incorporating a blog or longer form content from your company's newsletter can create a corpus of work that draws in new customers and inbound links over months and years to increase your company's profile. This type of content takes longer to develop but is especially effective if you share specialized knowledge that will help to your customers and peers.

Finally, publishing customer testimonials and curating relevant content from other companies can keep your website vibrant and useful. This contributes to your content and can also build a strong positive narrative about your company and the relationship you have with your customers.

But writing isn’t my forte, or I just don’t have the time.
Give us a call! At JTech we believe the best solution is always custom-designed with your organization in mind. We can help develop a digital strategy that plays to your company's strengths and publish a regular stream of useful news and information that keeps your clients engaged.

Responsive Website Overhaul

Next FX
Next FX
The new Next FX Website
The new Next FX Website
Next FX Pyrotechnics
We completely overhauled a website for Next FX, one of the world’s premier suppliers of theatrical pyrotechnics. Next FX’s pyrotechnics create a spectacle at concerts, theme parks, sporting events, films, and more. Next FX is a worldwide leader in their industry, but they build and test their products in the shadows of Montana’s Absaroka Beartooth Mountains.

We built Next FX’s original website half a decade ago as a cutting-edge home for their cutting-edge pyrotechnics and a secure platform for their wholesale partners to request inventory. Their newly overhauled website embraces new technology and showcases their work expansively, with a focus on drama and performance on any device — it is designed responsively, so it looks great and loads quickly whether you’re using a mobile phone, tablet, or computer. The immersive homepage and gallery recreates Next FX’s high impact visuals — if you’ve been to a show or concert where Next FX pyrotechnics were used, we invite you to share your photos: they may be published on the website itself!

Browse their new responsive website to see how Next FX brings drama and excitement to events: next-fx.com

Thursday: Effective Websites Webinar

by JTech Communications in Announcements, Industry News

NRTRC Webinar
NRTRC Webinar
Reminder: JTech president Joshua Reynolds will be presenting a webinar on Effective Websites this Thursday. The Effective Websites webinar will be live at 2:00 pm, Mountain Time on July 31, 2014 — expect a lively discussion of how to advance organizations’ goals online.

To attend the webinar, visit the follow link when it's scheduled to begin: stvincenthealthcare.adobeconnect.com/website

Josh's Effective Websites webinar will discuss how to approach building your organization's custom website: understanding the purpose behind your website, planning a content strategy and hierarchy, budgeting, web design and development, internet marketing and more. The webinar's focus will be on healthcare organizations, although custom website development is a subject applicable to other industries as well.

Thursdays’ webinar is hosted by the Northwest Telehealth Resource Center (NRTRC), a hub of assistance and technical development for Telehealth providers and underserved populations. JTech is a Montana web development partner of NRTRC.

Josh Presenting NRTRC Webinar

by JTech Communications in Announcements, Industry News

NRTRC Webinar
NRTRC Webinar
JTech president Joshua Reynolds will be presenting a webinar on Effective Websites hosted by the Northwest Regional Telehealth Resource Center (NRTRC). JTech is a Montana web development partner of NRTRC.

The webinar will be hosted live at 2:00 pm, Mountain Time on July 31, 2014. If you're interested in attending, visit stvincenthealthcare.adobeconnect.com/website to join the session.

Josh's webinar will discuss how to approach building your organization's website: understanding the purpose behind your website, planning content and hierarchy, budgeting, web design and development, internet marketing and more. Although the webinar's focus will be on healthcare organizations, custom website development is a subject applicable to other industries as well.

Josh is looking forward to a lively discussion of how to effectively advance organizations' strategic goals when doing business online.

In Development: Shipton's Big R

by Joshua Reynolds in Announcements, Design, Development

Shipton's Big R
Shipton's Big R
Billings, Montana: JTech is collaborating with Shipton's Big R on a new advanced website. Shipton's Big R operates three full-service ranch and farm supply stores in Billings, Montana and Sheridan, Wyoming, offering everything needed for ranching, hunting, fishing, camping, automotive repair, and more.

Shipton's forthcoming custom website will employ responsive website design for advanced performance on mobile phones and any device. The site will be packed with information about upcoming events, contests, and featured in-store promotions. JTech's Montana web development team is also building a gateway to employment opportunities with a multi-step job application form integrated into the new Shipton’s website.

We're excited to be working with Shipton’s Big R, a hub of Montana and Wyoming's communities. We enjoy the energy and thoughtfulness that their team brings to our planning and web development process and look forward to sharing a new website with you that is branded with quality.

Using Async to Avoid Render-Blocking

by Patrick Milvich in Development


I came on board at JTech in 2005 and now serve as Vice President of Technology. Although this involves fulfilling a variety of programming and system administration roles, much of my time is spent fine-tuning our custom systems such as JTech's proprietary framework, which powers our advanced websites and gives us the granular control we need for responsive website design, animations and a high level of interaction.

We improve JTech's framework iteratively, with research and development on multiple fronts. In this blog post I'll be talking about how we use asynchronous loading (async) to improve the speed and consistency of website rendering using HTML, JavaScript and CSS.

Render Blocking: Why Async?

When browsers render a website, they must load certain external files sequentially in the order they appear in the code — JavaScript and CSS, for instance — before parsing the rest of the page's HTML and displaying the website to the viewer. We refer to this wait to view the page while waiting for scripts to load as render-blocking, which can add a significant delay for modern websites employing generous amounts of CSS or JavaScript.

Asynchronous JavaScript

HTML5 introduced the async attribute for <script> tags to combat render-blocking. Async specifies that scripts can load asynchronously without causing render-blocking as the browser reads the HTML document — and execute as soon as they’ve finished loading. JTech uses async for all of our external scripts to improve delivery time of the website's layout. Although embedding all JavaScript inline would avoid render blocking, it would create a larger initial load. Pages are perceived as loading faster if the layout appears while the JavaScript is still loading behind the scenes — in our testing, async has been successful because the layout appears quickly and the JavaScript functionality is ready by the time users begin interacting with the site.

<script src=“js/main.js” async></script>

Although all modern browsers support async, we still attempt to provide a useful solution for users stuck on obsolete browsers. One option for older browsers is inline JavaScript in the <head> tag to inject another <script> tag that uses async. This forces asynchronous loading even for browsers without explicit support. This is the method we are currently using in the latest version of our framework.

var newScript = document.createElement(‘script’);
var firstScript = document.getElementsByTagName(‘script’)[0];
newScript.async = 1;
newScript.src = ‘js/main.js’;
firstScript.parentNode.insertBefore(newScript, firstScript);

Another option is to embed <script> tags just before the ending </body> tag, which provides one of the main benefits of async — browsers are able to render all HTML prior to the script before render-blocking is triggered. This technique can be used in conjunction with async for the JavaScript file, but it's not an appropriate solution for files that define the page's layout; e.g. CSS. Because this method allows the script to be seen last, the browsers may fetch other external files before the script, which may cause a queue to load the script. This works well for obtaining additional resources for display purposes, such as images or fonts, but has the potential to delay functionality offered by JavaScript for a faster display. We have used this method before, but I’ve decided that the potential to delay functionality outweighs delaying an image or font.


<script src=“js/main.js” async></script>

Asynchronous CSS

Because our sites’ layouts are dependent on CSS, we need to load it before the content — otherwise the page will "flicker" as it loads and the layout changes. We speed things up quite a bit by embedding our main CSS inline rather than linking to an external style sheet. Although inline CSS can be wasteful if your website has many pages, JTech's websites are 100% AJAX — meaning we're not reloading the HTML and inline CSS as you navigate through the site. Even so, CSS can get quite large, particularly when using inline images to avoid further network requests. Therefore we employ a split solution: most of our CSS is loaded inline with the HTML, while we asynchronously load inline CSS images. The result of loading the main CSS with the HTML and splitting off inline images is that the page's layout loads instantly, followed by the JavaScript and images as they become available.

The <link> tag does not have async support like the <script> tag does, so we use inline JavaScript to inject a link tag with a reference to the CSS file containing our inline images. We use a setTimeout to ensure the link tag is not added until after the first parsing has been accomplished. Otherwise the browser will not async load the css. With some older browsers, most notably IE9, the CSS rule evaluation order cannot be guaranteed and overwriting styles is a risk. For this reason, we keep our external CSS definitions very narrow — using only background-image rather than the more general background selector to avoid potential conflicts and overwriting definitions in background-color or other attributes. IE10 and IE11 and other modern browsers evaluate CSS rules more predictably, which will allow us to make bolder declarations using asynchronously loaded styles in the future.

<style type=“text/css”>/* inline css */</style>
setTimeout(function() {
var newLink = document.createElement(‘link’);
var firstStyle = document.getElementsByTagName(‘style’)[0];
l.type = ‘text/css’;
l.rel = ‘stylesheet’;
l.href = ‘css/images.css’;
firstStyle.parentNode.insertBefore(newLink, firstStyle);
}, 0);

The Future: Asynchronous Fonts

Fonts are a bit more tricky. Unlike CSS and JavaScript, external fonts are not loaded until the browser encounters that font being used on the page. We can't force font pre-loading without using a JavaScript solution or heavy feature-detection, neither of which are solutions that I'm happy with. In the near future this problem will solve itself as browsers that do not support the woff font format will fade away. In the shorter term, I expect to begin using a hybrid approach with inline woff fonts and external otf/ttf files as a fallback.

Going Forward Asynchronously

Async is now widely supported, and as older browsers go out of circulation we'll be able to provide ever-cleaner and increasingly-efficient page loads while limiting the amount of trickery involved in getting the browser to play nice. As support becomes better, we'll be able to not only deliver pages more quickly, but also more seamlessly — without any render flickering or as many noticeable gaps in the layout or behavior as the page is loaded by the browser. In the present, there are a wide variety of approaches to asynchronous loading. If you have a clever approach or new ideas, we'd love to hear them.

Reference Pages:

Spec: http://www.w3.org/TR/html5/scripting-1.html#attr-script-async
Usage: http://www.w3schools.com/tags/att_script_async.asp
Compatibility: http://caniuse.com/#feat=script-async