View From The Front: JavaScript MVC Frameworks Crash Course

JavaScript MVC Frameworks

The Rise of JavaScript MVC Frameworks

There was a time when front-end web authoring technologies were the “V” of MVC frameworks. As user interaction became more complex, JavaScript MVC frameworks became necessary in order to meet those needs. In this article, you’ll get the gist of what’s popular today, and what’s on the horizon tomorrow.

When to Use A JavaScript MVC Framework

JavaScript MVC frameworks aren’t suitable for every project, but for the right projects, they are clutch. These include single page apps, pages with large datasets being frequently requested and changed, pages with complex user interactions, or likely all of the above. e.g. WordPress and Drupal dashboards.

The Popular MVC Frameworks in Town

There are currently three popular open source JavaScript MVC frameworks:



  • Easy to onboard and take to cruising speed
  • Maintained by Google developers (curiously, no notable Google project to date was written in it)
  • Has the most adoption and buzz among its peers, along with an active Github repo
  • Lots of Silicon Valley startup projects use it, hence more available expertise out in the wild
  • Lots of Angular modules and 3rd-party directives


  • HTML markup-purists object to its unconventional “ng-” directives polluting the markups
  • Too many unresolved pull requests and bugs
  • Core team declared there will be no new features until version 2 and the upgrade path is uncertain (more on this later)
  • Open-ended framework leaves lots of trivial decision-making to developers



  • Considered the “grandfather” of JavaScript MVC frameworks; very stable APIs
  • Extremely flexible, easy to onboard and be productive in
  • Robust documentation and plenty of resources on Google and StackOverflow
  • Small and lightweight in size
  • Suitable for projects of almost any size


  • Development has been stagnated since version 1.1.x; lack of forward momentum inspired projects like Marionette to consolidate and organize common Backbone patterns
  • Its simplistic approach means many technically trivial choices are deferred to developers which could mean more code
  • It’s easy for the codebase to look very different in parts of the same project (even for a small team of three developers) if there’s no established and enforced coding conventions; this leads to unmaintainable projects



  • Maintained by established JavaScript and Rails veterans (this translates to arguably better framework architecture)
  • Runs on “convention over configuration” methodology — “Magic” happens if you follow conventions (e.g. you rarely have to handle ajax anymore); this has added benefits:
    • Internal dev team does not have to reinvent common patterns and conventions, implicitly enforcing code consistency
    • Trivial technical design decisions are handled by the framework (e.g. ajax lifecycle, event (re)binding… etc)
    • On average, you write a lot less code
  • Active community with a busy Github repo
  • Clockwork six-week release cycle
  • Framework rapidly evolves and features are added through a transparent and community-driven process; major API changes go through RFCs for feedback; “The Road to Ember 2.0” RFC is a great example (contrast to Angular); this leads to predictable and less stressful upgrade visibility
  • Active #emberjs and #ember-cli IRC channels (gasp!) for almost real-time support
  • Shipped with a test framework built right in!


  • More painful ramp up than other frameworks (ember-cli, node.js dependency… etc)
  • Emphasis on conventions can turn off some developers
  • Rapid release schedule can take its tolls:
    • Conflicting and outdated documentation
    • Google search and StackOverflow results often contain outdated solutions
    • Time allocated to framework upgrades adds up if you want to keep up (you should); fortunately this is mitigated by well documented release docs
  • Existing in-house JavaScript libraries may need modifications to work with Ember

The Current State of Affairs

Angular announced in its v2 roadmap that there’ll be no upgrade path from existing Angular versions. I can’t imagine large Angular apps being rewritten to compensate for the Angular team’s lack of foresight. The roadmap also deferred all new features to v2, which effectively orphans the current Angular 1.x project.

Backbone has seen slow but steady releases. There’s no sign of the framework going away or seeing major upgrades. I don’t expect this to change soon. But it’s mean, lean, easy and works right now.

Ember has the least adoption of the three. But it garners a disproportionally active community with rapid releases and new features. Unlike Angular, the Ember core team pledged a clear upgrade path to Ember v2, to be released in 2015.

Parting Thoughts

Angular’s core team has painted itself into a tough corner. Until a clear upgrade path is announced, you should steer clear of Angular for projects besides throwaway prototypes. Then there’s Backbone, a safe bet for projects big or small — A gateway MVC framework before diving into other beasts. But be mindful of the freedom it affords. Ember is a tough nut to crack, but once your team gets used to its conventions, the architecture will redeem itself with less code, implicit code style consistency and easier cross-team collaboration.

