By Glitch Team

November 29, 2017

Letting Everyone Build a Better Web

It seems every creative digital tool has been reinvented as a collaborative, social platform except the ones we use to make software itself. At a time when it’s more critical than ever to support and nurture underrepresented coders and help current coders thrive, what does it look like to create a community where everyone can make the app of their dreams?

What follows is a lightly edited transcript of Jenn Schiffer’s O’Reilly Fluent talk, in which she provides an overview of Glitch. Glitch is our creative community that enables coders to collaborate in ways that past generations of programmers could only dream of. And in building Glitch, we’re trying to tackle some of the industry’s most difficult challenges around inclusion and education while making it fun for working coders to try out the latest and greatest tech. Here’s how and why we’re trying to do that:

They’re these things, fake ideas, that we tell ourselves either to project our insecurities or put a bandaid on pervasive issues in our industry.

Fake ideas include saying building for the web is easy, or I am self-taught. Everything is going great all of the time, and coding has never made me cry ever.

The problem with fake ideas is that they create barriers of entry into the web development industry, which is a huge problem because with those barriers comes a lack of diversity, inclusivity, which then leads to a lack of products that work for everyone. That’s why VR makes most women sick and voice recognition doesn’t really work for women or people with accents. It also leads to a lack of products that are created to solve actual problems that we have. Like we don’t need a ride-sharing bus, we have buses. All of these fake ideas turn our focus away from things that we should be creating to help society, and really just to better ourselves as individuals or people in power, which is not chill.

I feel like we can fix this by having a real conversation about real ideas like building for the web is actually kind of hard. It’s okay to admit that. We don’t learn alone. You can say you’re self-taught, but really you’re guiding your teaching. You don’t just learn from out of thin air how to build for the web. You need support whether it’s in the form of books, courses, or people helping you. It’s okay to ask for help. By saying that we’re self-taught and boasting that just makes other people who do need that extra support feel like they don’t belong when they do.

Our tools are far from perfect, which is why we feel like building for the web is getting harder, and it is getting harder, but also we are human. It’s okay to get frustrated when we hit a problem, whether it’s a problem from something we don’t know, or it’s something that’s constraining us because of the way technology works today. Again, building for the web is very hard. We have a lot of constraints that stop us from doing all the things that we want to do. When you hit that wall, it’s really technically challenging and it’s emotionally challenging. That’s what I love about the industry, but sometimes I have to shed a few tears along the way.

Glitch.com is a new product where we’re taking a unique approach at building something where we can enforce those real ideas, and really make building for the web something that everyone can do and can continue doing because inclusivity is of that much importance. That’s by sort of shifting our focus from what we individually need as engineers and looking to the bigger picture of what is best for all of us. That’s by focusing on both the tools, but most importantly the community.

So tools are easy, it’s just software, right? But any level of developer, whether they are thinking of maybe learning to code, or they’re experienced or experts and want to continue to learn, the first thing they want to do is actually build something. With Glitch we’ve built an editor that allows you to write code, on the web, whether it’s static or full stack web apps. It’s really cute. It kind of looks like a toy sometimes, but that’s fine because if you’re going to be in front of a computer all day you want to have a pleasant aesthetic experience with what you’re building with. We don’t learn alone, so our editor allows multiple users at once to collaborate, so you can pair.

Image

We all want to work on a cool team, and a lot of the software that’s being built today allows us to work as teams be it the products Atlassian’s putting out, CodePen, JSBin, all these other tools that allow you to work together. I think it’s really important that we continue doing that because we want to learn with other people, be it our coworkers or just randos on the internet that want to help us.

Glitch supports Node, but you can use really any language. I really love how we’re sort of a platform for pushing APIs, but it’s built on APIs. We use libraries.io to search and add NPM packages that you can use to build really cool, powerful stuff. Now once you build something, you want to show it. I’ve helped teach courses on teaching people how to write HTML.

One of the biggest barriers after writing code is that they want to get it on the internet and show it off to their kids, or their parents and stuff like that, but Devops is really hard, and that’s a huge barrier to getting people excited about coding without literally knowing every aspect of web development. So Glitch auto deploys your application and it lets you showcase it on our community site. You can view other people’s work. You can just view the source. Remember viewing source? And you can remix it so you have a clone of that project already deployed. You don’t have to set up any instances anywhere, we do that work for you. So you can go straight to having fun with your custom URL and go ahead.

