HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
EGreg
Platform
JavaScript2015–2016
EGreg / Platform

Platform

Free, open-source community platform, decentralized alternative to Big Tech. For apps that empower people and unite communities.

3Distinct people
6Mentions
0Explicit recommenders
0GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Free, open-source community platform, decentralized alternative to Big Tech. For apps that empower people and unite communities.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month6 dated mentions

Observed mentions: 2015-02-16 22:57:59 UTC to 2016-02-15 09:14:35 UTC.

01232015-02-01 00:00:00 UTC to 2015-03-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsFeb 20152015-03-01 00:00:00 UTC to 2015-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-04-01 00:00:00 UTC to 2015-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-05-01 00:00:00 UTC to 2015-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-06-01 00:00:00 UTC to 2015-07-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2015-07-01 00:00:00 UTC to 2015-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-08-01 00:00:00 UTC to 2015-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsAug 20152015-09-01 00:00:00 UTC to 2015-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-10-01 00:00:00 UTC to 2015-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-11-01 00:00:00 UTC to 2015-12-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2015-12-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2016-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-02-01 00:00:00 UTC to 2016-03-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 commentsFeb 2016

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Feb 20152015-02-01 00:00:00 UTC2015-03-01 00:00:00 UTC110
Mar 20152015-03-01 00:00:00 UTC2015-04-01 00:00:00 UTC000
Apr 20152015-04-01 00:00:00 UTC2015-05-01 00:00:00 UTC000
May 20152015-05-01 00:00:00 UTC2015-06-01 00:00:00 UTC000
Jun 20152015-06-01 00:00:00 UTC2015-07-01 00:00:00 UTC101
Jul 20152015-07-01 00:00:00 UTC2015-08-01 00:00:00 UTC000
Aug 20152015-08-01 00:00:00 UTC2015-09-01 00:00:00 UTC000
Sep 20152015-09-01 00:00:00 UTC2015-10-01 00:00:00 UTC000
Oct 20152015-10-01 00:00:00 UTC2015-11-01 00:00:00 UTC000
Nov 20152015-11-01 00:00:00 UTC2015-12-01 00:00:00 UTC101
Dec 20152015-12-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
Jan 20162016-01-01 00:00:00 UTC2016-02-01 00:00:00 UTC000
Feb 20162016-02-01 00:00:00 UTC2016-03-01 00:00:00 UTC303

What Hacker News says

6 sources
I can give you some feedback since I tend to write a lot of PHP. Mostly, code style is about consistency. You can have infinite arguments about whether opening braces should go on the same line as the operator/function, but at the end of the day as long as you stay consistent it doesn't really matter. Here are some consistency issues I found. Your function declarations put the opening brace on the following line, but flow controls open on the same lines. Ex: https://github.com/EGreg/Platform/blob/master/platform/plugi... In the same vein, commenting seems inconsistent - this file's docblock opens with /* */ style comments, but then you switch to // style. Ex: https://github.com/EGreg/Platform/blob/master/platform/Q.php... Further down, you use two styles of if(), one with braces and one without, right next to each other: https://github.co
Read the rest
m/EGreg/Platform/blob/master/platform/Q.php... I much prefer 2 space indents to tabs. To me, it's much more readable. I noticed your HTML output is also tabbed, which (arguably) needlessly increases the horizontal width you need to see a page of code, especially with modern deeply-nested structures. Overall the project looks well thought out, and you may have valid reasons for any/all of the above. Just throwing in my initial reactions as a project outsider. Also, dunno if you know about PSR, but here it's a good starting point that many people (potential contributors) are familiar with: http://www.php-fig.org/psr/psr-2/
In I no longer understand my PhD dissertation
I am curious, how would you assess the readability of my code: http://github.com/EGreg/Platform I kind of developed that style organically as I went along, in both PHP and JS. I tried to make the output readable as well. I've seen many frameworks output a bunch of gibberish, but with today's bandwidth it's not such a big deal to add a little bit of whitespace and make everything readable. Here's a fairly complex application, you can view the source of any page: http://qbixstaging.com/Groups/
In I no longer understand my PhD dissertation
At Qbix (our company) we believe that there will be a platform for social apps the way that Wordpress is for blogs. We just recently met with a VC who was impressed with our platform pitch, saying he hasn't seen something large in our space that's open source yet. Slack specifically came up as something that Andreessen Horowitz made a big bet on. I'm not going to say much (unless someone asks) except that: * It's open source and on GitHub (http://github.com/EGreg/Platform) * It is designed to put control back in people's and communities' hands. It should be installed by communities, or they can choose us to host, like wordpress.com does * Each community can release its own client app, BUT you can also have client apps which provide a seamless experience ACROSS communities and let you do identity + connect with friends + get notifications
Read the rest
across communities! * This was not easy to build. It took us over four years. We started before Diaspora* and we built an open platform on which app developers can build apps which communities can install, and which can aggregate social experiences across communities. The apps can be ANY social apps and the platform takes care of all the underlying details, including app versioning, user identities, "finding your friends" in each new community, registration/password stuff, email / mobile notifications, native app integration and caching, and much more.
In Please don't use Slack for FOSS projects
I've spent the last four years building a platform for reusable components, which "just work" across all devices, and across domains. So I've had to deal with reusability to the extreme: * Installer and versioning across apps and plugins * Common file system and conventions * Common event system with automatic unregistering of events * Common system handling user accounts/contacts/security/etc. * Common system for handling data/access/realtime updates/offline notifications. Let me tell you, REAL interoperability is hard. It goes without saying that everything is namespaced. But then you have to build a robust system which marries components to the Web's best practices, which are based around resources. For example you have web "pages" which you can just drop "tools" (components) on. For these tools to "just work" while being reusable, the
Read the rest
system has to literally have a way of swapping their stylesheets and scripts in and out on demand. Then it has to provide all the events to hook into and machinery for "activating" these tools: * Events for constructing parents before children * Events for initializing parents after children * Async loading on demand of all scripts/stylesheets as fast as possible * Compiling and minifying everything into a couple filesfor production * Support for versioning and storing some (most) of the code in local bundles for downloaded PhoneGap apps And then you still get questions such as "how does a Streams/related tool interoperate with a Q/tabs tool on the SAME ELEMENT, so I can combine the behaviors and have a bunch of tabs that represent articles related to a particular topic?" The tabs are supposed to "just work" and the "related" tool is supposed to "just work". So when it comes to CSS, a few years ago I just went with the straightforward approach: You call Q.addStylesheet(...) and it "just works". It adds your stylesheet when your tool is loaded and then removes it when it's not needed. Each class and id is supposed to be prefixed by the namespace of the plugin bundle you're distributing. Each tool would have classes that are prefixed with that tool's name. Naturally, you avoid ids in the actual plugin, but each tool has an id which the app can use to style things. You can take a look at the result here: https://github.com/EGreg/Platform/blob/master/platform/plugi... https://github.com/EGreg/Platform/blob/master/platform/plugi... https://github.com/EGreg/Platform/blob/master/platform/plugi... https://github.com/EGreg/Platform/blob/master/platform/plugi... And the corresponding JS modules: https://github.com/EGreg/Platform/tree/master/platform/plugi... https://github.com/EGreg/Platform/tree/master/platform/plugi... Here is an example of a Streams/related tool integrating with a Q/tabs tool: https://github.com/EGreg/Platform/blob/master/platform/plugi... So that's a proven style I would recommend.
In Interoperable CSS

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.