Before you decide on a framework, visit ToDoMVC and take all the different JavaScript MVC frameworks out for a spin. Decide for yourself what’s best for your projects. With the Javascript community moving to ES6 modules (using compatible transpiling), whatever framework you choose, be sure to put that on your checklist for forward compatibility.

Happy coding!

The Sustainable Freelancer: 6 Strategies to Deal with Difficult Clients

Mural of woman's face on wall, eyes open wide, mouth open as if screaming

Photo Credit – Thomas Hawk CC-BY-NC 2.0

Difficult Clients Happen To Every Freelancer

As freelancers, we all run into a difficult client situations here and there. Sometimes, it’s payment or contract negotiations. Other times, the client wants more from us than we anticipated. And every once in a while, we work with someone who just seems too difficult to please.

But the majority of the time, we can avoid difficult client situations by setting expectations upfront. The more that you, as the freelancer, control the process, communicate clearly, and explain what your clients should expect, the happier clients you will have.

The best projects run smoothly when you establish your rules of engagement early on.

1. Listen to the client’s needs and expectations upfront

Getting started on the right foot with clients can pave the way for much happier client interactions throughout a project

In your first discussions with a potential client, focus on learning what the client truly needs. The more you understand their expectations, the more you can tailor your estimate or proposal to satisfy them.

Often, a client has expectations around what is included in a project that you may not regularly provide, but they may assume will be included. Understanding these expectations upfront is one of the keys to establishing the parameters of your proposal.

For example, if the project is a website design, questions you should ask include:

  • Will the client want assistance with writing or editing copy?
  • How often will the client want to meet with you?
  • What level of design/creativity is the client looking for?
  • Does the client expect or need help with technical setup?

You also should use early conversations to understand how much hand-holding a client may need for a successful project. The same scope of work may require different time investments with different clients based on how much contact a client expects during the process, or how many decision-makers are involved. If you make yourself aware of this upfront, and price your work appropriately, you will be prepared to happily be available for the client since you’ve worked the appropriate project management time into your proposal.

2. Discuss your rules of engagement early – meetings, deliverables, and support

Discussing how content should be delivered, the number of concepts you will provide, the number and frequency of meetings and revision rounds you plan to make – prior to creating a scope of work – helps protect you later when the client makes a request outside of that scope.

This does not have to be a one-way conversation. But you, as the freelancer, are the expert in helping frame this discussion. Provide your suggestions and get their feedback, so you can appropriately shape your pricing and scope of work.

Clients will often want to say yes to everything you offer, so help them understand their decisions in context of price. “I hear that you’d like [insert time-consuming request here], and I’m happy to provide that. Just be aware this will increase the cost.” If they push back on the mention of increased cost, this is your chance to modify your planned deliverable while helping them understand a shared commitment to the agreed upon scope of work.

Don’t forget to talk through these points as you work on the project as well. If your client requests a 5th round of revisions and your contract mentions only 2 rounds, it’s easier to remind them regularly. You can say something like, “After this, we’ll have just one more round of revisions before we publish the site.” You can even help enforce this by politely explaining that you’ll start on the last revision only after they’ve provided all their feedback.

3. Detail the scope of work in writing

A one-page estimate, with just a few words covering each item you plan to deliver, may be easy and quick to write up, but it leaves too much open to interpretation once the project begins.

Writing a detailed scope of work is your protection against all unknown requests that may come up during your project.

Include everything you’ve discussed with your client in your written estimate – revision rounds, number of concepts, administrative time, whether or not you will be helping editorially, etc. This may take several pages. The amount of time you spend in writing a detailed scope of work will be saved in avoided trouble later.

4. Don’t be the bad guy

It’s easy to feel upset when a client asks for more than was included in the scope of work – you can feel taken advantage of and may immediately want to say no.

But instead, consider the opportunity behind the request.

Instead of getting upset, state the consequence of their out-of-scope request as a simple matter of extra cost to them, based on their needs. Don’t take their request as a reason to say you can’t help them (unless you truly can’t). Think about what it will cost to them – i.e. how much you would need to make it worth it for you – and state it as such.

5. Include terms in your contract to protect you

