27 ms·
Ask HN: What's your favorite way of getting a web app up quickly in 2018?
I am still frustrated with the amount of incidental complexity required whenever I want to do this. My latest attempt was to use a Digital Ocean droplet with Django pre-installed. I guess the biggest issue there was setting up something so that I could easily deploy my local version to the droplet (ended up using git/Github), and ensuring those two environments were in sync. I looked into Docker in some detail about a year ago, and I think it's the only pretty good solution for this I've come across—but there's a steep up front cost in learning/setup etc. (or so it seems).
What services and technologies do you use when you'd like to quickly build a web app which may never be more than a prototype, but may also turn into something real? A big aspect of what I'm wondering is about automatically setting something up for keeping local/production environments in sync, quickly deploying to production, and not having to mess with a bunch of server configuration things, user accounts, security, etc.
- JAdamMoore 8y agocreate-react-app
- ajeet_dhaliwal 8y agoSame. As for deployment depends somewhat on the back-end but I tend to use elastic bean stalk if I’m aws.
- westoncb 8y agoThat's purely front-end tech if I'm not mistaken. My question here is primarily about the back-end aspects of a project (especially syncing local and production environments, etc.).
- paulie_a 8y agoDjango. Use Cookie cutter and call it a day.
- scottbell-idiot 8y ago#MeToo - Scott Bell
- slow_donkey 8y agoImo Docker doesn't have too high a learning curve at the start. It's just when you move up to docker compose, Kubernetes that it can be overwhelming. My opinion is that when you're starting out, just go with a PaaS like Heroku. You can simply maintain a separate dev/prod branch and it'll automatically update the server. All the issues you mentioned can be solved it just takes some investment somewhere (time if you do it today yourself / money to pay a PaaS or someone else to do it). We personally use Kubernetes to solve these issues since we get stateless builds and simply have environment variables that change things like database connections, api keys, etc between our various environments. But again this took a few weeks to setup.
- samueldavid 8y agoHeroku and node with any frontend framework of the moment
- 0x4f3759df 8y ago1) ASP MVC .NET Core 2 project 2) Get a linux vm 3) Write a WSL Script to push to linux vm (lftp + sshpass)
- memonkey 8y ago1. flask-base for back-end 2. create-react-app for front-end 3. digital ocean for hosting I just cp files from local to server and use a couple different bash scripts for dev vs prod.
- TimLeland 8y agoAll you need is Laravel and Laravel Forge. Here is more detail on what I use https://timleland.com/side-project-tech-stack/ https://timleland.com/side-project-tech-stack/
- klenwell 8y agoGoogle App Engine free tier with Python Flask. I have my own starter repo: https://github.com/klenwell/hip-flask https://github.com/klenwell/hip-flask For a more full-featured boilerplate kit, see: https://github.com/gae-init/gae-init https://github.com/gae-init/gae-init
- marcus_holmes 8y agoI write the server-side in Go, cross-compile to a Linux binary, and set that up as a service on a vanilla Ubuntu box (usually Digital Ocean). Deploying a new version is a matter of sftp'ing the new binary (and any templates, images, etc) over the top of the old one and restarting the service. If I need a database then I use Postgres, and the setup for that can be a pain, so I get it documented/scripted using Ansible. If I need something more complex than plain HTML on the client side then I use a Makefile to synchronise Webpack + Babel + React (and the hot reload during development), and the compiled bundle.js becomes another file to copy over. I realise it's not very 2018, but to be honest I've kinda lost the will to live over learning anything more meta at this point.
- Xeoncross 8y agoThis is about as 2018 as it gets. Go and Rust are the only modern languages where you don't have to second-guess the stdlib for bad choices (looking at you php/ruby/javascript/etc..) yet provide amazing performance. Backend: Go (optional embed db: ledisdb / boltdb / leveldb / rocksdb / etc...) + Frontend: create-react-app / create-react-native-app
- Ecco 8y agoI find Ruby’s stdlib a pleasure to use.
- 49bc 8y agoHow many web apps can you name that don’t rely on any external gems? Packaging that mess is a pain in every scripting language.
- jashmatthews 8y agoAnything that runs on JRuby can be packaged as a single file.
- 8y ago
- dannyw 8y agoI think Dokku solves a bunch of your pain points: https://github.com/dokku/dokku https://github.com/dokku/dokku
- matt2000 8y agoDokku is _preeeeeetty_ good but you kind of end up messing around on the server eventually to get things working, or fix things, etc. If you're into that, or have CPU/RAM requirements that would be prohibitively expensive on Heroku then give it a try (I run it for a couple things on a cheap but powerful dedicated machine). If you're just doing something simple it's probably not worth it, just get a hobby dyno and go that route.
- Zaheer 8y agoCheck out https://aws.github.io/aws-amplify/ https://aws.github.io/aws-amplify/ I haven't actually used it but looks pretty cool
- factsaresacred 8y agoZeit Now, without a doubt. 1. npm install -g now 2. run 'now' command in the folder containing your app files The files are uploaded, your app is deployed and your clipboard contains the URL. So simple it's like cheating. https://zeit.co/now https://zeit.co/now
- Kimitri 8y agoI was expecting to see more of Now in these comments. I don't have any real experience with it but it did seem like it would make deploying as simple as possible. Care to share any of your experiences with it?
- callumprentice 8y agoIt may be too simplistic for most people’s needs but I’m a big fan of http://surge.sh/ http://surge.sh/ for publishing simple, static sites.
- lucasverra 8y agowe love netlify also
- Jdam 8y ago1) Spring Boot on Google App Engine free tier 2) Managed Postgres on GCP/AWS 3) Frontend framework of the day, like React or Vue. 4) Take 1-2 hours in the beginning to set up ci/cd (like Circle) to make things 10x more convenient.
- friedman23 8y ago>4) Take 1-2 hours in the beginning to set up ci/cd (like Circle) to make things 10x more convenient. Can you expand more on what you do here?
- sbr464 8y agocreate-react-app + netlify on the frontend. For the backend services, kubernetes on gcp with Ambassador from Datawire. It’s an extremely solid and easy to use gateway based on the Envoy load balancer. I have a few templates I’ve created that has reduced creating a new app/service down to a few keystrokes.
- hayksaakian 8y agoHeroku is still a great choice if you're willing to pay to never think about infrastructure. On the other hand if you're willing to ask for help there are plenty of freelance IT admins who would set up a digital ocean box with the DIY equivalent of Heroku.
- jpochtar 8y agoNot trying to be snarky but... how is it cheaper to hire a freelance IT person to set up something for you, and help you when it breaks/changes, than $7/mo for Heroku?
- ceejayoz 8y agoThe issue with Heroku is it rapidly gets more than $7/month if you hit any sort of scale.
- always_good 8y agoIn my experience this is vastly overstated. Also, just because you use Heroku for your app servers (dynos) doesn't mean you have to use it for everything.
- hellofunk 8y agoAbsolutely. We went from free tier to about 100/month in nearly no time with Heroku. It’s worth it though. Heroku takes care of all sorts of stuff, and that fee is still cheaper than hiring a sys admin for a small business.
- jdietrich 8y agoThat is quite literally the price you pay for convenience. In many cases, that's a very rational tradeoff - your time is better spent on developing and marketing your app than dealing with devops. If your Heroku bill is a relevant business problem, then you're probably grossly under-charging for your app. I think the main competition for Heroku these days is AWS and GCP. The workflow for deploying directly to managed cloud services has improved drastically over the last few years, so you might not need the niceties that Heroku offer.
- pageandrew 8y agoRails + whatever framework works for the desired frontend
- motohagiography 8y agoFlask hosted on pythonanywhere. Recommend highly.
- hodgesrm 8y agoI use Swagger/OpenAPI to define the REST API, which is fast and makes the API including the main data types easily visible. To implement the server side I typically generate Java JAX-RS skeleton code that can run in Jetty using Swagger codegen. You fill out implementation code and the app is off and running. On the client side I generate Angular client stubs using Swagger codegen, then fill build services and UI components on top. For CLIs or other tools you can take a similar approach or just write the REST calls directly. Code generation from an OpenAPI spec makes this process a lot quicker as it takes care of most of the boilerplate code necessary to process REST requests. It's especially helpful for making quick changes and also helps you to get to a stable, easily understandable API which is necessary if you decide to turn the service(s) into a real product. Docker is incidentally a godsend for systems with multiple services, especially if you work in polyglot environments.
- CryoLogic 8y agoember new my-app Yes Ember is still great. Ember data has gotten bloated though so I say pull that shit out IMO unless you are really used to it. Ember v3.0 is all modular now, so you can just strip out modules until you get down to Glimmer. Versus React or Vue where you start with basically nothing and build upwards. Exact opposite philosophy, but way faster for building 90% of CRUD apps.
- ricardonunez 8y agoThe most recent one I created was with Laravel hosted on Fortrabbit. If you want it to be even easier, try Laravel Spark. It is really easy to launch something simple.
- sampl 8y agoQuickly? Firebase + React. Seriously, don’t overlook this combo. Auth just works. Hosting built in, no backend or database server to maintain. No API, just subscribe to a collection right from the view. It just works (and is easily swapped for the real deal if you need it). I made a guide/boilerplate to show you how (includes auth, CRUD, full text search, stripe subscriptions): http://getfirefly.org/ http://getfirefly.org/
- RenegadeEagle 8y agoGood idea. Gonna look into this!
- KaoruAoiShiho 8y agoToo expensive to be worth it. I'm totally fine with outsourcing stuff that is difficult and third parties can do better, but in this case the amount of stuff you're playing egregious "cloud" pricing for is too much. Just spend a handful of days learning one of the open source stacks and you'll be set for life. It's totally worth it assuming you'll be making more than 1 app ever.
- sampl 8y agoGuess it depends on what you consider expensive. For me, time I’m writing unnecessary code or learning libraries I don’t already know is time I’m not spending thinking about the product. I’m a designer who just wants to ship. I am open to suggestions though. What would you recommend for, say, auth instead? I’ve tried rails, Django, node/mongo, etc; even hosting a small db on compose.io comes with a chunky base fee, and I still have to do way too much work for user accounts/search/APIs/ORM. There’s a reason Firebase is popular with the yoof. Change my mind though!
- lucasverra 8y agoMy startup is betting on parse server platform [0]. For us its the most of 2 worlds. - huge community supporting a codebase initially private - open source now so you can host it anywhere - 3rd party online instances to quickly start [1][2] [0][http://parseplatform.org/ http://parseplatform.org/] [1][https://sashido.io https://sashido.io] [2][https://back4app.com https://back4app.com] [3][https://https://www.nodechef.com/parse-server https://https://www.nodechef.com/parse-server]
- always_good 8y agoHeroku + AWS' RDS for Postgres
- closed 8y agoThe last couple prototypes I put up for work were using Flask and Vue on Heroku. I've been really happy with both how quickly they went up, but also how understandable everything is even a year later (they are only used internally). The piece I wouldn't mind cutting out is heroku. If you do end up going the docker route, docker-machine is nice for being able to quickly put things up, "push" updates to digital ocean: https://docs.docker.com/machine/examples/ocean/ https://docs.docker.com/machine/examples/ocean/
- sb8244 8y agoI use Elixir/Phoenix mainly because I think it is fun and think that side projects should be fun. If it has the potential to become something more, I believe that it is a great production language for a company and would stake my business on it. Usually deploy to Heroku free tier for my up and fast prototypes. Frontend will either be React or plain ol' JS depending on how complex the idea is.
- beckler 8y agoComing from nodejs, phoenix is incredible. Out of the box, phoenix just uses nodejs to generate all your frontend assets, and channels are incredibly easy to use. I'm still learning about how elixir works under the covers, but so far I'm really impressed.
- ai_ia 8y agoHow much learning curve if One doesn't know Erlang to get speed up in phoenix?
- beckler 8y agoYou don't really need to know Erlang. Elixir is like if Erlang and Ruby had a child. It's a functional languages, so I guess there's a bit of a curve there. Plus you get stuff like macros, which are incredible, but I thought was some kind of voodoo magic the first time I encountered them. There's a pretty decent tutorial on the elixir site, and the phoenix site if you want to learn. As for the learning curve, I didn't struggle with it for very long at all, but your results may vary. https://elixir-lang.org/getting-started/introduction.html https://elixir-lang.org/getting-started/introduction.html https://hexdocs.pm/phoenix/overview.html https://hexdocs.pm/phoenix/overview.html
- klibertp 8y agoThese are two separate things: Erlang and Elixir are one, Phoenix is another. In general, you don't need to know any Erlang to start working with Elixir. In time, as you advance your knowledge and start looking at more advanced features, you'll need the ability to read Erlang at some point, but that's actually pretty trivial: Erlang syntax is one of the simplest/smallest out there. It's much better in this case than it's with Clojure and Java. The functional nature of Elixir may be a little weird, but, if you're worried about this, it's not taken to the extreme like in Haskell. At the end of the day, you do have a process dictionary (don't use it), and normal IO. It's true for both Erlang and Elixir, but Elixir adds some improvements on top of that: in Elixir, you can re-bind a variable (Erlang has single assignment only), you get the familiar syntax for accessing elements of collections (`coll[:keyname]`), the `if` is "fixed" to be normal if-then-else (the usual Erlang construct is dubbed `cond` in Elixir) and so on. It's FP but in the spirit of OCaml rather than Haskell: pragmatic and striving to be convenient without pulling the users' minds through a monad. Now, Phoenix is another thing altogether. As far as frameworks go, Phoenix is very well designed, with a couple of orthogonal concepts being composed into a highly functional whole. To be honest, I didn't use Phoenix yet, personally - I did some code review for colleagues, but my own projects are written with Plug for now. Plug is a library which is comparable to WSGI spec in Python plus some additional utils, like in Werkzeug. Phoenix is built on top of Plug, so I figured learning it first is not a bad idea. Turns out you can get by with Plug (and eventually some "plugs" packages from other people) for quite a while; the experience is like with Flask or Sinatra. You have to know what you want, exactly, but if you do, it's trivial to build a basic framework out of the available plugs. It's actually a strong selling point of the whole tech: as I mentioned, Plug is as much a library as a specification (with the same motivation as WSGI) and it's great for interoperability of components. The whole stack is composable and extensible at the same time, which is not that easy to pull off as far as framework designs go. Documentation is decent, although its searchability is less so, I had a good time with devdocs.io for the core language and with hexdocs for plugs. It's definitely grokkable, and I'd say worth a try.
- dudleypippin 8y agoDjango running on Zappa (https://github.com/Miserlou/Zappa https://github.com/Miserlou/Zappa)
- bazjones 8y agoThanks, this looks awesome. I didn't know django apps could run on lambda.
- dustingetz 8y agohttp://www.hyperfiddle.net/ http://www.hyperfiddle.net/
- djbelieny 8y agoMeteor JS with Meteor UP https://www.meteor.com/ https://www.meteor.com/ and http://meteor-up.com/ http://meteor-up.com/
- zitterbewegung 8y agoI use Django and jQuery on top of a pythonanywhere. A bunch of people say that you need PostgresSQL and MySQL setup. Or that you need gunicorn behind a nginx setup . I just don't do those things and run Django with Debugging off on pythonanywhere.com or on a VPS like Amazon Lightsail. If you only need a static site though I have used Cactus but Jekyll could work.
- jacobsenscott 8y agoRails + heroku is pretty much instant. If you want to pay a little little less a single vps instance can run the web app and the postgres server at the same time.
- dorfsmay 8y agoWith a single VPS, you're missing the DB backup that is probably the most important piece if the puzzle provided by heroku.
- bufferoverflow 8y agoDepends on the DB size. For small side projects I do weekly SQL dumps, 7-zip them, and email as attachments to my GMail, where they get automatically tagged and marked as read.
- nmca 8y agoThis guy hacks.
- balfirevic 8y agoDon't want to be too off-topic, but I do wonder how that jibes with GDPR. I guess if they are encrypted it should be fine.
- alfredallan1 8y agoConsider using one of the command line tools to upload directly to your google drive. Have a script to do the zipping and calling the gdrive app on the zipped file, and run that as a cron job.
- dorfsmay 8y agoWhichever process you use is fine, but I wanted to highlight that there is more to heroku than just deploying your apps.
- jacobsenscott 8y agoYes, heroku's hosted postgres is fantastic. Once you have users you should use that, or aws rds, or learn how to do it properly yourself. Until then a cron job to backup your db every week, or day or every 12 hours or whatever is good enough.
- Method-X 8y agoI'm using Meteor with React and Semantic-UI-React. Not everything has to be realtime with Meteor; use Meteor.methods() instead. For most projects, I can definitely recommend using this stack. https://www.meteor.com https://www.meteor.com https://react.semantic-ui.com https://react.semantic-ui.com http://meteor-up.com http://meteor-up.com
- moltar 8y agoHeroku, I don’t think it can be any easier.
- hopsoft 8y agoRails (server side rendering) + Heroku.
- wsaryoo 8y agoflask + vue
- lastofus 8y agoAfter setting up server instances from scratch by hand multiple times over the years (and spending several hours each time), I finally bit the bullet and learned Ansible. I can now take a bare VM image on DO/AWS to a fully functioning Django app. I ended up modifying: https://github.com/jcalazan/ansible-django-stack https://github.com/jcalazan/ansible-django-stack
- Cofike 8y agoDocker containers are a breeze on heroku. The only issue is some wonkiness trying to ssh into the running container. Have yet to get it to work.
- andrei_says_ 8y agoRails still rocks, ruby is still beautiful and elegant, Heroku is still incredibly easy to deploy to. Vuejs is a good option for complex data driven ui.
- burlesona 8y agoThis is my go-to as well, incredibly easy and fast to get going but also scales reasonably well. The only caveat I’d say is I prefer Roda over Rails for APIs and simple projects.
- andrei_says_ 8y agoDo you happen to use rodauth with rails? And sequel?
- victor106 8y agoFrontend:- React/Vue/Angular Backend:- Spring Boot with Kotlin I must say I am so impressed with what Pivotal did with Spring Boot. It’s amazing.
- nicostouch 8y agoIt's so not fast to develop with though. I used to use it exclusively for years just cos that's what I knew. Switching to Rails now because Rails blows it out the water for speed of development. I still have a lot of love for Spring Boot just because of the power/flexibility and how incredible it is as a framework and marvel of engineering. But starting a spring boot app vs. starting a rails app is night and day in terms of how far along you already are with a Rails app especially if you use something like https://bullettrain.co https://bullettrain.co
- ezekg 8y agoNow this sounds interesting. I’ve been wanting to dig into Kotlin for awhile now. Were/are you a Java dev, or did you go into Kotlin without Java knowledge?
- victor106 8y agoI was a java dev before but Kotlin is a breath of fresh air. I really like the fact that they 100% interoperable
- bazjones 8y agoThe quickest thing to develop in is normally what you know. I find django the most productive web framework for things that might take off (for purely static sites I use Hugo and serve the site from S3, and deploy it using cloudformation - a great combo that lets me bring up a landing page in an hour or so). It sounds like deployment is what you want to simplify. While there is extra overhead in learning to use docker, deployment is one of the major issues it solves. I spent a day or two learning docker and docker compose, and now I have a local dev environment I can work in, and I'll be able to deploy to a host quite simply. Makefiles are an excellent, simple companion to docker, so it's also worth learning them. The big benefit of this is that you abstract your code from how to run it. So today you might like django, tomorrow ruby/language du jour, but all of that would still be built as a docker container which you'd be able to deploy to the same host with minor modifications. Also, to set up user accounts, create storage buckets, etc check out terraform. The language it uses, HCL, is a trainwreck if you need conditionals, but apart from that it works well and is simple (too simple, that's the trouble). So a combination of: * whatever web framework you're productive with * built into a docker container * with makefiles to ease administrative tasks * terraform to configure a cloud backend is a very powerful combination. But yeah, more stuff to learn. At least this approach means you can swap out the web framework for any other language and nothing else really needs to change.
- westoncb 8y agoThis is a quite a bit in-line with my thinking. Probably best to go ahead and spend a little time figuring out Docker (and the best way of using it with some hosting service... I'll check out terraform).
- bo1024 8y agoI have trouble understanding where all this demand for webapps come from. As a browser of the web, the only webapps I use are Google's email, maps, and docs. What are all these webapps for and why doesn't HTML (maybe with a touch of javascript) suffice?
- nlawalker 8y agoI have a slightly different question - many of the answers in here make it sound like creating and deploying a new web app is practically a twice-a-week kind of thing for quite a few folks. What kinds of things are people so frequently creating and putting up in a hurry?
- z92 8y agoA large portion of the apps are intranet thing, instead of Internet. Business apps that are used in house. Plus almost all websites are a kind of web app. And these have a complex backend for managing the content. While we browse the front end.
- qqqwww 8y agoI think you are underestimating what is a web app. Think about any website that requires a password - that is a web app because presumably it will do some personalization. Any content serving site is at least backed by a content management system which is a web app.
- bo1024 8y agoTo me, "web application" is a front-end application that runs on the user's computer in a web browser. Having a back end that runs code doesn't qualify in my mind. Otherwise, basically any website qualifies as a web app, including one written in pure HTML, which doesn't make sense to me.
- sfifs 8y agoGoogle app engine is my go to for web apps that need to be used in production at a small scale while I'm still evolving the functionality. What you prototype transfers into prod surprisingly well. The best part is I don't really have to worry about security - I just setup one of the default available authentication types and define access control in the routes in app.yaml. You don't have to be worried a hacking group will somehow subvert your instance if you miss applying a security update or mess up firewalls etc. If it's an internal app and your company is using Google Apps for business, you can even restrict access to people logged in to the company domain very easily. The persistence layer is a bit problematic at very small scale (think hobby projects) but if you are willing to spin up a cloud SQL instance which wouldn't be an issue for paid projects, you get an excellent secure auto managed environment.
- cdonati 8y agoWhat do you find problematic about Cloud Datastore for small-scale projects? I work on an open source implementation of it, so I'm always curious to hear about use cases and opinions.
- sfifs 8y agoBasically the lack of straight SQL support. "SQL-Like" means you end up calling their custom API functions and having to understand its unique API semantics in sufficient depth to build your persistence layer. Life would be so much simpler if it simply supported a subset of SQL - ideally with a standard interface like the Go's SQL.
- ireflect 8y agoHere's my template: Backend in Go, hosted on Gitlab with CI to build it and create a docker image (also hosted at Gitlab). Server is a plain Debian server hosted on Digital Ocean, with some light configuration with Ansible. A single docker-compose.yml brings up the application along with any service dependencies. Generally I use nginx-proxy with its letsencrypt companion so I can multiplex several docker web services and do SSL termination, all from within the docker-compose file. Frontend in angular, react, or react native. This is easy, automated, cheap, and not too exotic. I can host multiple things on a single server if I want, but easily splice them off to their own server later.
- westoncb 8y agoThis sounds a lot like what I'm looking for. I haven't looked into Gitlab at all yet, so I'll to check them out.
- Rjevski 8y agoGitLab has been a pain for me lately. Chose them for a client due to built-in CI (as opposed to Github), but the HTTP response time on the web UI makes it painful to use - I'm routinely seeing ~1s response times on pull requests and CI pipelines, not to mention that the provided CI "runners" seem overloaded and your jobs often stay in a pending stage for several minutes (can be solved by running your own instance of gitlab-runner on an AWS box). Personally I'm moving that project to Bitbucket - they now have CI pipelines too.
- sidcool 8y agoFirebase and Angular hosted in GCP.
- sidcool 8y agoI m pleasantly surprised to see Go so many times.
- brobinson 8y agoRails + Postgres (+ Heroku if you need hosting)... same as 2008
- nooyurrsdey 8y agoFor some reason people seem to constant doubt Ruby-ists and Rails Devs. I completely get that other languages have huge benefits over Ruby. Golang being compiled or Java running anywhere, etc... And ruby is slow, totally understood. But if youre talking about getting a functioning webapp up and running quickly... no way anyone is beating a Rails dev in setting one up. The piping and scaffolding are all built in and the gem ecosystem (for web apps specifically) is so well maintained and robust that you can drop it in to your app and get a functioning product with ease. I know that's a loaded statement bc Rails becomes not so great in other cases like building speedy backend jobs. But for a small user-facing web app it's hands down the best.
- tty7 8y agoI looked into rails in some detail about a year ago, and I think it's the only pretty good solution for this I've come across—but there's a steep up front cost in learning/setup etc. (or so it seems).
- sampl 8y agoYeah, I never found Rails as easy to learn as others did. Maybe it’s because I was younger and less experienced than now. Or maybe I’m dumb.
- Shank 8y agoThere is definitely a learning curve. For me, Rails was unapproachable until I started to give up the idea that I needed a ton of custom stuff in my stack. The "allure" I saw of pulling together a basic routing system and hooking things up by hand completely disappeared after building a pretty substantial web app in _Sinatra_. Rails makes a lot of decisions for you, but the decisions it makes are the _right_ ones. It's like having a "best practices" box that you can just shove your custom system into, rather than trying to build them in yourself. It's really quite something. For context: I basically learned Rails by way of building a proof of concept election management system in Rails in about three weeks (more like 1.5 in actual programming time). It also stored votes on a blockchain (ethereum). Even with a relatively complex storage system and interaction model, the Rails best practices left me with a really satisfactory application in no time flat. Perfect for a fast PoC.
- csytan 8y agoPython3 + tornado + peewee + sqlite3 + vuejs hosted on Digital Ocean. I've been using this combo in production for https://www.cozycal.com https://www.cozycal.com for a year with no problems. Likes: - More control than hosted environments - Dirt cheap Dislikes: - More responsibility than hosted environments
- notamy 8y agoElixir / Phoenix backend, React.js frontend. Nothing has beaten it in terms of development speed for me.
- aroman 8y agofrontend: create-react-app frontend hosting: surge.sh (free) backend: node + socket.io (usually on a separate domain with CORS) backend hosting: heroku (free) database: MongoDB database host: mlab (free) everything in TypeScript, of course, because when you're in a hurry, you simply don't have time for your code to not be typesafe! (actually though, TS is a maaaaajor time saver, especially for smaller projects!)
- togusa2017 8y agoBOX: Digital ocean API: flask + MySQL / Redis UI: create-react-app Use docker pre-build instances for MySQL or Redis or Nginx If you have extra time in hand Nginx --> flask
- georgecalm 8y agoI’ve been happy with Dokku hosted on DigitalOcean with the Postgres plugin for persistance and the Grafana plugin for stats gathering (optimizing for validated learning). I have a base image of that on DO for new projects. (Also Dokku Postgres takes care of cron-based encrypted backups which it will happily store on DO Spaces; in case anything happens to your server) I use Node on the backend with a simple passport-based session cookie auth and the apollo GraphQL server for APIs. I use nuxt for isomorphic (progressive?) vue components along with the Apollo vue module to communicate with the GQL server.
- juskrey 8y agoClojure + pedestal on backend, ClojureScript + either om.next for complex projects or reagent for simple
- qwtel 8y agoI've used https://github.com/apex/up https://github.com/apex/up and I like it a lot. With your AWS credentials configured in the environment, it boils down to running $ up
- innomatics 8y agoDjango, Docker and AWS ECS and ELB. Absolutely worth the effort to learn how to build a Docker image and put together bash scripts to push the image and update an ECS service. We have a base project which includes nginx and uwsgi set up to simply serve the Django app and static files on port 80. Having an ECS Docker cluster with spare capacity greatly assists getting new projects up and running quickly, especially if we can run the test site under an existing domain managed in AWS. Then we can just add new rules on an existing ELB and piggy back on the SSL certificate. With this workflow we spend the time getting a good image running locally (with local environments vars/secrets) and we know the deployment side is taken care of, and can be scaled if and when is needed. This also has the benefit of forcing dependencies and environments to be fully documented from the start (in the Dockerfile). The next step, if the project gains traction is to move the Docker build/push/service update into CI space. We've moved away from ansible now largely, there's a use case for more complex setups for sure but am interested in K8 capabilities to help there.
- hangtwenty 8y agoAgree with your tips, I’m personally hoping EKS becomes good enough that we can just skip the ECS step, but honestly translating basic ECS to Compose to Kubernetes (or any variation on that) is all all easy, so any of them work great to start
- jsmeaton 8y agoMay I ask how you’re managing secrets with this setup? For example, the secret key or database URL. Our current setup deploys an env file which is sourced before starting the process. I’m less sure how this translates to a production docket deployment.
- slow_donkey 8y agoDocker shouldn't affect your secrets management because secrets shouldn't be baked into your image anyways. I tend to expose them as environment vars and currently use Kubernetes to expose a keyvault url/password so the app can automatically grab all the secrets
- Rjevski 8y agoDjango or Flask, backed by PostgreSQL, both on Heroku. Once you scale you can look into doing it manually with AWS when the cost savings start to become worthwhile (Heroku ends up being quite expensive for high traffic).
- vesche 8y agoFlask & SQLite running behind an Apache reverse proxy on an AWS Ubuntu server.
- greenyouse 8y agoServerless + managed cloud services for heavy lifting (cognito, dynamodb, cloudsearch) + basic logging, alerts, tracing stuff static site or React on frontend Pretty quick to roll out and free to run if the app never takes off. If you need to scale later, you can build your own serverless versions of some cloud services to save money.
- dharma1 8y agowonder why this isn't getting more love?
- slimshady94 8y agoNodejs + Angular + Heroku. Surprised to see only 3-4 nodejs comments till now, compared to many more Go comments. Has the tide turned, is Go the new nodejs? :(
- chrisco255 8y agoGo has some performance benefits over Node, especially when running CPU intensive tasks (Node is solid for I/O). They're both hugely successful platforms though. I think there are huge productivity advantages to using Node on the backend. Context switching between programming languages and platforms is expensive for humans, so...Node is a win for productivity if you already know JS well enough.
- iopuy 8y agoasking the same question i've asked all js-centric responses above... how do you handle authentication?
- slimshady94 8y agoI use passportjs without thinking.
- bobbydreamer 8y agoFirebase + NodeJS ::Firebase takes care of the authentication that's a big plus and good videos in youtube(David east, Jen person, Chris esplion, Traverse media) ::Firebase provides you hosting as well with HTTPS.
- simonw 8y agoIf I need a database I use Django on Heroku. It's free for up to 10,000 database rows and inexpensive should you need to grow past that. If I don't need a database (or any persistent storage) I use Zeit Now, deploying Python apps (Django, Sanic or Uvicorn) via a Dockerfile.
- nsx147 8y agoYii2 with aws lightsail bitnami LAMP...mysql in the lightsail instance or RDS, nothing new or crazy but I know it and can get it done extremely quick. If the webapp takes off, I can figure the rest out later.
- abhi21284 8y agoI use Django cookie-cutter(https://github.com/pydanny/cookiecutter-django https://github.com/pydanny/cookiecutter-django) to quickly create a production-ready Django project with docker enabled. For Frontend, I use normal Django templates with intercoolerJS(http://intercoolerjs.org/docs.html http://intercoolerjs.org/docs.html). It can be deployed on any docker machine with docker-compose.
- dawie 8y ago+1 for Meteor Also look into Bubble for really quickly getting something up and prototyping an idea.
- aculver 8y agoHey Weston, with regard to servers and deployment, I think Heroku is a very turn-key solution. These days you can have a default `app.json` in your project and use it to click a button to deploy your app to a totally new development or production server including any databases and third-party add-ons you need provisioned for the app. It's pretty magical. For CI, I use Codeship. The combination of those two vastly minimizes my responsibility for infrastructure. On the development side, I still think Rails is an excellent choice, but I also felt a lot of the same pain you're expressing, but instead of with server configuration, I started feeling it more specifically with the redundancy of putting together the same libraries over and over for each app. To try to revive the joy of creating new projects, I created Bullet Train (https://bullettrain.co https://bullettrain.co), which I describe as "Rails on Rails". It's an app template with authentication (Devise), authorization (CanCanCan), subscriptions (Koudoku), teams, invitations, OAuth integrations, etc. all wrapped in a consistent theme with a full feature-level test suite. It also has a powerful code generation/scaffolding engine for pumping out CRUD views and controllers for the web, API endpoints, API documentation, and soon it'll handle your Zapier integration as well. (Posted a demo video of this here at https://twitter.com/andrewculver/status/934251715175395328 https://twitter.com/andrewculver/status/934251715175395328) It also has a thin layer of conventions on top of vanilla Rails, like namespacing the public vs. account sections of an app. It's stuff that most of us were doing previously, just slightly different from app to app, and this is an attempt to standardize so we can build other magic on top of it. As a demo, a few months ago I used Bullet Train + Heroku to build and launch a simple Trello clone in two hours: https://bt-cardboard.herokuapp.com/ https://bt-cardboard.herokuapp.com/ . It's limited, and I haven't come back to it since, but I thought the end result was a powerful example of what you can get done quickly when you're using the right tools. (I have a video recording of the entire process which I'll upload to YouTube if anyone is interested in seeing it.) Anyway, I wouldn't normally peddle my wares on HN, but the whole point of Bullet Train is to try to achieve new levels of developer productivity and happiness, which seemed relevant to the question you were asking. There's nothing quite like this in the Python world (I'm frequently told by Python developers,) but there probably should be, and I imagine it's just a matter of time before there is.
- keithwhor 8y agoIf you need to build an API quickly we just launched https://code.xyz https://code.xyz on Thursday. No server provisioning, no routing, nada, just write a JavaScript function, hit deploy, and you have a scalable "serverless" backend. You can deliver any type of content. (We have command line tools available as well, if the web environment doesn't suit all your needs.) Our company is called StdLib, we're focused on making API development, deployment and management effortless - we're backed by both Slack and Stripe [1]. [1] https://stdlib.com/blog/stripe-code-xyz/ https://stdlib.com/blog/stripe-code-xyz/
- sandis 8y agoThat's pretty cool! Literally took me 10 seconds to sign up and deploy the sample function.
- keithwhor 8y agoThanks! That's what we've optimized for. :) Glad you enjoyed it! Let me know if you have any questions.
- repsilat 8y agoWow, really neat. I guess you're working on top of AWS lambda or something? If so, how do you get around the 75 gig code size limit? Just "That will be a good problem to have when we have all those customers"?
- NightlyDev 8y agoThree second setup of PHP sites with atomic updates and automatic DB migrations: Pre-built LXD image with MariaDB, nginx and PHP. Git for deployment. Provisioned and live in three seconds with support for rollbacks, migrations, atomic updates and zero downtime. Should work well for most other scripting languages too.
- humbleMouse 8y agoI just make a spring boot seed application and use it whenever I start new projects.
- catfood 8y agoI don't do anything special for prototyping, I just use what I normally do if I were creating the real thing. > django-admin startproject > copy+paste my webpack config for React > copy+paste my general management scripts into the package.json (mostly scripts to build the client, and if working locally also start a server) Then if I want to deploy it, I just install nginx and gunicorn and again copy+paste my configs for those. If I want to use mysql it's not too much trouble, takes 10 mins to get it up and running and my application hooked up to it.
- chuckdries 8y agoI'm surprised nobody is talking about Express for the back end. Maybe it's because I hail from the front end world, but I'm already so comfortable in javascript I'm faster in it than if I had to learn anything else. For the front end, I like Vue because it's just react with less boilerplate.
- dyeje 8y agoIt blows my mind that there still isn't a polished ORM for the node.js / Express ecosystem.
- jchw 8y agoPrecisely this. I came from the Django world to try starting a Node.js project, and was absolutely blown away by how immature ORMs and even database libraries felt. In Python, you have SQLalchemy and Django ORM, both of which are fantastic and make ample use of the language. But for JavaScript, it felt like an uphill battle, especially if you want to do anything fancy. Of course you don't _need_ an ORM or at least you definitely don't need one as full-blown as Django ORM. But I didn't even feel comfortable using any of the solutions I saw that were supposedly the 'best.' And yet, when I went and evaluated the solutions, I do agree they were the best - I just never felt like they were mature enough to really use yet. As far as not using an ORM goes, certainly this is doable, but at the end of the day if you don't want to hardcode a bunch of SQL queries and statements you probably are going to need to write code that will begin to look awfully like ORM code for basic operations...
- mmcnl 8y agoMost Python libraries are a lot more mature than NodeJS libraries. This makes sense because they are also often a lot older. That being said, all ecosystems have their up- and downsides. Fpr example, I think package management for NodeJS is infinite amount of times better than for Python. Pipenv only came around one year or so ago.
- connorelsea 8y agoThere are multiple. Sequelize is the best and I've used it in a few projects
- dfitzpat 8y agoMy preferred solution is Waxx https://www.waxx.io https://www.waxx.io - It is Ruby and very fast. Mostly functions, no classes. Deploy like this: waxx deploy stage or waxx deploy prod The deploy script can be as simple as: cd /path/to/folder && git pull && waxx migrate && waxx restart Disclaimer: I am the author of Waxx and I wrote it to be as simple as possible yet still high performance and flexible.
- GordonS 8y agoFirst time I've heard of it - how would you say it compares with Rails? Is there much of a community behind it?
- dfitzpat 8y agoThere is not much community yet. It is pretty new. It is very different than Rails. It is more of an RPC/Rest system than an MVC system. In my testing on FreeBSD with Postgres it is close to 10x faster than Rails. It is a bit faster than Go and a bit slower than Node. It is quite simple to write and the code itself can be read in a few hours (at most). I'll be posting some sample apps this summer.
- giancarlostoro 8y agoUsually CherryPy, Mako and MongoDB. Its how I won TADHack Mini 2018. I was able to focus on getting things to work more than how they work. CherryPy is older than Flask and OO based. Mako is a performant templating library that Reddit used and still might. MongoDB is just a document database so schema that changes isn't a big deal aka perfect for prototyping. However I am making a shift to using D so I am learning DiamondMVC which is inspired by ASP .NET MVC and takes full advantage of Vibe.d and all the rest of the D ecosystem is available to me as a result. If I need something done in a weekend CherryPy and Mako with any DB. If I wanna get something quick that I wont have to worry too much about scaling then D with Vibe.d or D with DiamondMVC is great. The best part about D is there is no crazy learning curve like Rust and it is very highly performant. Also the VS Code plugin is nice enough to make me productive enough.
- tuxidomasx 8y agoAmazon Web Services free tier, elastic beanstalk running node.js, S3 for static files and stuff or basic web page hosting or Google Cloud free tier, Google App Engine running node.js, google cloud storage for static files and stuff or basic web page hosting both are git-compatible and deployments are as easy as : "eb deploy" or "gcloud app deploy" for front end stuff, if its just a prototype i just copy a bootstrap 'live preview' design that i like, and jquery stuff together.
- franzwong 8y agoIf your problem is about deployment, how about writing in Golang? You can build linux binaries even your machine is a Mac. Then you can just scp the binaries and run.
- iopeak 8y agoAt https://asyncy.com https://asyncy.com we are working to remove the unnecessary complexity of applications by choreographing microservices. We are just a couple weeks from private Beta. Would love your feedback and testing.
- Diesel555 8y agoI have a Django / Angular cookie cutter project that I use to start all my new websites. The first thing I do is update them to the newest versions on the basic website, save that as my new cookie-cutter, then make the website.
- radus 8y agoI like to use Vue included as a script tag with flask on the backend. Slightly outdated seed project: https://github.com/radusuciu/quickvue https://github.com/radusuciu/quickvue I like it because it allows me to get started without thinking of any build steps.
- appdrag 8y agoIf you need an instant Backend (database + api builder) but also a CMS in the cloud you can check our combo: Cloud Backend: https://cloudbackend.appdrag.com https://cloudbackend.appdrag.com and Cloud CMS: https://appdrag.com https://appdrag.com It's a fully serverless solution, nothing to install on your side, you can do everything in the browser directly. and we have a free tier :) Also we have no lock-in, you can export everything in a ZIP, static files, db backup in mysql format, API source code in your language (Node.js, Python, Java, C#, Go, ...)
- hellofunk 8y agoFull-stack Clojure with Clojurescript front-end is about the fastest workflow I’ve ever used. The front-end part in particular with Reagent (a Clojurescript React library) is a very quick workflow compared to all front-end alternatives. There are perhaps more valid options for server, but even still, having the same language in both browser and server is very convenient both for reduction in cognitive dissonance and automatic transfer of language-specific data structures back and forth. Highly recommend. I should add that on both server and in browser your code base will usually be a lot smaller than most other languages, which greatly speeds workflow as well. As an example I once ported an Elm project to Clojurescript and it was a 4x reduction in lines. Using Heroku to just git push the project works well too. Deploys in seconds. If your project becomes more, it all scales well. Clojure is quite fast compared to Ruby or Python, and Heroku scales with the click of a button. You won’t have to port to a more performant language or host if you suddenly get popular.
- oreganoz 8y agoDoes Clojurescript support stuff like hot code reloading? And does Clojure have any good framework for an actor system implementation? Because I've been interesting to get an excuse and try Clojure out and what you're saying is really interesting.
- asragab 8y agoIt does support hot-code reloading, the preeminent build tool for Clojurescript: https://github.com/bhauman/lein-figwheel https://github.com/bhauman/lein-figwheel has that out of the box. As for an actor model implementation, there is pulsar: http://docs.paralleluniverse.co/pulsar/ http://docs.paralleluniverse.co/pulsar/ Which has erlang-like actors, though some might suggest that core.async and its channel implementation provides everything you might need an actor for, YMMV.
- oreganoz 8y agoHmm, I guess I better look deeper into Clojure. Finally I get to play with a Lisp. My main interest with actors is that these can be made to support hot code reloading on the server side. They also tend to be easily composable. Also also, they can be optimized by locality (eg. same-node, same-cluster, different-cluster) I'm biased though, having not worked with CSP or other models.
- nreilly 8y agoI find Linode/whatever with dokku and Django to be pretty quick and consistent. I have a dokku instance internally for testing, and do production deploys in the same way. It uses heroku buildpacks via herokuish which makes deploying anything straight forward. Create Ubuntu VM (with applicable config (ssh keys only, automatic security updates, turn off cruft) Install dokku Install PostgreSQL plugin for dokku Install letsencrypt plugin for dokku Create app in dokku Add remote in git repository locally Add buildpack triggering things/stuff to let Django run in this environment (gunicorn, collectstatic stuff, etc) Git push dokku Edit: formatting
- jypepin 8y agoThe fastest way to get a web app running, for free is Rails + github + Heroku, imo. It's very fast to scaffold a new app, with diverse options you'd want (react/vue/other stuff). Host it on github, create a heroku app and push it.
- hellofunk 8y agoWhat do you mean host it on github in the context of using Heroku, which would be your host? How is github involved?
- nicostouch 8y agoWell, he probably means source code management. However...if it's a SaaS you could have the marketing website hosted on github pages for free using Jekyll and that even incorporates a blog into your solution too! Then of course host the app on a subdomain using Heroku. So github can come into it that way if you think about it. Not a bad option at all!
- sah2ed 8y agoI think the parent meant publish the repo on GitHub as you are unlikely to accidently nuke the code like you would if you were experimenting on Heroku.
- jypepin 8y agoHeroku has a github integration to handle CI and automatic deploys[1]. This way you can, for example, have your app deployed to heroku automatically when you update master, etc. [1] https://devcenter.heroku.com/articles/github-integration https://devcenter.heroku.com/articles/github-integration
- nikhildaga 8y agoWe use React + React Native + Nodejs + GraphQL to build web and mobile apps at https://ideatostartup.org https://ideatostartup.org
- meesterdude 8y agoIt's still totally rails. I mean... I can start a new project, create some models/tables and relations between them, and deploy it to heroku with admin login and decent interface and file upload... in half an hour? and... this little project I create in half an hour, can be scaled up to handle tens of thousands of requests a second. Or wrapped with a native navigation and served up to mobile/desktop users, or integrate with any number of apis and services. And I can put it down for 5 years, come back and (almost)instantly know how to continue working on it; development in rails often has a certain obviousness to it. You spend time solving the interesting problems instead of the boring ones. But the real kicker, is doing it in rails is enjoyable and effective; one person can deliver similar software that takes multiple teams many months to do in megacorps. I've also had a number of managers hiring for phoenix/python/java stacks tell me they have a hard time finding the sort of developers they like working with outside of rails. I found that surprising - but rails does have a culture of effectiveness and happiness that other stacks do not share. Anyway, If you have an idea and want to get something working but that can also carry you beyond prototype; Rails is a great choice. A complete development framework, well documented, great community, strong history, designed for enjoyment and effectiveness; that checks all the boxes for me.
- madhadron 8y ago> A big aspect of what I'm wondering is about automatically setting something up for keeping local/production environments in sync, quickly deploying to production, and not having to mess with a bunch of server configuration things, user accounts, security, etc. Here's the simplest operational approach that I have yet found. Use Amazon RDS to run PostgreSQL as your production database. Architect your system to be one, static binary that is its own web server, contains all web assets compiled in, everything. It takes its configuration from a very small number of environment variables. Start a CentOS VM. Copy the binary to it. Write a systemd service definition that sets the appropriate environment variables and runs the service as a dynamic user (so you don't have to worry about setting up accounts on the VM). Copy that definition to the VM and run `systemd daemon-reload` to make that service available. To deploy a new version, copy static binary of the new version to the VM and restart the service. That glosses over lots of details, but it's your starting point for thinking about this. Every deviation adds operational complexity and has to pay for itself in reduced effort elsewhere.
- 49bc 8y agoMost languages don’t support static binaries. Other than Go I can’t think of any that make it easy.
- madhadron 8y agoYup. It's a pain. A first compromise is to have the language runtime installed, and create a single file for your code and assets, such as a heavy JAR for JVM based languages or an egg in Python.
- DanHulton 8y agoIf you have the luxury of picking your stack, and don't mind using modern, clean PHP, try Laravel and Forge. Laravel is a solid framework, and Forge handles the deploys, even going so far as to be able to deploy automatically when you push to master. Plus, you can use Laravel Spark to build an application framework base, with user login, teams, payment, all that written for you. If you're not able to pick your stack, well, Ansible is pretty easy to learn. You can use Vagrant for the local dev, and ansible-vault for production secrets management. Deploys become a single command line, and that includes when you want to push an environment update.
- Implicated 8y agoI'll second this. Laravel + Laravel Homestead (Pre-configured Vagrant VM) + Laravel Forge [2] (Server config + deployment processes) makes my life too easy. It doesn't even have to be a PHP/Laravel project for this process to really make your life easy. The Homestead VM has the same services installed and configured the same was as the forge server. Nginx (or Apache), mysql/mariadb, postgres, sqlite, node/bower/grunt/gulp, redis, memcached, beanstalkd, elasticsearch, go, etc Homestead has pre-built commands to make it very easy to add new sites/projects, does the port forwarding for you, handles the shared folders easily. Forge's UI allows you to not have to ssh into the server for things like restarting nginx/mysql/postgres, 2 click let's encrypt SSL certs, configure/restart queue workers (via supervisord), configure cron scripts and schedules, deploy via git with custom deploy scripts. You can create databases, create database users and manager their permissions. Create firewall rules and manage daemons. I spend all day in the PHP/Laravel ecosystem so it works for me - but I find myself pushing non-PHP products through the same pipeline most of the time because it's so easy and just works. 1. https://laravel.com/docs/5.6/homestead https://laravel.com/docs/5.6/homestead 2. https://forge.laravel.com/features https://forge.laravel.com/features
- keyle 8y agoFirebase + VueJS or NodeJS + VueJS.
- deleted 8y ago[deleted]
- FahadUddin92 8y agoIf its a basic app with CRUD features, I use WordPress. Else PHP (LAMP stack) and JavaScript (MEAN stack) are great options.
- cascada 8y agoI use Rust and my own templates
- amingilani 8y agoOh man, do I love this question. For the stack, Ruby on Rails with React. But my secret sauce is the DevOps: + GitLab + GitLab CI + Heroku + Git + Git tags I also add some magic npm scripts to take care of semver tagging. And with my build: + All pushes are tested + All changes to master are tested and deployed to staging + All semver tagged commits are tested and deployed to production + Also, all database migrations happen automatically. I documented my entire process by building and deploying a sample app here: https://www.toptal.com/devops/effective-ci-cd-deployment-pipeline#contract-just-respected-software-architects https://www.toptal.com/devops/effective-ci-cd-deployment-pip...
- ai_ia 8y agoCan you give me a resource to get started with devops. I have only heard these ideas, but don't have any clue why at all they are required.
- rhizome31 8y agoThe idea is to automate repetitive tasks as much as you can because doing them by hand takes time and is error-prone. Build, deployment and testing are tasks that are well suited to automation.
- amingilani 8y agoThis! I started by automating things that would take too long. At first it was taking code from my repository and deploying it to Heroku. Then I discovered that CI services literally gave you servers to run scripts on to interact with your code after a git push, so I started running tests in these servers. Fast forward a few years and I automated everything except writing and maintaining the codebase. I even run linting tests in CI so no badly written code can even make it to code review.
- mariushop 8y agoMeteorJS (Node) + React for https://eddtor.com/editor https://eddtor.com/editor, really quick (1 month from idea to launch), more recently going for Go full stack (server side + template/html package for front-end). After staying on the bleeding edge of Javascript ecosystem for about three years, I missed the simplicity of a reliable server-side language + the battle tested JQuery (I know, right?!) plug-ins.
- iopuy 8y agoSpoken like someone having spent sometime with passportjs.
- handbanana 8y agoCare to expand?
- pbreit 8y agoWeb2py (Python framework) includes an Ubuntu (and other) setup scripts plus a Fabric fab file for one command deploys that works pretty well. Web2py comes with a bootstrap welcome app that gives you user mgmt, authentication, admin and DB access with about a click.
- tim333 8y agoI've web2py on digital ocean. A good thing is it's multi app so if you want another you click new and have a new hello world almost instantly. Setting up www.myhello-world.com and linking it takes about 5 min. re >A big aspect of what I'm wondering is about automatically setting something up for keeping local/production environments in sync, quickly deploying to production, and not having to mess with a bunch of server configuration things, user accounts, security, etc. The config, accounts default to secure useable stuff Auto is sync doesn't really happen but its a matter of clicking "pack all" on local web2py and then "upload" on the one on the server. On the minus side it doesn't have that many users.
- GijsjanB 8y agoReact, Express, Postgress, Nginx all in Docker containers managed with Docker Machine on a Digital Ocean box. It may not be the most simple/quick solution, but with some copy/pasting I can get something up rather quick and it's super flexible. Need OCR? Add a Tesseract container. Need a fileserver? Etc.
- iopuy 8y agohow do you handle authentication?
- raarts 8y agoDon't know about GP but in a similar setup I use keycloak.
- cbzbc 8y agoLooks good - though it does introduce a dependency on java.
- GijsjanB 8y agoDepends. Most of the time, I don't need any, because it's a quick 'n dirty proof of concept. For production, at work, we have a federated login, so external. For side projects, I use a good ol' Postgress table.
- danielecook 8y agoI like flask and I also like to use boilerplate or skeleton projects. These are projects that have a fair amount of infrastructure set up (testing, views, user accounts, even admin stuff). There are a lot of them set up on github with varying degrees of added features. I’ve begun to maintain my own for the sake of saving time. The only challenge is setting up the appropriate infrastructure for deployment. Fabric works well for that.
- epynonymous 8y agogolang, amber (templates), gorilla mux, material-components-web, postgresql deployed on aws or lightsail
- vishnu_ks 8y agoDjango + DigitalOcean + Vue.js(If necessary)
- kristopolous 8y agoVanilla php + html5up + sqlite3. Everyone else here is trying to be stylish and fancy. Your customers don't care what language it's in or whether the code is beautiful. No cutting edge incomplete frameworks, convoluted tooling, piles of inaccurate documentation to read, inexplicable cryptic error messages with a bunch of incorrect solutions on stack overflow, or other incompetently over engineered bullshit. Just go as vanilla, basic, and standard as possible. True speed comes when you don't have to deal with other people's bugs and poorly designed mistakes. Don't rely on code written by flocks of people you'd never hire in a million years.
- crag 8y agoSince you listed PHP - take a lot at Laravel (https://laravel.com/ https://laravel.com/) Like Rails, you can get a a site/app up in minutes. .
- noir_lord 8y agoSymfony 4 can be spun up as fast as Laravel 5 and (this is my opinion) Symfony has all the benefits of Laravel with a better ORM (if you want it) and they have never broken backwards compatability in my experience. Throw in the utterly fantastic documentation (that is both more detailed, thorough and better organised) and I'm not sure why Laravel took off the way it did. I used Laravel for 3 years at a previous job (from 3 to 4 to 5) and I still think Symfony is the better basis for anything that isn't a relatively small application. Also Symfony components are genuinely de-coupled, documented on how to use them stand alone and useful for that (I gradually brought them in on an inherited project with few issues).
- no1youknowz 8y agoI have a huge complex behemoth of an application which is written in CodeIgniter 3 with a whole bunch of changes that I have made over the years to the core. To call it CI 3 is a bit of an understatement. I hadn't upgraded sooner because it had worked, but then due to issues with my stack. I decided recently to start from scratch and upgrade my toolset as well. So I was deciding to either go symfony or laravel. Laravel won by a huge margin. From the perspective of a newbie. Even though I have 10+ years developing in PHP, I like to debase myself and approach with no baggage. Laravel has so many more tutorials than Symfony 4 on Youtube. I wanted to learn and very very fast. So going through videos in 2x speed and getting the gist of how things worked was great. Continuing on, there were many tutorials which had actually built apps using Laravel 5.5/5.6. So I was able to quickly get up to speed using Validation, Eloquent, Passport, Middlewares, Query Builder, etc. On the documentation side. It's very easy to use and describes simply how to get things done. Next was that Laravel had VueJS integration. So out of the box, I could have an SPA and use Laravel effectively as an API. Of course, right now I am one developer so 1 codebase is fine. But later on, if I need to split and have two codebases (VueJS front-end, Laravel API), then I can do that. With Laravel I've gone from writing straight SQL to using the ORM. Which surprisingly for me, reduced my codebase by a significant margin and surface area for bugs. I have found that there are a lot of Laravel composer packages compared to what I was using before and again makes my life so much easier. Finally, there is a bit of synergy between Vue and Laravel. For example, I'm able to post a form with Vue using Vee-Validate for the validation. Then get laravel to post back any errors for Vee-Validate to consume. In jQuery and using my old codebase. I had to jump through hoops to get it done and much more code. I will also say, that I had actually decided to go with Symfony in the beginning. The main reason was that Symfony was more pure and I have developer friends who recommended it as the way forward. > and I'm not sure why Laravel took off the way it did. It took off because with Symfony, try as I might. I just couldnt get on with it. It wasn't as pleasant experience with Laravel and honestly. Even if I persisted. The time that I took to go from zero, to duplicating my own stack was a few weeks. I don't think I could have done that with Symfony. Yes, I could probably achieve the same result with Symfony. But not in the same amount of time. As still a new laravel developer. I want to be able to deploy new features very fast. I can do this now.
- dredalious 8y agoTwo part answer 1/ how do I built it 2/ how do I run it. The run part became easy the last few years: Dockerize all the things, run them on AWS ECS with Fargate (and add whatever else you might need, e.g. ELB, S3, SQS, ...), no servers to setup or maintain. The built part, that actually became harder... You need to figure out the best tools for whatever problem you're trying to solve, and the list of tools keeps growing. I default to very conservative standards, because I'm familiar and productive with them: Java (Spring Boot), Vue.js and PostGRES, with sometimes a bit of Node or Python and some ElasticSearch or DynamoDB thrown in the mix.
- dvko 8y agoGo + HTML + CSS. Doesn't get much easier than `mkdir my-app` and you can sprinkle over fancier tech if and when you need it. My specific Go toolset consists of the following packages: * urfave/cli * gorilla/mux * html/template * keyselhightower/envconfig * database/sql * rubenv/migrate
- ttiurani 8y agoFor my last project for a new business website, I just used Github pages w/ Cloudflare for SSL, all free. Because the site needed a unique brand look n' feel, I opted out of Jekyll and used Foundation 6 as a base and node-sassed my styles with npm scripts and custom svg:s. For cache-busting I run hashmark with postbuild. Then I just write HTML. Development is easy, things work nice, site is very fast and it looks great. Moral of the story: starting with just static HTML and CSS is the right choice a lot of the time. Don't complicate things before you need to. And when the need to, only make dynamic those parts that can't be static.
- roadbeats 8y agoI used Go and Elm most recently for building listenparadise.org a few weeks ago. Go is productive, simple and fast, and Elm also felt like that to me. You can read about why I quit JS in favor of Elm at http://azer.bike/journal/elm http://azer.bike/journal/elm
- tmlee 8y agoLooking for a self hosted solution that works like heroku, consider https://github.com/dokku/dokku https://github.com/dokku/dokku Been using that to host small projects here and there of late. Works well for keeping the app 12factor, and worry less about Devops
- vinc 8y agoVue + Rails 5.2 + Postgres + Dokku With Bootstrap and Devise (auth) and many other ruby gems / npm packages, we can prototype a project extremely quickly with this stack by simply following the conventions of the community and trying to avoid writing too much custom code.
- apexkid 8y agoOh man no Java lovers here. I believe with the entry of Spring boot and Spring roo project which provide scaffolding and convention over configuration model, this just might be able to compete with RoR ecosystem in terms of speed and robustness. Take a look: https://projects.spring.io/spring-roo/ https://projects.spring.io/spring-roo/
- catchmeifyoucan 8y agoAngular, host on S3 and serverless backend with AWS Lambda. Build a client, write your routes and your good to go. Also scales really well.
- iopuy 8y agohow do you handle authentication?
- catchmeifyoucan 8y agoYou can do signed cookies, validate in your lambda function the credentials, and then return a signed cookie. A little dirty, but quick and enough to lock-down
- naranha 8y agoVueJS with CouchDb. Especially for prototypes you end up rewriting everything multiple times. With classical orm-sql you lose way too much time with writing the boilerplate.
- 0xCMP 8y agoThe easiest thing to do is Heroku. They've really nailed it down and the +$2/month for their basic instance is easily worth it if you don't want to spend the time getting everything setup. Automation requires infrastructure and infrastructure is cheap only if you know how to set it up. I run ~3 side projects using Heroku to host a Django project with a GraphQL API talking to Heroku Postgres and Netlify the host the ReactJS frontend. I serve the API on heroku's free domain and put the react project under app.projectname.com and use token auth to talk to the API. Deployments are super simple. Including updates to and managing the database.
- iopuy 8y agowhich token auth mechanism? Always curious to hear how others secure their endpoints.
- 0xCMP 8y agoI usually just reach for Django Rest Framework's token implementation. I know others use it so I figure it's good enough for something I'm just getting started with.
- hjnilsson 8y agoWhat do you use to connect Django models / Postgres to GraphQL?
- 0xCMP 8y agoGraphene does most of the work for me with Python meta-magic. https://github.com/graphql-python/graphene-django https://github.com/graphql-python/graphene-django
- isuckatcoding 8y agoSorry What did you mean by $+2? I see $7 for their hobby instance..?
- matt2000 8y ago
- cel1ne 8y agoKotlin, gradle, closure and tachyons.css. I wrote a short buildscript for that setup that i copy.
- markholmes 8y agoTachyons is really underrated. Not having to write CSS - and more importantly, not having to debug the CSS you write today in five years - is really great.
- metaos 8y agoI've been using the Tachyons style since IE6 on my platform - never looked back! https://meta-os.com/ https://meta-os.com/ It shrinks the total amount of CSS & style enormously as well.
- vfulco2 8y agoI love dokku for simple deployments. Even a blind truffle pig can do it on DO. Good for a bunch of microservices. Only issue at the moment is slapping Hugo on the raw domain.
- cbzbc 8y agoHow do you work with testing local changes outside dokku ? Because the one thing I've found with a docker setup is that I write increasing amounts of stub code to avoid going through the docker rebuild/redeploy cycle when doing development.
- Grue3 8y agoI wrote about it on my blog (that was in 2014 but nothing really changed since then). http://readevalprint.tumblr.com/post/101841449553/its-alive-the-path-from-library-to-web-app http://readevalprint.tumblr.com/post/101841449553/its-alive-...
- chunkyslink 8y agoI hope you are being sarcastic when you say, nothing really has changed since then.
- Grue3 8y agoI'm saying this regarding my architecture. If I started again, I'd probably use the same technologies. And, I mean, everyone else is recommending Django and Ruby on Rails which are even older so why would you pick on my comment specifically?
- paultopia 8y agoflask + heroku + flask-sqlalchemy to talk to the easy postgres heroku gives you
- Kimitri 8y agoI work at a Drupal shop so I'd probably just go with Drupal. Working with what you know is the fastest way to get stuff done. Drupal 8 is also quite a bit more elegant than the previous versions and the developer experience is pretty good nowadays.
- Andrenid 8y agoThe size of this discussion and the sheer number of different ways this can be done is mind boggling. I'm all for having choices and I'm glad we're beyond choosing between FrontPage, Dreamweaver, and Notepad, but no wonder new people to web development are so overwhelmed.
- h4kor 8y agoDjango on Heroku. Use Heroku CLI 'heroku local web' to run locally and push to production via git.
- DatabaseGuy42 8y agoMy answer is probably seen as unconventional on Hacker News, but keep an open mind and you'll be pleasantly surprised. I suggest you sign up for a free account at https://apex.oracle.com/ https://apex.oracle.com/ to try out Application Express (APEX). It's a free, web-based development tool for building modern, responsive and secure web applications. It's a mature product that has existed for around 18 years, and it has a long list of features, check out the list here: https://apex.oracle.com/en/platform/features/ https://apex.oracle.com/en/platform/features/ Since all these features are built in, you don't need to go shopping for the usual mix of libraries, build tools, external services, etc. For 95% of what you want to build, it's all there already as part of the framework. The best thing is that you can get started and be developing web applications within minutes on this platform, without writing a single line of code. Even though you start out with no code/low code, you can add as much code as you want and go to any complexity later. The framework doesn't stop you from going "full code". There's also a great, friendly and vibrant APEX community that shares experiences, develop plugins and tools, etc. See https://apex.oracle.com/en/community/community-resources/ https://apex.oracle.com/en/community/community-resources/ Also, if you are worried about vendor lockin (any more than AWS or Azure or Google or whatever "framework du jour" locks you in), it should be noted that you can download and use APEX for free on your own infrastructure (or a DigitalOcean droplet or whatever). Also, APEX can run on the Express Edition (XE) of Oracle, so you can build and deploy web apps without ever having to pay Oracle a single dollar.
- mirko22 8y agoOracle and free in same sentence is laughable to say the least, everything they touch turns into money grabing venture, and even if free now there is no guarantee it will be free tomorrow.
- DatabaseGuy42 8y agoThe fact remains that Oracle has not charged a dollar for APEX for the last 18 years and counting.
- always_good 8y agoFunny how Oracle marketing dept signed up to HN just to shill their APEX service. Didn't even bother to make it sound like a genuine HNer plugging their favorite tool.
- arsalanb 8y agoA year ago I would say Flask + Firebase, but now I have began to understand that that is the quickest way to build a web app FOR ME. The best tech stack is the one that gets the job done FOR YOU, in the least amount of time. If it takes me 4 weeks to learn some arbitrary <INSERT NOUN HERE>.js framework to then be able to do stuff "quickly" then it better cut down development time by atleast +4 weeks to be worth it. No doubt, some amount of Yak shaving is worth it for the future (when you already have acquired a skill and no longer need to spend time learning) but in a scenario where speed of dev is important, go for technologies that you know and are comfortable with (which differs from person to person) Only general piece of advice I would give is to use SaaS tools to do heavy lifting. Tools like Auth0, Firebase Cloud Functions and authorization, etc can save you quite a bit of time compared to the learning curve they come with. Not to mention these products have teams behind them who work round the clock to make them developer friendly, so if you can't understand and get them running quick enough then IMO the tool is flawed not the user.
- rutierut 8y ago- Vue.js You can embed the Vue js file in your page, add <script></script> and you're ready to get started, no limits every feature is available. Of course for anything other than the most simple stuff you'll want some structure in your app so I use vue-cli which sets up the basic stuff. - Cloud functions Can be as simple as writing one in your browser in the azure/GCP/AWS console and as "complex" as using for example the serverless framework to deploy. That's it!
- stanislavb 8y agoRuby on Rails. You can't beat its development productivity given that you need web app. In the end, as others have said, it will be whatever you know best.
- rosencrantz 8y agoGoogle appengine. Just push the button, more or less.
- rcarmo 8y agoI use my mini-Heroku PaaS (https://github.com/rcarmo/piku https://github.com/rcarmo/piku) and Redis/Postgres as a back-end
- shapiro92 8y ago.net core + vanilla js + azure + mssql (which is non visible if you stick to the framework) no need for FE framework unless you want a SPA. you can get free credits on azure and deploy via VS code/studio in a click.
- userSumo 8y agoi am interested in something like this, if i can ask a few questions, - is azure beginner friendly, for someone who has never done web app before? - how does azure pricing and support turn out compared to other services mentioned around here? - would it be easy as well to use PostgreSQL or some other database?
- asadjb 8y agoDjango web app deployed to Heroku is the fastest way I know of right now. Django because that's what I know best. I can code a basic CRUD app (which is basically 90% of all apps I have ever needed to build) in a few hours. Heroku because a simple procfile and push to a git remote is all that's needed to launch the application. I think the best piece of advice I would give is to use whatever you're most comfortable with. If you use a new technology that saves you 50% on deployment time, but adds days to the time you need for actual development because you are unfamiliar with it, is not worth it in my opinion. Deployment/setup takes maybe an hour or 2 for the kinds of basic app I think you're talking about. Development is easily days or weeks. Optimizing deployment over development is optimizing the wrong thing in my opinion.
- geekuillaume 8y agoI wrote a NodeJS API "Kickstarter" to create my REST API quick and deploy them to Kubernetes (or Docker) easily: https://github.com/geekuillaume/nodejs-api-kickstarter https://github.com/geekuillaume/nodejs-api-kickstarter. For the front-end, I use React-boilerlate: https://github.com/react-boilerplate/react-boilerplate https://github.com/react-boilerplate/react-boilerplate
- 21stio 8y agojust learn docker and kubernetes, it just takes a couple of udemy courses.. it will make everything sooo much easier
- goofballlogic 8y agoI try not to do this as I never bought into the idea of evolving a prototype into a production app. My first prototypes tend to be in create-react-app with session-storage (state dies with browser session). After that if the use case seems solid I choose the appropriate tech for the job
- goofballlogic 8y agoI try not to do this as I never bought into the idea of evolving a prototype into a production app. My first prototypes tend to be in create-react-app with session-storage (state dies with browser session). I publish this as entirely static content on Amazon S3 (via CloudFront). After that if the use case seems solid I choose the appropriate tech for the job
- xstartup 8y agoAs someone who operates a consultancy which has deployed more than 5000+ web apps in the last quarter alone. We exclusively use AWS Lambda, DynamoDB or if the app is complex, we use Amazon RDS. For search - AWS Elasticsearch Our preferred stack is Go + VueJS. WHY GO? It's much easier for our senior developers to ramp up a team of 10 developers on Go than say Python or Ruby. Suprinsgly, we have a few guys who are Go experts, they unblock all other developers when it comes to best practices or some weird bugs. WHY VUEJS? It's has been a lot easier for us to introduce this to our frontend developers than any other thing. WHY NOT RAILS? We found it difficult to make SPA apps in Rails and ramp period for developers is much higher than Go + Vuejs. WHY NOT PYTHON? I loved Flask but we really need Type checking, we are not able to sleep without it. And Go has enough of what we need. Yes, we've briefly experimented with Haskell, OCaml, Scala etc.... but way difficult for new devs. WHY NOT JAVASCRIPT BACKEND? We found it much easier to write backend code in Go. IDE/DEBUGGER I am a pro-VIM user myself but it's so refreshing and fun to watch new developers speed up on Gogland IDE and the debugger makes developing in Go much easier. This is something only old languages like Java or C# has. It's way more difficult for new developers to pick up Java or C# in our experience. They've way more features which our developers found confusing. So, Go stayed everything else was thrown out including Haskell. VUE CLI We use https://github.com/vuejs/vue-cli https://github.com/vuejs/vue-cli No it does not require deep knowledge of webpack. There are just a few guys on our team who knows webpack/vuejs/javascript inside out in extensive details, rest of the developers simply use their custom designed/documented template and it satisfies 100% of our frontend needs. They unblock everyone on our team if any developer gets stuck with webpack. DEVELOPERS ARE OUR BIGGEST COST Keep in mind, we do not have access to the best developers at the budget price. TRAINING We give new developers as much help and training as they need. Our developers can call the pro guys anytime (even on weekends) and our senior developers love the respect/rewards they get in return. COST AppEngine costs $30 a pop, for 90% apps which receive less than 100 hits a day, it's expensive. This is where Lambda wins. CI Multi-tenant CI is still a pain in 2018. Current workflow with Gitlab sucks. We wish we could have a simple file in our repo and make 1 curl call to run the CI without any initial setup. But it will eventually happen. PAYMENT PROCESSING If the SaaS product needs multiple payment methods like Stripe, Braintree, PayPal Bitcoins, Ethereum, Wire Transfer we use http://killbill.io/ http://killbill.io/ which is multi-tenant, opensource and self-hosted. Previously, we were using WHMCS, Amember pro, and Chargify but it ended up costing way more and was a lot more fragile at the end, completely failing monkey wrench test and our new developers found it much harder to wrap their head around 3 different products. A customer has to simply enter their API credentials for the respective gateway (Stripe or PayBear or BitPay) and we integrate it in minutes. BIGDATA If we need complex large aggregation, we haul in Athena or BigQuery. Our developers prefer BigQuery but Athena is sometimes cheaper in the long run and makes it way easier to import/partition your big data. STREAM PROCESSING If we need anomaly detection or preprocessing of statistics we use Kinesis streams. Because of this setup, we primary run on an army of bootcamp graduates and we are able to provide really cheap service to non-profits and other companies who are not able to afford even a dedicated freelancer. FORGET VALUE, WE WANT TO BE CHEAP "Cheap" is a wrong word to use as a marketer/sales guy. But yea, since I am now in technical position, so I remove sales guy hate and wear tech hat, making our creation as cheap, robust and secure as possible while still satisfying the requirements. WHERE IS THE FUN We drive our major profits from AdTech business (which involves stressful high tech stuff but it's lot more fun) and consultancy is just to validate our solutions across a large number of our portfolio customers. We've to ensure, their setup is as cheap, robust and secure as possible. IMPROVEMENTS As I want to improve my strategies and methods as much as possible, feel free to challenge my choice. It should not just work for 1 developer but an army of developers and it should make it trivial to add more developers.
- honzajde 8y agoYesterday I setup my blog on Hugo. Very happy with that. Hugo is written in go but you only need to write markdown and deal with single config file. I managed to find theme that supprts overlay for images and various other options for images. Simplicity is the name of the theme. There are also themes with ready up forms, might be enough for your particular scenario.
- kangaroodingo 8y agometeorJS(https://www.meteor.com/ https://www.meteor.com/) seems to be one of the easiest framework you can use for building a web app quickly and pretty straightforward to deploy so you dont spend too much time is learning/setup etc...
- Blackstone4 8y agoNot sure if there is a much quicker way than using a solid monolithic such as Django or Ruby on Rails. I'm used to React.js and TypeScript/GraphQL server on the backend. I would use Netlify to quickly deploy React.js and Apex Up to deploy the server to AWS Lambda. Apex Up doesn't really use AWS Lambda in the normal way. It will create a reverse proxy and each AWS Lambda function is like a mini server a la Heroku.
- wbillingsley 8y agoPlay for Scala
- kowdermeister 8y agoFor me, the fastest way to prototype is Glitch.com. - It's instantly deployed - Supports GIT - Automatic npm installs when editing package.json - You can access your virtual environment in an browser CLI
- callekabo 8y agoNot having a server at all is the easiest. I run my front ends on S3 / CloudFront. Backend is run on Lambdas, with state stored in DynamoDB/SimpleDB (can't wait for serverless Aurora though!). create-react-app and aws-amplify gets you really far in a hurry. I then normally use react-redux, @redux-offline/redux-offline, react-router-dom, and flow-bin. Examples: - https://gitlab.com/kabo/synchronize-swatches https://gitlab.com/kabo/synchronize-swatches - https://gitlab.com/kabo/hydrant-map https://gitlab.com/kabo/hydrant-map - https://gitlab.com/kabo/cryptodo https://gitlab.com/kabo/cryptodo For more backendy stuff I use serverless to manage lambdas. Easy as :)
- swyx 8y agoas a frontend dev new to this stuff - how do you keep your lambdas secure? literally anyone can see your secrets? I'm gonna go through your code, thanks for sharing, just wanted to ask in case you have a big picture insight about how serverless auth/security is best done. this stuff freaks me out because i know nothing about it.
- callekabo 8y agoI'm afraid I don't follow. What secrets are you referring to? Secrets in the code running on the lambda can't be seen by anyone. If you mean secrets to invoke the lambda I usually have lambdas be completely open (no auth required) or have users log in with cognito and use aws-sdk invoke the lambda, which takes care of auth for me.
- mooreds 8y agoThis might be of interest as well, since many web apps (but certainly not all) are CRUD apps: https://news.ycombinator.com/item?id=16508965 https://news.ycombinator.com/item?id=16508965
- sbhn 8y agoIf I’m doing static html, even with minimal javascript perhaps even making an Ajax call client side, I am happy to use github pages or gitlab pages. See here a 2 min video setting up a static html website with gitlab pages. https://youtu.be/kvZ9teaA5zI https://youtu.be/kvZ9teaA5zI
- mmargerum 8y agoVue + Vuetify + go
- faitswulff 8y agoPure JS and GitHub Pages. Dead simple deploy, static pages, no dependencies other than browser compatibility. The web is fun and easy again.
- janklimo 8y agoRails app started from a solid template deployed to Heroku takes minutes. This is what we use for all projects: https://github.com/lockstep/rails_new https://github.com/lockstep/rails_new
- diehunde 8y agoWhy not using something already stacked like google App Engine? You can choose the language and not worry about the deployment. Or AWS Elastic Beanstalk? Same thing. Everyone here seems to be posting their favorite stack when the question is about simplicity and quick iterations. I mean, my favorite stack would be a rails app running on docker and that would take me 1 hr to setup but only because I've done it dozens of times. If I didn't know how to configure an easy sync pipeline, I would go with the solutions I mentioned before. They both have wizards to guide the process the first time and you have a clear view of the costs.
- Manintheb0x 8y agoOUTSYSTEMS.COM No need to thank me.
- tim333 8y agoI once wrote to them to ask the cost. >12 Months Committed Agreement at £15,000 for 150,000 Software Units and 100 active users Seemed steep for 100 users.
- Manintheb0x 8y agoOutsystems PAAS www.outsystems.com
- golergka 8y agoRust + Diesel + Tokio.io + Postgres. I don't do web frontend (just apps and bots), and this stack took a LOT of time to get used to, but now I enjoy full static typing, perfect ORM-ish abstraction level (Diesel is kind of unique in that regard), built-in integration testing so it's compatible with SQL migrations and functions in Postgres and pretty good perfomance.
- Dowwie 8y agoCould you elaborate on what you mean by built-in integration testing? I am using Rust now, full time, and can't wait for better testing support. There are RFCs to do just this. However, the current built-in testing situation leaves much for improvement.
- golergka 8y agoOh, I should've worded it better. It turns out it's pretty easy to set up Diesel to test your application code together with setting up a lock Postgres database. I had to put it up myself, but overall I just copied the approach Diesel uses for it's own integration test: have a test subproject and set up the database in it's custom compilation script. https://github.com/diesel-rs/diesel/tree/master/diesel_tests https://github.com/diesel-rs/diesel/tree/master/diesel_tests Now, every time I alter application code and/or SQL migrations, I immediately test them together automatically.
- CamTin 8y agodjango-rest-framework + Bootstrap + plain JS frontend (not necessarily SPA-style, but can be) I presume that some of the fancier new frontend options would be an easier way to consume a vanilla RESTy backend. Doing things this was also has the benefit that I can just hire somebody to write me a new frontend, since that's not really my forte.
- chrischattin 8y agoRails still wins hands down when it comes to speed of development. I don't think anything else even comes close.
- harel 8y agoFor anything above basic level: Python/Django for backend, React front end. Really basic (dynamic) stuff: Python/Django, straight up HTML/CSS Static - Html/CSS with a sprinkle of vanilla Javascript.
- sAbakumoff 8y agoAs always jQuery HTML and CSS will quickly set up everything
- dvfjsdhgfv 8y agoQuickly? Laravel Voyager. You can set up a functional app with several tables and relations between them and different access levels for different users - all this without one line of code (I'm not counting the artisan commands here). It's the shortcut of shortcuts.
- ahallock 8y agoApex Up, Express.js, and DynamoDB for the API, and then React for the front-end
- ericintheloft2 8y agoRails. Nothing comes close for me in terms of speed of development.
- sunstone 8y agoI also use Django and Postgres. For deployment (keeping things in sync) I use Git :) Set up your bare repository at say /root/myapp in your cloud server then clone this to your local dev area. Then clone it again to your cloud server django directories say /web/myapp . Finally git ignore you settings.py file so it can be different in each server. This can actually scale up to reasonably sized prod/test/dev/local_dev cloud server setup by using appropriate branches though I know the traditionalists would be squirming in their seats.
- cdnsteve 8y agoAfter reading most of the comments im really suprised to see folks still using vm servers and managing the stack themselves. Seems like high enough overhead. I know cost is on peoples minds so why not serverless? Haven't seen anyone mention aws lambda or gcp cloud functions. You get a massive free tier , like 2 million requests and free db... Anyone doing this?
- swyx 8y agoyeah i feel like im so disconnected. there's literally one comment about aws lambdas, and a couple about firebase but pple still go "oh its so expensive" when in reality their stuff will almost never bust the free tier
- tomtimtall 8y agoPythonanywhere and flask, with git used to deploy. Fairly simple and I have not hit any performances or scale issues for any of the minor app apps I have made.
- bengrunfeld 8y agoWebpack Express React on top of Google App Engine. I call it Rexpack - https://github.com/bengrunfeld/rexpack https://github.com/bengrunfeld/rexpack
- jcpst 8y agozeit.co 's "now". So simple, no cost to get started.
- cosbgn 8y agoBulma.io, MLab, flask, nuxt and zappa.io and netlify for deployment.
- sebringj 8y agoGatsbyJS with Netlify has auto deploy with git. I have not had an easier way to combine all the things I need for web as React is just bad ass, GatsbyJS has no webpack setup, Netlify combines hosting and deployment together and in a team if you need and it has cloud functions. I'm sorry if this sounds like a commercial for Netlify as I have no connection but I really like how it snaps together so easily.
- o1lab 8y agoDeriving an application using the best of frameworks - I believe is still very arduous. Yes, [ROR, Django,..] have helped but they kind of have been stagnant in their ease of deriving an app for many years. Hence I am using a home-brewed stack on Express (Node.jS) + Nuxt (Vue.js) + MySql + Google App Engine. This is based on Xmysql - which is absolutely a zero configuration way to derive REST APIs. Xmysql : https://github.com/o1lab/xmysql/ https://github.com/o1lab/xmysql/ I plan to make internal framework open source in coming few months. It has built in features of regular frameworks + Authentication + Authorization + ACL + Payments (Stripe) + Microservice (google-cloud functions) + Pubsub (background jobs)..
- cdcarter 8y agoHeroku and Heroku Addons are freely available at my company, so it’s the preferred deployment target. I work on a developer productivity team so being able to stamp out apps fast is one of our most important requirements. Heroku has given us a ton of flexibility, and with that we’ve been able to become very opinionated and standardize on one stack. 12 factor design patterns (and the opinions of Django-cookiecutter) allowed us to stop arguing about how to do something and just get it done. We use GitHub for source control and Heroku Pipelines for CI and testing. Every push runs functional tests, every PR spins up a “review app” with full dependencies and test data. Heroku Postgres is our system of record database. Postgres is stable, fast, and full featured. With jsonb fields we’re able to store complex structured build log data and quickly aggregate on it. Heroku Data Clips are super useful for quick reviews of the data without building a report into an app. Heroku Redis and S3 are the only other data stores. S3 stores build results and end user assets, and Redis handles anything in memory. We use Brandur’s transactionally drained job queue pattern (https://brandur.org/job-drain https://brandur.org/job-drain) to defer tasks. The apps currently all render to plain ol HTML and for the most part take a document centric approach to front end. Additionally, our apps are all API first and we use CoreAPI to create CLI clients automatically. Those are usually our administration tools which help make sure we are API complete.
- vkeenan 8y agoI'll chime in on the pro-CI discussion and leave the language discussions to "what's the best front end lang" posts. I just got done revamping my decade-old PHP experience to full OO, and really upped productivity with the Slim framework to build a REST API for our app. I'm using Salesforce platform as the database backend, which is slow but I encapsulate all the business logic there. That's all cool, but, it didn't seem like I was hitting the mainstream of productivity. Long story short, I'm on the Google/TypeScript/Material/Node bandwagon now. The dev environment is easy, and there's a wide choice of Node deployment platforms. I believe we can get the kind of deployment productivity we want with using a CI pipeline based on Github or Bitbucket that squirts commits to Google App Engine.
- jimnotgym 8y agoI'm experimenting with Anvil[0] at the moment. It's a bit like a web version of Delphi or Visual Basic. You build everything in Python. The front end stuff gets compiled to JavaScript. You can publish your app in a click. There is a built in database service, authentication and integrations with Google docs. It has a lot of potential. [0]:https://anvil.works https://anvil.works
- hnrodey 8y agoAnvil is pretty sweet and had a well reviewed Show HN post a few months ago. Price is a little steep unless you plan to get serious, quickly.
- jimnotgym 8y agoI don't disagree, but do bear in mind 1) not everyone is a start-up. Established businesses also hand to put up web apps 2) you can use it for free with some limitations 3) Some other cloud services can work out quite expensive defending on your use case. Vs a Linode bare metal server, yes it is pricey, vs Heroku maybe less so?
- jhowell 8y agoFor me, I dig Spring Boot and Elastic Beanstalk. It's just: mvn install; eb deploy
- jaequery 8y agofastest for me is just plain Sinatra and postgres. this is the gold standard of simplicity imo. and hosting for me is taken care of with Docker and an instance on Digitalocean. deployment is literally rsync and docker-compose up.
- rurban 8y agoDancer in perl or Sinatra in Ruby. No DB, either a simple hash with proper locking or plain text files.
- CyanLite2 8y agoThe “new” Microsoft stack is incredibly productive. For $0 and less than 15 minutes I can spin up an ASP.NET Core app with Angular 6 with a free private git repo in VSTS. CI/CD fully setup to deploy to a free Azure App Service, for a few extra bucks per month I get deployment slots to separate out my dev/test/prod deployments. LetsEncrypt for SSL. Another $5 a month I get a fully managed SQL database that connects with my built in ASP.NET Core Identity to manage user logins, forgot passwords, etc. Auto-Healing, SSL, Backups, Geo-replication, AutoScale, DNS, CI/CD, cross platform IDEs, and feature/bug tracking are all included. So if my app gets hot I just pay more money to allow it to scale up and nothing else on my stack has to change. All this in 15-30 minutes from my MacBook without fooling around with docker files, virtual machines, or Kubernetes.
- jgzomo 8y agoWeDeploy.
- jgzomo 8y agoWeDeploy is less well known but offers a great (and growing) near-SaaS for building and deploying fully-featured web apps quickly. Surprising utility and my personal choice. I recommend checking it out and giving it a shot. Plus, the team there is responsive and always ready to listen to and meet user needs. Anyone else tried WeDeploy?
- d_burfoot 8y agoReading this thread is making me want to write a blog post titled "Technology Fragmentation is Making Us Stupid and Wrecking Our Careers". Every hour a developer spends learning a new language/stack/framework hotness is an hour that could be better spent studying something real, like mathematics, CS fundamentals, or UI design.
- finaliteration 8y agoI used to chase the latest framework/language/hype machine and realized I was spending way too much time just playing catch up (this was especially the case with JavaScript/Coffeescript/Livescript/TypeScript...). Now I’ve firmly put myself into focusing on one or two languages and learning them well, even as the “newest kid on the block” comes around that claims to want to replace every back-end language under the sun. It’s allowed me to focus on things like design patterns, integration development, and learning about infrastructure and good architecture principles, which I feel have added a lot more value than listing fifteen different “hot” skills on my resumé or whatever. I’m also a lot happier not having constant development information overload. I get that keeping up with trends is a good thing to do, but sometimes you need to just ignore the chaos going on and plant yourself in one ecosystem for awhile just to take a breather.
- megasquid 8y agoDocker, Django, Caddy, Postgres, Digital Ocean. Absolutely LOVE Django cookiecutter.
- ljm 8y agoIt tends to depend on what I'm setting up but these days I've shifted from Heroku onto services like now.sh and Netlify (not to discount Heroku as a viable option here) when I just need to get something online, quick and dirty. There's less commitment which is ideal because you're not going to know the full requirements for your app until you've begun to flesh it out more, so you can buy yourself some time to figure that out as you go along (e.g. what happens if you go for microservices?). That said, never mind 2018...there are a whole load of joys (and horrors) that fresh devs these days won't ever really understand the same way because nothing like Docker or Heroku existed even just a decade ago. You know, paying £3 a month for a shared hosting plan with 100MB disk space, and PHP4, phpmysql, Apache at your disposal. Downloading FileZilla and deploying by dragging and dropping the new folder into the client, making sure to overwrite. Debugging by using the same client to edit files and add logging in production. Having to write htaccess rewrite rules for 'pretty' URLs that any developer today will think is just default behaviour for a web framework. Having to use SVN and CVS, if using version control at all... It's not like you can't still do any of this, it's just that dragging `index.php` into an FTP client isn't the default advice for deploying a simple site any more. For better and for worse.
- stnmtn 8y agoI just started at a new job where using filezilla to drag and drop changes is what has been done... It was previously one other dev working on it and after a week of there being me and him there were already a couple of major conflicts that happened. I set up git on the server so at least now we can do "git pull" like a real web company I don't know how you guys did it 10 years ago, I couldn't even last 2 weeks with that system
- victords 8y agoI've been getting into serverless computing for a few months now, and it's been a pretty good experience, and generally hassle free. The only downside I saw was learning a bit of cloud formation to automatize the stack creation. But I guess if you want a quick prototype/deploy you might as well do it manually and learn it later. I really recommend you to take a look at AWS's serverless products: https://aws.amazon.com/serverless/ https://aws.amazon.com/serverless/
- rbongers 8y agoFor every language, every framework, people are going to have their own favourite ways to actually make sites fast. I'll say though, surge.sh is the fastest way to get up static sites and zeit is the fastest way to get up webservers. One command to deploy without any configuration and you're done.
- halis 8y agoExpress + React + Redux
- paulmendoza 8y agoBubble.is - I can code all the languages needed to code my own site but Bubble made my latest project (sigparser.com) way quicker to develop than if I had tried to use one of the existing frameworks. If it was a really large project Bubble might not be what I use but for something smallish needing users and calling some APIs it was great. I wrote this about my experience. https://medium.com/@mendoza.paul/sigparser-creation-story-bubble-is-net-core-aws-lambda-api-gateway-1667213bf0cb https://medium.com/@mendoza.paul/sigparser-creation-story-bu...
- powerslacker 8y agoAppEngine + Go + Gin.
- nikdaheratik 8y agoFor me, it's Laravel + Git(hub) + Bootstrap/AdminLTE/Whatever frontend. But I already know this stack and I already have a server setup that can just let me fork a new app into one of the subdirectories or subdomains. If you want something public facing, there are only so many corners you can cut as being pwned is much more embarassing than having a prototype crash and burn during a demo. Frameworks are good in that they let you make something fast + powerful without having to worry about alot of the details once it is setup. The problem is you have to tackle the learning curve for the setup. Finding something with good documentation is the best way to handle this even if it takes more work to learn than you want to spend on a "throwaway" project.
- pkphilip 8y agoThe Crystal-language based Amber Framework (https://amberframework.org/ https://amberframework.org/) is a good framework to use if you want to ramp up a web application with a backend database and a full MVC stack in next to no time. It also helps that it is an extremely fast framework. https://github.com/tbrand/which_is_the_fastest https://github.com/tbrand/which_is_the_fastest Other frameworks like router.cr, Raze etc are faster performing, but getting started with a db middleware etc will take a bit longer.
- deadcoder0904 8y agoIf its just frontend web app, then Create React App (or React + Parcel) If it is a complete web app, then Create React App (or React + Parcel) + AWS AppSync
- luord 8y agoGitlab-ci and Google app engine works for me as far as deployment goes. I won't discuss language/stack because the fastest there is "whatever you're used to."
- ejjpi 8y agoI'm surprised noone mentioned ASP.NET yet. With Visual Studio Code + .NET Core you have a completely free environment/framework that can run web applications on both Linux and Windows in minutes.
- GFischer 8y agoI'm a .NET fan but there's still some friction. There's Azure free tier to be sure, but I'm not sure about the backend - CosmosDB?.
- brillout 8y agoOn the framework side: If you need an ORM and you don't need any interactive views then Django is a good choice. (Interactive views are views that are stateful in the browser: an interactive graph, an interactive table, a To-Do list, etc.) If you need interactive views then you'll have much easier time using a React+Node.js framework such as Next.js (https://github.com/zeit/next.js https://github.com/zeit/next.js) or Reframe (https://github.com/reframejs/reframe https://github.com/reframejs/reframe). And if you need an ORM you can use one of the many Node.js ORM such as https://github.com/typeorm/typeorm https://github.com/typeorm/typeorm If your site is static then go for a static site generator such as https://github.com/nozzle/react-static https://github.com/nozzle/react-static. ("Static sites" are webapps/websites that are HTML-static: The HTML doesn't need to be dynamically generated at request-time but is static, no server is required, and your app can be statically served.). Disclaimer: I'm Reframe's author.
- coreymaass 8y agoI build many of my web app prototypes on WordPress. I give a talk about it: https://wordpress.tv/2017/06/05/corey-maass-rapid-web-app-development-on-wordpress/ https://wordpress.tv/2017/06/05/corey-maass-rapid-web-app-de... I had another idea last Thursday and had a prototype completed by the end of the weekend. WordPress takes care of ORM, routing, user management, admin and most of the features every web app requires. This leaves you to develop the actual unique selling proposition.
- tomasulo 8y agocreate-react-app and netlify.
- petraeus 8y agoDigital Ocean, Laravel 5.6, Bootstrap 4, and git you can have a working site up in 2 hours.
- AngeloAnolin 8y agoThis is what I use when I want to prototype something really quick. VueJS Surge.sh Firebase (if there's a need to store data) I think I already have a pretty established workflow when starting things up, due to numerous stuff I have built previously. Hence, the process of doing things multiple times (and making some tweaks to along the way) seems to make it really fast and straightforward. My take is that just do repetitively what you feel comfortable at and at some point, you will reach a level where everything feels so easy and natural.
- eibrahim 8y agoemberjs + rails, I even built a starter template that can get a SAAS app up and running quickly and I built hyperlogs.com with it. ember and rails are SUPER optimized for rapid development. You don't have to spend the next 3 weeks configuring a React app so it builds right :) . Not to mention the next time you do it, it will be different :).
- sharno 8y agoI was mostly using with React and firebase for fast prototyping. Then I started using more of Flow to have some type safety. But overtime I started looking for a stronger type system that would allow me to experiment and build stuff easily. I feel like I started getting good enough with Purescript to build stuff fast, couldn't have the time yet to build a big thing to compare how fast my work flow is compared to react. But I'm sure that I spend far less time debugging in Purescript than react, and bugs are mostly logical bugs that could be prevented with better types structure and testing with Quickcheck
- sharno 8y agoI'd like to hear though from someone who's using F#, asp core with fable for example and know how the productivity is and the maturity of libraries.
- ciocan42 8y agoNext.js + Prisma graphql
- zaro 8y agoFeathersjs + React or Angular deployment with Docker which makes is easy to go Kubernetes if things scale up.
- premrajnarkhede 8y agoFlask(python) + SQLAlchemy(Any relational db) + Angular/React
- meain 8y agoThe simplest way that I find to get an webapp running is by using [parcel](https://github.com/parcel-bundler/parcel https://github.com/parcel-bundler/parcel) for bundling the frontend and using a python [flask](http://flask.pocoo.org/ http://flask.pocoo.org/) server for backend. I don't think it could get any simpler than this. Now if I have a database, I usually go with mongodb along with pymongo.
- tiangolo 8y agoI created a project generator to solve that for my use cases: https://github.com/tiangolo/full-stack https://github.com/tiangolo/full-stack It allows me (and the teams I work with) to go from clean Linux to web app 5 - 10 min while keeping best practices and allowing the system to scale. It's all based on Docker and Docker in Swarm mode clusters (setup included in docs) Backend with Python Flask Interactive docs with Swagger/OpenAPI HTTPS automatic handling with Let's encrypt handled by Traefik Asynchronous tasks with Celery Front end with a modern SPA (Angular, React, Vue) Relational DB with Postgres, although I'm also using a modified version with CouchDB (I'll create a project generator with that later) CI/CD intergraded And more stuff...