In this tutorial, Dave walks through how to build a Hacker News clone using Bubble

First take a screenshot to get to colors we need:

And lets create a simple logo in Sketch

You can add the colors as a base inside of Bubble so you can easily use the colors inside the widgets

Btw (not needed for this app but a general tip) if you set this settings to 8 you images will be looking much more clear (general settings)

Lets setup the /index page

Set up your main group and give it the right colors In responsive add this rule

Add a header with your logo and links init should look something like this

Let the destination blank for now we’ll link them later

Add the links in one group and the logo so it will also look good on mobile

Add comments and news to the data News is going to be the main content

Now add a repeating group and design it like hacker news with the data ‘news’ and for now the source just search for all news

Create a blank page called /login

And add these workflow to the upvote icon in your main repeating group

Add this hiding rule to the icon

Add this plugin

Add the element inside the cell

Add this text to the cell. We’re later going to edit this to link to the comments etc

Should look something like this

Go to your login page and add the reusable login / sign up pop up and modify it so it also has a username field

You can add some rules for the username if you want them to be unique

On your login page create a workflow when page is loading to show the pop up. Make sure you tick the box that users can’t close using ESC

Make sure to change the login & sign up workflows that you add the username. Also add this in the sign up & login workflow

Create a new page: /submit and clone it from the /index page Create input fields that look this this:

Add these rules to the different fields

Create a new ‘news’ on submit

And add it to the current user

Change the status if title contains ‘show mn’

You can do the same with ask and other things if you want to easily categorise them

Create a new page cloning it from /index called /single-news (we’ll build this later)

Final step in the ’submit’ workflow:

Create this workflow to /single-news

Now we can build the single-post app and make it look like the /item on hacker news

Create a normal group with all the info from the /single-news ‘current news’ and bellow a repeating group with the comments from that single news.

When current user isn’t logged in when the comment button gets click create a custom workflow called login and send the user to the page /login if logged in then go on with the workflow and create the comment for that news

And add the comment to the ‘news’

Rules for the top line for the repeating group comments:

Now that we kind of build the single-news page go to the index page and change the second line of text into:

[url=website home URLsingle-news?n=currentcell’s News’s unique id] this will send the current news to the /single-news page

You can now create different copies from the /index page and change the ‘data source’ e.g. status = Show mn

And fill in the links in the menu

Create a page called profile and clone it from one of the previous pages so you have the same styles

For the about you can use auto-binding to update automatically and for the

[update] button you can use this workflow to update the email:

Add these rules to all repeating groups containing news - that will remove the () when there is no URL

When you click on a news item that has an URL open an external link like this:

You could add ‘web’ to the news items by adding this text:

It will automatically search on google with the title

Add a new page called ‘comments’ and clone it from single-page

Remove the top part and change the data source of the repeating comments group :

Also delete the workflows that fire if the ‘single news’ is empty

Change the top line to:

So it will show for which news item the comment was and will take you to the single news item

BONUS!

If you want to automatically add content to your Hacker news clone you can download the RSS plugin

Create an API workflow:

Create data inside your ‘news’ that’s called ‘rss item HN’ form the type ‘get feed rss channel item….’

Then take the info you need from the random rss item and fill the news item

Go to your index page and add this workflow to add a new news item every time someone loads the page

Change the text in your repeating groups to:

So it looks like it’s posted by the newsbot..

Something wrong?
Want to contribute to Makerpad? Learn more.
What's your story?  Tell us how you use no-code