Your proposal or contract should include terms separate from job-specific deliverables that you will include.

You may want to include statements about:

  • Who owns the source files of your work (PSDs, vector art, uncompiled code).
  • What happens if a client abandons or seriously delays a project.
  • Consequences and/or fees for late payments.

6. Create a project timeline

Too many projects begin with an agreed upon deliverable date, and clients continue to expect their deliverable on the originally agreed upon date, even when they’ve delayed in providing the items needed for the project when you asked for them.

The answer to helping clients back off timing demands is to create an upfront, agreed-upon timeline.

The beauty of the timeline is not in the fact that the client will stay on track with it and all will be delivered to you on time (if only!).

Instead, it’s the fact that, once the client gets behind schedule on their deliverables, they know that it is due to their own delays, because the timeline details their culpability in delaying the schedule.

Create a timeline up front which includes milestones for both your production and their delivery of required items, and you can clearly show your client how their delays will affect the schedule, and help them respect your time.

Now You’re Off To A Good Start

Getting started on the right foot with clients can pave the way for much happier client interactions throughout a project. Your time spent upfront to frame the project and your expectations will be well worth it when you set your project in motion.

However, sometimes you’ll run into difficult client scenarios even when you’ve established the rules of engagement and expectations. Coming up later, I’ll share strategies for what to do when a client interaction starts to go poorly, and how sometimes you can even turn an unhappy client into your best advocate with the right responses. In the meantime, if you think of any other tips to deal with difficult clients, post your comments below!

Search Engine Debunked: A 10 Point Pre-Launch SEO Checklist

Pre-Launch SEO Checklist

It’s Time To Launch!

So, you finally finished the project and you are ready to launch your client’s new cat toy website.

But are you really ready? Probably not. There are a number of things you should review before you set that new site free for everyone (including the search engine crawlers) to see. In no particular order, here are my 10 points:

1. Title and Description Tags

There are dozens of tips and tricks that can help a website rank well.

One of THE most important things you can do to help a new site rank is to make sure that there are unique Title and Description tags on every page of the site that clarify for the search engines what each page is about. Creating these tags can be very time consuming as it requires a lot of work, including:

• Researching and understanding the content of the page
• With the clients help, picking the keyword phrases that best fit the product and/or services of the website.
• Researching these keyword phrases to determine which phrases can provide the most possible traffic.
• Writing the tags and making sure that they are not too long as they will be truncated by the search engines.
– Posting the tags on each page of the website.

2. Create “schema” markup

Does your client have a brick and mortar location? Do they have testimonials on their website? These are just two of many reasons to use schema markup on a website. For specific details, Google Webmaster Tools can help. If you want more info on tags that can be added to a specific page of your site, you can check that as well on Google Webmaster Tools. Just enter the URL you want to know more about.

Schema tags are made for the search engines, not humans, although information such as contact info can be displayed on the web page. I highly recommend adding schema tags to the “contact us” page at the very least. If it is possible to add contact info with schema tags to the footer of every page on the site, that is even better.

Here is an example of schema markup for contact information:

 <div itemscope itemtype=“”>
 <link itemprop=”additionalType” href=“” />
 <span itemprop=”name”>Name of Business</span>
 <div itemprop=”address” itemscope itemtype=“”>
 <span itemprop=”streetAddress”>100 Fourth St.</span>
 <span itemprop=”addressLocality”>Santa Rosa</span>,
 <span itemprop=”addressRegion”>CA</span>
 <span itemprop=”postalCode”>95404</span>
 <span itemprop=”telephone”>(555) 555-5555</span>

Google has said that they do not rank one site above another because one has schema markup and the other does not, but they also say that a site may get more traffic due to the markup because the information in the search results is more complete and may therefore standout to viewers.

3. Make sure your pages have enough quality content

Each page on your site should have at least 200-250 words on it. This may seem like a lot, but actually it really is not that difficult to write content for each page with the help of the site owner. If you know enough about the subject matter, you should expound upon it as best you can. Pages with thin quality, such as 50-100 words and one or two images will not rank as well as pages filled with quality, focused content.

4. Header Tags (H1, H2, etc.)

This is incredibly important: every page on the site should have a descriptive <h1> tag that best describes the content of the page. Many times this is the exact same information in the Title tag, but it does not have to be so. Variations between the title and the H1 header can give the search engines a better picture of the overall content of the page.

