Avatar of Josh Dzielak

Josh Dzielak

Co-Founder & CTO at Orbit
Co-Founder & CTO at Orbit·

Shortly after I joined Algolia as a developer advocate, I knew I wanted to establish a place for the community to congregate and share their projects, questions and advice. There are a ton of platforms out there that can be used to host communities, and they tend to fall into two categories - real-time sync (like chat) and async (like forums). Because the community was already large, I felt that a chat platform like Discord or Gitter might be overwhelming and opted for a forum-like solution instead (which would also create content that's searchable from Google).

I looked at paid, closed-source options like AnswerHub and ForumBee and old-school solutions like phpBB and vBulletin, but none seemed to offer the power, flexibility and developer-friendliness of Discourse. Discourse is open source, written in Rails with Ember.js on the front-end. That made me confident I could modify it to meet our exact needs. Discourse's own forum is very active which made me confident I could get help if I needed it.

It took about a month to get Discourse up-and-running and make authentication tied to algolia.com via the SSO plugin. Adding additional plugins for moderation or look-and-feel customization was fairly straightforward, and I even created a plugin to make the forum content searchable with Algolia. To stay on top of answering questions and moderation, we used the Discourse API to publish new messages into our Slack. All-in-all I would say we were happy with Discourse - the only caveat would be that it's very helpful to have technical knowledge as well as Rails knowledge in order to get the most out of it.

READ MORE
19 upvotes·2 comments·428.7K views
Yonas Beshawred
Yonas Beshawred
·
September 13th 2018 at 6:50PM

I've used the Algolia Discourse site, it's really slick! We're seeing more and more developer tools companies adopt Discourse (New Relic, Atom/GitHub, etc). As a user, the UI is lightyears ahead of other forums and for a company like Algolia that has such an active community, it seems like a great way to bring all of that activity into one place. Being able to have this huge repository of knowledge is a huge win for anyone implementing Algolia.

Where did you guys decide to host it and why? I remember reading something about how Discourse requires a lot of memory so just curious about what it takes to host it- particularly as the community grows.

·
Reply
Josh Dzielak
Josh Dzielak
·
September 13th 2018 at 8:28PM

We hosted the Discourse instance on a DigitalOcean droplet with 4GB of RAM and 2 vCPUs, costing just $20/month. That amount of RAM let the processes grow comfortably at our workload, which was light at the beginning in terms of users and posts. We did create some custom Docker containers to run the Discourse process in so that we could do rebuilds and deploys without any downtime for maintenance. Another option for us would have been to let the team at Discourse host it - they have plans that start around $100/month, though it gets more expensive if you need things like advanced plugins. Still, time is money and not having to self-host would have let us move faster on a few other things.

·
Reply
Co-Founder & CTO at Orbit·
Recommends
on
AlgoliaAlgolia

Hi Rana, good question! From my Firebase experience, 3 million records is not too big at all, as long as the cost is within reason for you. With Firebase you will be able to access the data from anywhere, including an android app, and implement fine-grained security with JSON rules. The real-time-ness works perfectly. As a fully managed database, Firebase really takes care of everything. The only thing to watch out for is if you need complex query patterns - Firestore (also in the Firebase family) can be a better fit there.

To answer question 2: the right answer will depend on what's most important to you. Algolia is like Firebase is that it is fully-managed, very easy to set up, and has great SDKs for Android. Algolia is really a full-stack search solution in this case, and it is easy to connect with your Firebase data. Bear in mind that Algolia does cost money, so you'll want to make sure the cost is okay for you, but you will save a lot of engineering time and never have to worry about scale. The search-as-you-type performance with Algolia is flawless, as that is a primary aspect of its design. Elasticsearch can store tons of data and has all the flexibility, is hosted for cheap by many cloud services, and has many users. If you haven't done a lot with search before, the learning curve is higher than Algolia for getting the results ranked properly, and there is another learning curve if you want to do the DevOps part yourself. Both are very good platforms for search, Algolia shines when buliding your app is the most important and you don't want to spend many engineering hours, Elasticsearch shines when you have a lot of data and don't mind learning how to run and optimize it.

READ MORE
8 upvotes·277.8K views
Co-Founder & CTO at Orbit·
Shared insights
on
JekyllJekyllHugoHugo

Earlier this year, I migrated my personal website (dzello.com) from Jekyll to Hugo. My goal with the migration was to make the development environment as pleasant as possible and to make it really easy to add new types of content. For example, I knew I wanted to add a consulting page and some portfolio-style pages to show off talks I had given and projects I had worked on.

I had heard about how fast Hugo was, so I tried it out with my content after using a simple migration tool. The results were impressive - the startup and rebuild times were in milliseconds, making the process of iterating on content or design less cumbersome. Then I started to see how I could use Hugo to create new page types and was very impressed by the flexibility of the content model. It took me a few days to really understand where content should go with Hugo, but then I felt very confident that I could create many different types of pages - even multiple blogs if I wanted - using a consistent syntax and with full control of the layouts and the URLs.

After about 6 months, I've been very happy with the results of the migration. The dev environment is light and fast and I feel at ease adding new pages and sections to the site.

READ MORE
5 upvotes·493.6K views
Co-Founder & CTO at Orbit·

As a side project, I was building a note taking app that needed to synchronize between the client and the server so that it would work offline. At first I used Firebase to store the data on the server and wrote my own code to cache Firebase data in local storage and synchronize it. This was brittle and not performant. I figured that someone else must have solved this in a better way so I went looking for a better solution.

I needed a tool where I could write the data once and it would write to client and server, and when clients came back on line they would automatically catch the client up. I also needed conflict resolution. I was thrilled to discover Pouchdb and its server-side counterpart CouchDB. Together, they met nearly all of my requirements and were very easy to implement - I was able to remove a ton of custom code and have found the synchronization to be very robust. Pouchdb 7 has improved mobile support too, so I can run the app on iOS or Android browsers.

My Couchdb instance is actually a Cloudant instance running on IBM Bluemix. For my fairly low level of API usage, it's been totally free, and it has a decent GUI for managing users and replications.

READ MORE
5 upvotes·150.9K views
Co-Founder & CTO at Orbit·
Recommends
on
PostgreSQLPostgreSQL

I'll second another piece of advice. Postgresql's JSON columns are a dream when it comes to productivity and I use them frequently with our Rails application. In these cases, no migration is required to change schema. We store payloads with dozens or hundreds of keys and performance has not been an issue. We also have a lot of relational tables, so the joins we get with SQL are very important to us and hard to replicate with a NoQL solution.

READ MORE
4 upvotes·845.1K views
Co-Founder & CTO at Orbit·
Shared insights
on
NetlifyNetlifyHugoHugo

We chose Hugo to build our new company's site - developermode.com - along with Bulma as the UI framework and ace templates instead of HTML (haml/jade/pug-like syntax). We're using Hugo's asset pipeline to compile the Bulma sass, which makes it easy to customize at build time. The combination of ace templates and sass makes our markup and CSS very lean, and it's truly amazing how fast Hugo builds assets, basically instant for our size. The site is hosted on Netlify.

READ MORE
DeveloperMode (developermode.com)
3 upvotes·20.9K views