The dev.to tech stack

Ben Halpern on August 09, 2017

Here's our stack: Open Source Ruby on Rails Mostly VanillaJS with PreactJs for some components Postgres (hosted on Heroku) ... [Read Full]
markdown guide
 

A few questions:

  • what do you use Algorithmia for?
  • any thoughts on Timber vs Papertrail? I see you don't use any of the logging addons on Heroku

Didn't know about Skylight, I'll check it out.

ps. you should submit the stack to Stackshare.io :-)

 

Algorithmia's a convenience service we can reach for when we need a pure function to process some data. Can be used to easily run some ML on a block of text, perhaps to pull out keywords. One simple use case is to determine the "background color" of a post's cover image before it loads. It's nice to have it be based on the palette of the incoming image. I looked for a Ruby gem to do this, couldn't find one that worked well, so plugged in an Algorithmia function and it worked like a charm.

We know the founders of Timber and like it in concept. It's pretty new but I think it makes logging just a bit more powerful.

Big fan of Skylight so far. And @vaidehijoshi works on it so it must be good. 😊

 

@rhymes You should definitely check out Skylight if you're looking for accessible performance monitoring tools on a Rails app. We also have a free 30-day trial, so you can always try it out and see how it works for you. And we're always around to help you in case you have any issues getting set up!

@ben 💞

Thank you! I'll definitely check it out in the following days.

We've been using NewRelic but sometimes I feel like I don't have the finger on the pulse, so to speak.

 

Glad to hear we're being of service @ben ! We pride ourselves in being an easy drop-in way to add language- and framework-agnostic machine learning to any app, and love to hear about uses like this :-)

BTW we just published a new post about SyntaxNet -- way more advanced than just keyword extraction, thought you might find it useful: blog.algorithmia.com/advanced-gram...

Keep rockin' it!

 

Thanks for the reply, very interesting!

I will check them out in the following days!

 

I always think about RoR as of something big and overloaded (currently writing a blog engine on Ruby with Sinatra+GraphQL). Since you're using RoR for the site, could you tell me if that's true or not?

 

For whatever reason, Rails really "fits my brain", which is one of DHH's talking points. I think it's great for building when you know your needs are going to fit generally established web patterns (CRUD, index and show views, etc.) but you don't know exactly what you need. It's really easily to quickly build out a wing on the application when you need it. It's not the "soundest software" per se, in that it's basically built around lots of tight coupling (we call them conventions 😊)

So I'd say it works for us and I wouldn't poo poo it based on reputation, but if it isn't the kind of environment you like to work in, don't force it. So much of software development is psychological.

 

What about the performance? Is it hard to create a GraphQL endpoint (e.g. mysite.loc/graphql, using graphql gem) with RoR?

I think it's pretty easy to build a GraphQL endpoint. We built one pretty quickly for a project and it went pretty smoothly. I think your mileage might vary on performance in this regard but I wouldn't think Rails itself is the bottleneck. If you put GraphQL in front of, say Postgres, you might be creating some query inefficiencies in the form of some leaky abstractions. This could be dealt with through some caching but you wouldn't get it for free. I would think if GraphQL was layered on top of a different type of DB, it would be more efficient. But I don't know the nitty gritty of this.

Ruby's bad for concurrency and generally running lots of code, but in this case, the query is going to be the bottleneck and I think that would be language/framework agnostic.

Thanks for your answers! I think I'll give RoR a try for my next project.

 

Why do you say so much of software development is psychological?. Really interested in that statement.

 

I love that this is RoR!! I love the look and feel of Dev.to!

 

Thanks so much! It's a Rails app, but we make really good use of our CDN for edge caching, so most requests are handled without even hitting our servers. Configuring this in Rails has been really quite easy because of how well things can just plug in with 90% of the work already built out.

 
 
 

Hi @ben , I have a few questions.
Is your frontend template based (Embedded Ruby and alike), a single page application (React or such) or a server-side rendered SPA?

 

Do you use some caching for sql requests? Or everything is hitting sql db?

 

I saw yesterday when I wrote a blog-post that you guys use S3 as storage for attachment uploads. Do you have any software that either scrubs or prevents malicious files from being uploaded?

 

Images are processed and served by the Cloudinary CDN. S3 is only for storing and passing on to the CDN, not serving to users.

 
 

i'm interested to build a SaaS like getstream. for now i want to build for notification system. is dev.to notification system use getstream?

 

how do you handle the user feeds? it's pretty fast...
are you only using getstream.io for handling that?

thanks...

 
 

Why heroku?
Much cheaper is to get some random vps, isn't it?

 

Love that the stack is so simple.

Check out what Built With reveals about you: builtwith.com/dev.to

code of conduct - report abuse