You should also take into consideration any content on the page that should be considered a sub-heading and apply an <h2> tag to the description of the sub-section. You can use other header tags to create a hierarchy similar to an outline or list.

If the default size for your tags don’t suit your page design, use CSS to adjust it to look as you want, but don’t just leave them out because you don’t like how they look on the page.

5. Responsive design should be used whenever possible

There is little doubt that a mobile friendly website will rank better then one that is not mobile friendly, all else being equal. If you have not yet viewed your creation on a smartphone and a tablet, you really should do so before making it live. Not only is this a good SEO practice, you can avoid the embarrassment of having an angry client call you complaining that her site looks like garbage on a small screen.

6. Make contact information as easy as possible to find

Whenever possible, the contact information, at the very least the phone number, should be prominently displayed on the page somewhere near the top, preferably at the very top and most definitely above the fold. This is particularly important on mobile devices as visitors using a phone to find a business most likely would like to contact them by clicking the phone number.

7. Don’t use images for important text

Always put important information in text, not in an image. This is especially important for contact information, like a phone number or an email address as mentioned above. If you have content that you want to prominently display, use text and alter it using CSS. If for some reason the client insists on a graphic for something, make sure to use an ALT tag at the very least.

8. Image ALT tags

Every image should have an <alt> tag. The ALT tag is particularly important as it is read aloud to blind users on a  screen reader and is displayed to visitors that have images turned off. It is considered by Google to be one of the hundreds of “signals” they use in determining ranking because it creates a higher quality user experience.

Google uses ALT tags to help determine the best images for a visitors query and can help an image show up in the results pages for a search, thus increasing visibility.

9. Use an XML site map and make sure to submit it to the search engines.

There are many site map generators out there and many times there is one built-in to a plugin that you may already be using for the website. Make sure to have separate site maps for your pages, posts, images and even the post categories as this will ensure that the search engines are aware of all of the information located on the site.

10. Use informative file names for pages, images and other files.

Hopefully you thought of this before you created your site. Ranking can be improved if your website is created using URLs such as as opposed to Also, having a descriptive name such as my-cat-loves-this-stuff.jpg is much better then IMG0003490877.jpg. Make sure to utilize this in as many places as you can including PDFs and video files.

But That’s Not All!

There are dozens of other tips and tricks that can help a website rank well. If you are a one-stop-shop as far as web development is concerned, I recommend subscribing to the news feeds of some of these sites to keep on top of the moving target that is SEO:

View From The Front: You should really learn HTML

You Should Learn HTML


Working in the web arena I find myself more often than not with my back against the ropes facing down my own learning curve. I’m constantly getting pummeled by an onslaught of new technology and improved methodologies. At times it feels like I’m striving and struggling just so I can live to fight another day.

The front end of the web experience is where everything comes together…

or falls apart.

Lately I am astonished at how often I meet a web professional who doesn’t know the basics of HTML and CSS. I’m talking about people way more intelligent and talented than I am who can do amazing things in worlds where I only dabble: design, SEO, even advanced software development.

These same people can’t clear a floated div without flipping a table or banging their heads on their desks.

There are also those who are new to the web, who have the privilege of getting started with robust frameworks that function great, right out of the box. Still others prefer to stay out of code completely and leverage GUI editors, which are becoming better able to generate decent looking, usable websites.

I can see why it’s tempting to skip learning to code web pages by hand, but in the ever-changing technical landscape, having a fundamental understanding of HTML, how it’s affected by CSS, and the basic operation of the box model is still a necessary and useful skill.

What is so great about HTML?

With HTML5, semantic data is inherently integrated into your markup. HTML gives your content structure by breaking it up into meaningful sections, adding a hierarchical flow to the content. In an HTML page, your content is structured into sections which make sense for both search engine robots and your end users. Adding CSS to style your markup lets you change the way the content looks. You have the opportunity to give your content even more visual nuance to convey a deeper meaning and create a greater impact. You have the ability to articulate the meaning of your content in a visually rich and organized way.

Is HTML even still relevant?

The web is constantly changing, and the tools we use to create it are constantly improving. And yet, HTML has been around since the beginning. But this doesn’t mean it’s obsolete or irrelevant; rather, it demonstrates HTML’s ability to adapt and move forward in pace with the web.

