Somebody on HN asked me what i was using on the frontend for my web app so i thought it would be interesting to know what everybody else is using for theirs.
linux(CENTOS) with cpanel
php
mysql
laravel
jquery
mustache js
Laravel is one of the best things i have found in terms of productivity. I have made a boilerplate for myself which has all the typical libraries/integrations i typically need for every project, so getting up and running only takes me ~30 min. This project was a perfect candidate for something like vue or react but, i have been burnt before by frameworks. Everyone hates Jquery but i think its dope! I love mustache js, its extremely simple and its just templating , which is exactly what i need.
Backend: Python with Flask or Django, if the project needs Dashboard, user registration, ORM
UI: Jquery, Intercooler, the less JS the better
Hosting: OVH virtual server or a dedicated server if the project becomes successful.
Else: Stripe, Paypal, Sentry, Sendgrid, Postmark for transactional emails
MobX + React is awesome, I've been using it for about 2 years now.
I use a lot of hosting options depending on the project but Heroku, Ubuntu on DO or Ubuntu on AWS are the main ones.
Tech is more uniform
Backend Elixir/Phoenix across the board.
Frontend: React if I need it.
Database: Postgres
Just curious if you had a solid FP background before learning Elixir/Phoenix?
JavaScript is the only language I know very well and I've been thinking I should pick up a strictly functional language next for the purpose of becoming a better programmer, would you recommend Elixir for that?
No not at all. I started out procedural, moved to OO for most of my career. I have used Erlang in the past to write some ad servers so I was familiar with that kind of before switching to Elixir but I came directly from Ruby.
Maybe try https://pragprog.com/book/btlang/seven-languages-in-seven-weeks and https://pragprog.com/book/7lang/seven-more-languages-in-seven-weeks and see what you like?
Thanks Shawn, those books are exactly what I need actually.
Elixir and Phoenix on the back end, has been fantastic. I come from PHP and laravel for the last 5 or so years, totally happy with the move to elixir. Aside from the joy of functional and language features that I like, having websocket as a first class citizen in Phoenix is a real game changer. I use the Phoenix server side templates to generate the majority of the front end as well.
I mainly use some pretty basic functional(ish) vanilla or jquery JavaScript on the front end. I'm still evaluating front end tools, they all have something that I don't like, and I'm just being picky. I might end up just going with vue at some point since it seems the least imposing.
How my current JavaScript works is really just mimicking elixir modules and functions in some ways. Click a button, calls a pure(ish) function, that's it. No two way binding or shadow doms or anything. If I need to update the dom, I do it with jquery or vanilla js in my set of Dom functions. Many functions are just chaining existing functions, like a pipe in elixir.
Doing things this way lets me load JS in for specific pages with backend templates, which was common 10 years ago but now is reborn as the new hotness called "code sharding" or something. Using server side templates makes things incredibly straight forward and basically removes an entire front end app with its own MVC I'd have to write.
At some point I'll probably implement something like unpoly.js (like turbo links but with fragment loading) to give it the same benefits as an SPA. Right now every page change reconnects the websocket, which is my biggest gripe, but it has no real effect on the app. Elixir is easily performance enough that it doesn't matter.
For servers, I stick with Digital Ocean because they are incredibly easy to use and setup while still giving me the full flexibility of a VPS. What takes me 2 hours in AWS takes me 2 minutes with DO, with the same amount of time invested in learning their systems.
Thanks, ill have to check out Digital Ocean, I couldn't get my head around AWS fast enough.
I'm surprised not to see any mentions of sqlite here. I run a few single-server ~$10/year vps setups on it where mysql/postgres aren't worth the added complexity.
I have several client projects that run on sqlite. Very underrated as an option.
How do you automate the backup of your db file?
Backend: Elixir/Phoenix
Database : PostgreSQL
Hosting: Linode
How well does Linode work for you? I've tried to use them a few times and the reliability of their servers has been quite lacking... I had frequent connection trouble between between servers on the private network.
@joelweirauch for the stack I am using for http://newsofworld.org it works perfectly.Never had any problem.
What is Elixir/Phoenix? Sorry i'm tech ignorant outside of the tools/ecosystem i use , so those are new to me
Elixir(http://elixir-lang.org) is the language based on Erlang and Phoenix is the framework .
It's still pretty niche, but fast growing, kinda like Rails was in 2005.
@alchemist Your videos are very good.I would recommend it to anybody who is learning Elixir/Phoenix.
Aww, thank you! BTW, I've soft launched a new version of the site with an insane deal. If you make a free account and recommend the site to two people who sign up for free accounts vefore the end of the month, then you get 3 months premium.
@alchemist I am working on a very basic tech/programming blog aggregator which I am hoping to launch soon.I'll put the link to your site right at the top.
I'm working on an MVP right now.
Backend: PHP/MySQL
Framework: Laravel and Laravel Spark
Frontend: Bootstrap 4 with a theme to enhance the loo (Soon to upgrade to Vue.js.)
Payments: Stripe (or Braintree... leaning towards Stripe)
Email: Amazon SES, Mailgun, or SendGrid (I haven't tested them yet.)
Hosting: VPS for the MVP, but moving to AWS if there's some traction.
Still researching... FOMO vs Proof and referral program management (I wish it were built into Laravel Spark.)
For Saasified (SaaS blog), we use the following:
React-Static absolutely awesome static site generator for React
Contentful to pull in all our content
Hotjar for watching how users interact with the site
Mailchimp for e-mail subs list
https://saasified.co
Clojure + Hiccup + Garden for wireframe/prototyping.
Nothing beats the speed of making HTML in Hiccup.
When I understand how project should look & feel. What are the important parts that should be coded and what are parts that are best to be omitted.
Then, based on the project/requirements I am either:
On frontend, it is either:
Namecheap for Domain Reg
Ubuntu on DigitalOcean Droplet or Heroku
LaravelPHP
MySQL or Postgres
Vuejs
Stripe for Billing
SparkPost for Emails
All mine are fairly simple:
Noticeable.io
Polymer 2: Paper Elements, Vaadin.
Firebase: Authentication, Firestore, Functions : NodeJS + Express.js, Realtime Database, Storage.
Google Cloud Platform: Appengine.
Intercom: Inbox, Messages, Articles
Stripe: Billing
https://workrituals.com
UI: HTML5, Twitter Bootstrap, AngularJS
Backend: Firebase, Firestore, Google Cloud functions
Chart: Chart.JS
My overall experience while building this application is very good. Firebase technology is awesome and very less learning curve. Let me know if you need any help on Firebase or Cloud functions
~ Tham
@vim I would suggest you try DO/AWS + Laravel Forge + Github combo. Life would be much easier.
Just checked out Laravel Forge, that looks like the kind of thing that would make things a lot easier for me, hate dealing with servers, thanks.
confdays.com
Backend: Elixir/Phoenix with a GraphQL API
Frontend: Ember with Apollo
Hosting: Google Cloud
DB: Postgres
I use Elixir because I've been using it daily for years. I choose Ember because I want something that lets me focus on making features.
C++ with uWebsockets & Crow
Postgres (love it)
Vue.js
Slightly off topic, but this is a cool project mixing and matching front ends and back ends.
https://github.com/gothinkster/
“See how the exact same Medium.com clone (called Conduit) is built using any of our supported frontends and backends. Yes, you can mix and match them, because they all adhere to the same API spec 😮😎
While most "todo" demos provide an excellent cursory glance at a framework's capabilities, they typically don't convey the knowledge & perspective required to actually build real applications with it.
RealWorld solves this by allowing you to choose any frontend (React, Angular 2, & more) and any backend (Node, Django, & more) and see how they power a real world, beautifully designed fullstack app called "Conduit".
I'm primarily a systems / backend guy and I don't like front end dev all that much, but what I use are:
Backend: Django or Flask, depends on how complicated the backend needs to be
Frontend: Currently building with Vue.js mostly to learn something new. Historically, jQuery + Bootstrap.
Database: Postgres all the way
Hosting: AWS or DigitalOcean, usually running Docker containers directly on the hosts (no Swarm) with Traefik to route requests to the correct container.
I like seeing a number of people who are making it work with "old" tech like jQuery. Seems like so many people assume you need to be using the newest, hottest thing to be successful but it's really about the end result.
I'm poor so I go the cheap route but highly custom route. I'm also a UX designer and not a "real" developer, but I've picked up some stuff.
Front-end:
Design:
Back-end or Host (all free lol):
Database:
Sometimes I pay the price for being free in time. Sometimes Graph.cool or Surge will be a pain to work with, have weird errors, or whatever. But that's what I can afford
http://abot.apki.io/ is a Ruby on Rails application. It started on Heroku but then I migrated it to https://github.com/dokku/dokku reducing hosting cost by 80%
AWS + Wordpress + PHP + Frontend JS Frameworks
Backends are generally Go or Python for me. I really enjoy the Go toolchain and the benefits of typed languages in general (also light on tests early on, typed languages give freebie compile checks). Go is also pretty productive once you establish some good design patterns, and you can also squeeze a lot out of a single process.
Postgres is amazing, and I've never found a database I love as much.
React projects are a little involved to get set up, but after you've done a few its easy to copy the scaffolding. Vue is also nice, but it has too much of the Angular-esque magic I came to hate in the past.
The entry level Heroku tier is more pricey than some cheap cloud hosting solutions (but still cheaper than a lot of EC2 instance types), but you get a great developer experience for free and a long runway for scale until you want to take on more (boring) operational responsibilities to pinch those pennies.
I did more than half a dozen projects (some client projects) in React until my friend told me to look at Vue. I recreated some of those projects in less than half that time, and I was sold.
Though yes, there's some amount of "magic" but a lot of that can by bypassed in certain ways. And VueX is a lot more flexible than Flux
https://stori.social
Backend: node.js + express + mongo
Frontend: React + Redux
Idiopage.com
I generally start with Express, EJS, and Postgres if there's no compelling reason to build a SPA as it's the easiest way for me to get stuff off the ground.
just a heads up getting an application error on signup https://app.idiopage.com/signup
Thanks for the heads up, should be fixed now.
Nuxtjs (Vue): because it should make easier my lack of knowledge in backend tech.
Firebase
Paypal for billing (my country doesn't get stripe)
ExpressJS
ReactJS
SocketIO
SemanticUI
Lodash
AWS
On https://frontloops.io:
On new WIP project:
All wrapped in docker + docker-compose.
One of the goals is to dive into python a bit, but I guess I'll just search for a cofounder backend developer after the MVP is done.
why are you leaving nodejs for python/django?
Just for learning purposes
Thank you, whats your website so we can see the results?
Starting with a mobile app... Coming soon once we rewrite the Facebook reliant parts that won’t work since they aren’t reviewing new apps ... you can sign up for early access at bibimapp.com
The web stuff are supporting apps that fit into the eco system which we will be releasing once the mobile app is out.... in case you’re wondering there are currently 4 of us working on this.
Thanks for sharing
Thanks for asking!
I may be jumping the gun but i think vue might take the crown from react in 2 years.
In two years nobody in JS land will remember what react or vue was.
How do you measure which library has the crown?
I completely agree.
Using Ruby on Rails, with jQuery and Javascript sprinkled, Turbolinks to make our app feel snappy. MonitorCertificates
Deployed to a $5 DigitalOcean droplet, with a couple of other Rails apps running on it.
Thanks for sharing, Ruby on Rails seems to be really popular
It widely used, well documented, and super productive, with years of efforts behind it. Laravel is like Rails of PHP.
Spot on!
Lately I've been using NodeJS for back-end and ExpressJs to build APIs. For front-end I use mostly React with Redux.
http://hummi.nz
Thank you, nice to see someone from NZ here, which NZ city are you in, thinking of moving there, from what i'v seen NZ is the best country in the word, i'm in AUS right now...
I'm not actually from NZ. The name of the app is Humminz, hence the domain ending in .NZ 😁
Oh so sorry! cool app though, and NZ is a awesome place i think, lol.
Haha, no worries, I would definitely visit NZ one day 😊
I've been considering moving DO to AWS. How long have you been using it?
I actually don't have experience with AWS. I use DO mainly for the flexibility of basically having your own linux machine. AWS might be more cost-effective if you want to build bigger applications and need more resources.
Awesome website 👍 Love the use of SemanticUI, I use it all the time myself
Couldn't recommend it enough. WAY better than Bootstrap.
Whats wrong with bootstrap?
Photoshop, Lightroom, WordPress and Shopify count? https://chadthiele.com
Not a dev stack, but an app and service stack. 😜
I do custom PHP/HTML/CSS for the WordPress side.
Really cool, and yes it counts! I say, use whatever you need to get the product out the door because your customers don't care what tech you are using, just the value they get out of your product.
Thank you! And my thoughts exactly. :)
I'm using Rails for pretty much all my back ends as I know it super well and can get things built and deployed really quickly with it.
Depending on the level of interaction on the front end I either use just plain jQuery, or React as that's the frontend framework I'm most comfortable with. Typically I try to avoid doing anything special on the frontend for MVPs and just sprinkle jQuery as needed.
I usually just deploy things to Heroku, or S3 with CloudFront if it's a static site. Database is always PostgreSQL.
Same setup for Squadlytics
Backend deployed on Heroku
Frontend deployed on AWS (S3 + Cloudfront)
Ditto, I do the same, except deploying to DigitalOcean.
Awesome, i know quite a few people that love rails. Why do you avoid "anything special on the frontend ", its where your users interact with your product and i think it makes a difference?
When I say "anything special" I'm referring to using a frontend framework like React/Vue/Angular/Ember.
I'd rather have something lightweight that I can whip up as fast as possible. Later I can come back when I understand what customers are doing and where the value is. At that point I can really polish and cement the UI, and make it as smooth and seamless as I can, without worrying that I'm wasting time and effort on a part of the application that doesn't matter.
At the end of the day, it's just about managing effort and complexity. I'm happy to put off the effort of adding something more complex (and thus harder to change) until I have goo dreason to believe it's going to be worth it.
Makes sense!