Framework for creating views


Hi everyone,
I want to create a view for my package but i didn’t find any guide that shows how to create it.
i found this thread in which they discuss about some frameworks but it seems that they didn’t find a good one.
So i ask if someone could give a reference to a tutorial on how to create a view or on how to use a framework cited in that discussion
p.s : i don’t want to use space-pen and sorry for my poor english


Well, Spacepen is the one that is both supported by Atom and which is designed to fit in nicely with the rest of the application.
What is it that you don’t like about it?

You can find examples by opening the styleguide in Atom:



Hi thnaks for the response,
I don’t want to use space pen because i’d prefer to use templates and data-binding for creating the views.


Hey I’ve been looking at migrating space-pen over to space-brush to include data-binding, you can check out the current repo here:

Data binding isn’t implemented yet, but you could easily achieve the same functionality with the object observers that are available.


Well, the thread you linked to, @shak1, does contain a lot of ideas people have already experimented with, even though there hasn’t been any movement on this open question for several months.

You should find some examples in what people have tried and linked on that issue.

My impression is that polished but limited view frameworks like Vue.js appear to be favored, while more far-reaching beasts like React have turned out to be too large in scale among other issues (not to speak of Angular, of course).

Personally, I think custom components-based frameworks are the next thing on the web, so it would be nice to have a way of riding that wave with Atom as well.
But as the link indicates, there doesn’t seem to be any consensus yet and a decision may be quite some time off.
Until then, it’s whatever is left of space-pen in Atom, but nothing keeps you from trying any other one.


Vue fully supports components. I have finished an app based on Vue and almost 100% of my implementation is in components. They are awesome.


I haven’t looked into Vue yet, but everyone who’s mentioned it anywhere seems to really like it.
I’m working my way through Angular these days, but I think I’ll check out Vue shortly afterward.


I tried vue.js too but without success. @mark_hahn can you give me a link to the app that you developed so i can learn how to use vue.js


Can you describe the problems you had?

Unfortunately it is proprietary. I have an older app at mark-hahn/tv that I did to control my home theater but it is kind of crappy. It was my first use of vue and it was just a hobby.

Edit: I went back and looked at my tv app. It isn’t as crappy as I remembered. It should be good for seeing an example use of vue components.

Getting "undefined is not a function" when adding HTML element to a pane

My sympathies. (grin)


According to the thread linked in in the OP, @leedohm created a kind of proof of concept package with Vue:

No idea if it actually worked or how it went, but maybe it gives you some pointers?


Yeah, I didn’t get very far with it … but at least it was a start :slight_smile:


Yea well, it’s too popular not to learn about it. But that also makes it a good starting point from which to explore other frameworks.


I got lost in all the scope crap. Actually I got lost in everything. My brain didn’t like it for some reason. I was able to learn react but it isn’t compatible with Atom. I guess angular isn’t either. I’m planning on doing my next Atom package in vue.

FWIW, you may have noticed that I haven’t done a new atom package in months and my support for old ones hasn’t been good. Unfortunately I got sucked into a startup and I’m busting my butt. I liked being retired a lot more. (grin). When this startup fails (as most do) I’ll be back into Atom as before.


Good to keep tackling new challenges though, so that’s exciting. Let us know if and when that venture is ok to share.
I’m sure a more elaborate package done in Vue.js would serve as a good example for others.

I’m not 100% sure why Angular and React are out of the question, but I did get the feeling it’s more the extensive scope (pardon the pun) of these frameworks that would create issues, as the devs want to keep it rather simple I think.


I actually was just guessing about angular not working in Atom because it is heavy and opinionated. React has a show-stopper problem. All components of react in an application have to be the same version. That would be impossible in plug-ins like packages.


Ah, I think I remember someone complaining about that before. Makes sense. I’m not sure if Angular has the same problem.

split this topic #18

A post was split to a new topic: Getting undefined is not a function when creating window