For some applications it makes sense to bypass HTML almost entirely in favor of a robust language like JavaScript; but if your aim is simply to display content in a web browser, using HTML as your foundation and then enhancing with JavaScript gives you better accessibility.  Mobile apps built with HTML5 and responsive design using CSS media queries is making web content device-agnostic. If you want to target the largest number of web-capable devices and keep with the best practice of progressive enhancement, HTML is still highly relevant.

Aren’t there GUI  web builders that do just fine?

I’m not typically a drag-and-drop kind of girl. I recently built a dummy web page with Wix during half of a lunch break while trying to fight off a nasty flu. I got the job done (that is, I published some content to the web), but there were still limitations which I could have easily overcome if I were simply coding HTML. Instead I had to struggle with, and eventually give up on, the limitations in the GUI – such as the fixed 980 pixel page width.

Other common frustrations that come up when helping non-tech people use GUI web editing tools include: extra line breaks that appear for no reason, images aligning to text in inexplicable ways, and text links that don’t encompass the first or last character in your link phrase despite all your best efforts. Even the best GUI experience leave something to be desired, and the ability to switch to code or text view and see quickly what’s going on can save hours of frustration.

My favorite front-end framework is awesome, why reinvent the wheel?

I’m not advocating that you code every web experience you build from scratch. Even though I enjoy it, I understand that people have other things they’d rather be doing with their time. What I do advocate is to cultivate the ability to code a webpage by hand so that, if there are pieces in your framework that get in your way, you are empowered to not just overwrite, but re-write them. You gain the ability and confidence to identify and remove pieces that you don’t need in order to achieve the best performance, and keep your CSS well organized, lean and easy to revise.

I’m a (Designer/Programmer/SEO/Content Writer). Knowing HTML isn’t my job.

Everyone who works in web can benefit from knowing HTML. The front end of the web experience is where everything comes together, or falls apart. If everyone on the team knows what goes into rendering the project in the browser, then everyone can integrate their specialty more fluidly into the whole. The programmer can understand the semantic markup to wrap around database queries. The designer can anticipate content reflow from the wide monitor to the narrow handheld view. The content writer can direct the nuance in the language by leveraging structural tags. The SEO can polish the well structured page with additional micro- and meta-data. Sure, the front end developer still does the bulk of the HTML coding, along with the PHP and JavaScript and whatever else is needed to tie it all together; but if HTML is a shared context among all the members of the team, the odds of telling a successful story are greatly increased.


HTML is a future-friendly technology because it is a present-friendly technology, highly accessible on all web-ready devices. Writing good HTML has benefits in accessibility, performance, and presentation. Learning it might seem challenging at first, but it doesn’t take long to get up and running. The only tools you really need to get started are a text editor and a web browser. Once you get a firm grasp on the basics it becomes fun and easy to learn more.

The Sustainable Freelancer: Sell What You Know

Next up in our guest blog series brings us Ben Klocek, the true expert on what he calls “Sustainable Freelancing”, which in most cases involves, you know, actually making a living as a freelancer. Not as easy as it might sound. In this article, Ben talks about the most important aspect of a freelancer’s relationship with his or her client: perception.

Sell What You Know - Ben Klocek - Bracia

Have you ever felt this way?

…like you’re stepping out on a shaky limb when going to that first client meeting or sending out a proposal?

I have, and I figured out why, and how to change it. As I looked into it, I discovered that my approach was disorganized and unfocused, leaving me unsure of myself just when I most needed confidence.

Recently I read the Win Without Pitching Manifesto by Blair Enns. It lists 12 “proclamations” designed to reclaim the high ground in client relationships, using your knowledge and expertise to become an “expert advisor” instead of an “order-taker”, and enjoy the benefits to your bottom line and work satisfaction.

The aim of the book is to get you to identify where your expertise lies, and then promote services with that expertise as the primary focus.

The key here is that you lead your client through your process for that particular service, rather than vice versa.

For example: a few years ago I dug deep into responsive design. I gave presentations about it, wrote about it, offered it as a service, and when I talked with clients, I could speak clearly and definitively about it (as much as one can speak definitively about web matters). This gave me “expert” status with regards to responsive design.

As a result, I had many project leads come to me seeking to engage me in making responsive websites. In initial client meetings and when submitting proposals I was confident, because I knew exactly how I could help them and ensure that we could meet the goals of the project.