The bonus is that you own your own code. This is probably the most important thing for me as an engineer is that whenever I write code in someone else’s service, I want to be able to own that and take it wherever I want. Just like one of the reasons why I love JavaScript is that it’s portable. I feel like my JavaScript should be as well. I think it’s important that all creators of these kind of apps don’t lock their users into their philosophy of programming or what they do. With Glitch, to promote the open source ecosystem, we allow you to import/export to GitHub or download a zip file because not all people know what GitHub is or uses GitHub. We also let you login with Facebook because some students don’t know what GitHub is and it might be intimidating to teach them about versioning before they just want to go in and edit an HTML file.

Now the hardest part is community. This is something that we haven’t really solved the problems for, and I don’t see it in the near future, or even the far future, but it’s important that we all work together on it. The barrier to entry is I want to learn something, but I don’t know what to make. I can make a to-do app, but then how do I use that to influence the things I’m making at work or at school, et cetera.

One of the hardest things when learning a new framework or learning a new language as an expert developer is knowing what am I going to make to motivate me to keep going. This is an ever learning industry. We’re always teaching and learning, but we need those projects that keep us going at it before giving up. So for Glitch we like to showcase the projects that people are making on our community site. We have building blocks. We have Hello Worlds. Who here never wants to roll their own OAuth again? We have OAuth apps that you can just take and remix and build your app onto it. If you never want to build your own Slack bot from scratch again, we have examples of that.

Image

Glitch.com itself is a glitch app. You can go and you can view the source of the code that I’m writing. It’s coffee script. We use our own tool, and I just love using it. It’s really fun. I love to use all different types of editors. I have lots of them installed on my computer just because I like to explore what is out there. I think that the really cool thing about the site is that you can remix all these existing projects and it deploys itself. You have something working within seconds.

But I think the most important thing we need to work on besides providing ideas for people to learn is providing a way for them to get help. This is a quizzical duck. Now when we were younger we always were afraid to raise our hands to answer questions because we didn’t want to seem like a nerd, and we were always afraid to raise our hands to ask a question because we didn’t want to seem like a nerd that didn’t know anything. That’s something that still occurs today on the web. We want to work on that with Glitch. Again, we work at Fog Creek. We helped create Stack Overflow. We know developers have questions, and lots of them, so we built a way into our app where you can ask the community for help when you’re stuck. You can tag what you’re working on, and say what you want to do. If you’re somebody who wants to help, we provide a way for you to see on the community site that people are asking for help. Then you can go in, that person can let you into the app if they wanted to, your secrets are all hidden, and then they can help you. Then you can remove that person from your project, or you can thank them because thanking is cool and being nice is cool. When they’re thanked they see cool little hearts.

I think that these sort of celebrations are really important and something that we take for granted. I am seeing a really awesome trend in cuteness engineering in UI that makes being in front of a computer for our work time a fun experience, and it’s just really nice to look at, which is not really something that we’re used to with our tools. The major bonus to community is the ability to get together and have fun with each other. You can build cutting edge web technology like WebVR. This is a Glitch app by the A-frame team, and you can just auto deploy virtual reality in the browser. This isn’t something that we had years ago, and it’s super fun. It looks really rad.

Any time you edit an app in Glitch, it auto deploys so you don’t have to worry about all of that. But I think the most powerful thing besides asking for help is the ability to remix other projects. You can allow people to remix them, which leads to a lot of fun.

My internet friend Dan was using the experimental Chrome features for face recognition and made an app that added emoji to his face. I saw it, I loved it. It’s like looking in a mirror. I figured I could make it creepier by remixing his project and adding my own face pieces to it. Again, look in a mirror. Then he was able to go to my site, go to my app because it auto deployed, and he was able to make his face look like that. Then other people like my friend Ben remixed it to make it even creepier. It goes on and on and on. It was a weird day.

Having fun and learning is a big part of being a human, and software is made by and for humans, so we should be building tools that focus on community to do that. Because we can make building for the web easier, but we can’t do it by ourselves, and Glitch can’t do it by ourselves either.

If you have public facing APIs and you want people to do fun stuff with it, we can help you, go to For Platforms. Then we can make all of us quizzical ducks more like a team.