Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decide on tech stack #1

Open
2 of 11 tasks
therealklanni opened this issue Feb 23, 2019 · 25 comments
Open
2 of 11 tasks

Decide on tech stack #1

therealklanni opened this issue Feb 23, 2019 · 25 comments
Assignees
Labels
help wanted Extra attention is needed question Further information is requested
Milestone

Comments

@therealklanni
Copy link
Member

therealklanni commented Feb 23, 2019

Objective: frictionless development and devops

  • Firebase hosting / database / auth

Framework

  • Vue
    • low barrier to entry (i.e. low learning curve)
    • very little boilerplate
    • allows for quickly iterating and improving
  • React
    • most popular
    • all the good things that come with React
    • moderate boilerplate
    • quickly iterate, but arguably not as quick as Vue due to slightly more boilerplate
  • Angular
    • more boilerplate is necessary (contributes to friction)
    • less quick for iterating
  • Elixir

CSS library/framework

  • Bootstrap
  • Material
  • CSS resets only (no library/framework)
  • other

Native Mobile?

  • Yes - Vue Native
  • Yes - NativeScript Vue
  • No
  • Maybe later
@troym9731
Copy link
Member

Elixir is out if we are using Firebase. I guess at this point, do we want to use any sort of framework? If we're going to use anything, I'd prefer to mess around with Elm, but perhaps vanilla is the way to go.

As far as native goes, what kind of native mobile app are you thinking?

@alexsasharegan
Copy link
Member

+1 Vue

@alexsasharegan
Copy link
Member

Wait a second, what are we building exactly?

@troym9731
Copy link
Member

Basically a redesign of the current site. One day, we might expand the functionality to include more features like letting recruiters post to a specific channel that people can easily opt-out of or something. So yeah, it'll never be a big thing, but could be fun to mess around with something.

@therealklanni
Copy link
Member Author

Elixir is out if we are using Firebase. I guess at this point, do we want to use any sort of framework? If we're going to use anything, I'd prefer to mess around with Elm, but perhaps vanilla is the way to go.

Well, I do think we want a framework of some sort. The plan with our Elixir attempt was to have an admin panel for accepting or resending invites, and a job board that can be posted to without needing to be a Slack member. So definitely enough functionality to warrant needing a framework of some sort.

I'm personally not too interested in Elm. Also, like we talked about privately, at this point I would prefer using something with minimal friction. That way we can just focus on Getting Shit Done™️.

As far as native goes, what kind of native mobile app are you thinking?

I wasn't really thinking of anything, just throwing the idea out for brainstorming. I think ideally (or at minimum) we just design it "mobile first".

@therealklanni
Copy link
Member Author

therealklanni commented Feb 23, 2019

One day, we might expand the functionality to include more features like letting recruiters post to a specific channel that people can easily opt-out of or something. So yeah, it'll never be a big thing, but could be fun to mess around with something.

Yeah, definitely want a MVP approach. We can iterate and add features. Definitely don't want to try tackling all the "new feature" stuff right up front.

Basically a redesign of the current site.

Redesign, but also rebuilding it from the ground up. The original (current) site was built from a weekend project I built as a way for low-technical-aptitude people to easily stand up a "request invite to a private Slack" website. So when we set it up for our Slack it was just quickly hacked together.

@therealklanni
Copy link
Member Author

So just to weigh in my opinion, I think I lean towards Vue for its simplicity. We should be able to develop quickly, I think.

@troym9731
Copy link
Member

Well, I do think we want a framework of some sort. The plan with our Elixir attempt was to have an admin panel for accepting or resending invites, and a job board that can be posted to without needing to be a Slack member. So definitely enough functionality to warrant needing a framework of some sort.

Ok, cool. I'm down.

So just to weigh in my opinion, I think I lean towards Vue for its simplicity. We should be able to develop quickly, I think.

Sounds good to me, I just have zero interest in Vue. I'll help where I can, but I can't guarantee my motivation will be too high.

@therealklanni
Copy link
Member Author

I just have zero interest in Vue

Well, what would you be interested in?

@troym9731
Copy link
Member

Nothing that I could guarantee wouldn't cause friction, so I think we should go with Vue. I can rewrite the UI on my own after v1 😁

@therealklanni
Copy link
Member Author