Did I need to persuade them to hire me? Nope. I had already proven my value and expertise, so instead of having to rely on fast talking, fancy proposals and a ton of anxiety, I was being pursued by them.

What if I don’t have the experience to be an expert?

Start small, with an area of your services that you feel confident in providing and wish to expand. The key here is that you lead your client through your process for that particular service, rather than vice versa.

“It is the strength of our processes that drives the consistency of our outcomes.”
– Win Without Pitching Manifesto

A good place to start is the on-boarding process because it sets the tone for the whole engagement and is usually something we have all done at least a few times.

Developing confidence in your on-boarding process might look like this: Create a simple online form that your client fills out, then a script you follow when talking with them. Take time to develop this. Focus on key questions that you know you’ll actually use when you are doing the work. I used to have questions in my on-boarding process that I didn’t use, simply because I saw another developer ask that question. Make it yours and revisit which questions you ask after each project!

This indicates to the client that you have a process developed from your experience having done it before. It sets the rules of collaboration. Obtaining the “expert” title means you lead them, and aren’t taking orders.

Remember though, that the on-boarding process is just the beginning. After you have that dialed, select an aspect of your services that clearly provides value to your clients and develop a process for it. Only through consistent application of your experience, followed by evaluation of your success, will you get better.

All you need is to focus

Selling what you know requires you to “choose a focus, then articulate that focus via a consistent claim of expertise, and finally work to add the missing skills, capabilities and processes necessary to support that claim”.

When you do, you can focus on finding projects where you honestly and confidently provide real value, which in turn leads to better projects with greater value to you and the client.

Now go read the Win Without Pitching Manifesto, it’s free online!

Coworking Culture: Why Coworking Matters

Our first guest blog is written by one of the North Bay’s experts on coworking: Natasha Juliana, owner/founder of WORK Petaluma. In this article, Natasha goes into the reasons why a cowork lifestyle matters in the current economic environment, and will remain relevant for a long time to come. (Edited by coWORKer Linda Jay.)


Why Coworking?

It’s the 21st century and work is being redefined in more ways than one. If you find yourself living in this new economy, the benefits of coworking can add up quickly.

The Office.

This used to be a single building you sat in from 9 to 5 Monday through Friday. But the digital age has brought with it the potential for unprecedented freedom and flexibility. With the aid of a laptop and cell phone, many jobs can be performed from the location of your choosing.

Working by yourself and never leaving your house can become extremely isolating.

If you can work from anywhere, where will you do your best work? Working from home has its advantages… and disadvantages. It’s conveniently located, but also full of distractions — laundry, TV, refrigerator, dog, kids, all vying for your attention. It’s free, but it might not have the amenities you desire — a conference room, whiteboard, printer, and high-quality copy machine can come in handy.

Coworking gives you the good parts of having an office, for a fraction of the cost of setting up your own space, with the flexibility to accommodate your changing needs.

The People.

Yes, we live in a digital world, but people are still social animals. Most jobs used to have coworkers built in, but with the growing trend toward freelancing, telecommuting, and entrepreneurism, you may find yourself alone. Working by yourself and never leaving your house can become extremely isolating. Many people are taking to the coffee shop, but this is a short-term solution. A forty-hour week spent in Starbucks will leave your back aching and your brain jacked up on too much caffeine.

Coworking gives you the benefits of coworkers by filling the workspace with other professionals. It’s a great way to connect with the local business community, make friends, and enjoy a little water cooler chit-chat. And surrounding yourself with productive people can increase your own productivity. You’re much less likely to waste an hour scrolling through Facebook when the person sitting next to you is hard at work.

The Ideas.

Sharing knowledge used to be called cheating or stealing. Now, it is becoming the norm. Working in a vacuum can limit your potential and slow down your progress. Bouncing ideas off your cat can be futile, but bouncing ideas off coworkers can be inspiring and transformative.

This advantage is compounded by the fact that so many different professions are housed under one roof. Need help with your website? There’s a WordPress expert sitting next to you. Wondering if you should use a semicolon? There’s an editor across from you. Thinking about putting your new venture on Kickstarter? There’s a startup behind you that was successfully funded.

Now those are some big benefits worth cashing in on! Coworking may start off as a shared office, but it quickly morphs into a whole new way of working.


Want to learn more about new ways of working? Check out the book Remote by 37Signals founders Jason Fried and David Heinemeier Hansson.