Well by friction I just meant learning curve, etc. For example, with Elixir we had to learn a whole new language. It was definitely fun, and I love Elixir, but our inexperience also lead to hurdles we ultimately couldn't get over. So "less friction" in that sense.

@troym9731
Copy link
Member

I think the only hurdle we couldn't overcome was the postgres integration with Phoenix. We just had that one weird issue. Elixir itself only seemed to be the issue because of its infancy, although most people using Phoenix at that time also used Postgres, so I have no idea what was happening haha. And neither did the Elixir Slack!

But I understand the benefits of using something like Vue, as it has a low barrier of entry for others not including this team. Elm has a much higher barrier of entry.

@therealklanni
Copy link
Member Author

I think the only hurdle we couldn't overcome was the postgres integration with Phoenix. We just had that one weird issue. Elixir itself only seemed to be the issue because of its infancy, although most people using Phoenix at that time also used Postgres, so I have no idea what was happening haha. And neither did the Elixir Slack!

But I understand the benefits of using something like Vue, as it has a low barrier of entry for others not including this team. Elm has a much higher barrier of entry.

Yeah, definitely agree. And like we recently discussed, if we started it (Elixir) over again from scratch we probably wouldn't run into those issues again. It was mainly due to the fact that Phoenix and the ecto Postgres stuff was still pretty young in relation to each other. Totally agree with you. Anyway, neither here nor there :)

@therealklanni
Copy link
Member Author

therealklanni commented Feb 23, 2019

I wrote up some bullets on why (in my own opinion) we might consider one over any other. And in the process I think I talked myself out of considering Angular. Do we want to just scratch that one off as well?

And feel free (anyone) to throw out any points for why you think one might be better.

@therealklanni
Copy link
Member Author

And moving on to CSS library/framework... Thoughts?

@troym9731
Copy link
Member

If we can, can we wait until we have a comp or wireframe first? I don't recommend going down the path that I did last time haha

@therealklanni
Copy link
Member Author

I'm not saying we need to decide now, just noting that the conversation has moved on to the next topic. 👍

@chuckdries
Copy link

Can I humbly suggest we don't need a front end framework for the whole website? Like perhaps the registration form can be embedded vue just because form validation by hand is such a pain, but like - client side routing, even client side rendering of anything, seems like insane overkill for essentially a list of links and a form. At the very least we should pre-render every page because they'll always be the same... maybe start with something like nuxt or (probably the better option for this scenario) gatsby? Is there a vue-equivalent to gatsby?

@chuckdries
Copy link

Also +1 typescript no matter what stack we end up using

@James-Quigley
Copy link

+1 for something like Gatsby, Next, or Nuxt. This is mostly a website and not a webapp

@therealklanni
Copy link
Member Author

@chuckdries @James-Quigley

Thanks for the input, guys, but just to let you know we're planning on making it more than just a web site after MVP. We had long ago planned on some additional functionality such as an admin view that allows us to check/resend invite status for people requesting access (sorely needed), as well as possibly a Jobs board. So Gatsby et al will likely not cut it. That being said we already decided on Vue as far as that goes. Right now we're discussing what CSS solution (if any) to use.

@therealklanni
Copy link
Member Author

therealklanni commented Feb 27, 2019

And just to have it said, we are still considering Nuxt as a future enhancement. Anyone is welcome to put together a PR if you want to try implementing it now, but I personally don't intend on touching it until we get MVP finished.

To put it into perspective, we already have Vue Router and Vuex, and being a SPA we wouldn't get Vue Server Renderer from Nuxt anyway. So it seems the only benefit we might get is the prerender of the base route (/).

I'm all ears, though, if anyone feels strongly about it. And again, feel free to open up a PR if you want.

@therealklanni therealklanni added the help wanted Extra attention is needed label Feb 27, 2019
@James-Quigley
Copy link

Gotcha, that totally makes sense. Didn't know the full intended functionality, so disregard my comment.

@mxygem
Copy link
Contributor

mxygem commented Mar 12, 2019

I won't really be of any help in this discussion as I'm one of those back-end type folks that's had minimal experience with Vue and a child could probably CSS better than I can. Just make a choice already! 😛

@therealklanni
Copy link
Member Author

Yeah @troym9731 make a choice already ;)

@therealklanni therealklanni added the question Further information is requested label Aug 31, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

6 participants