How Knowledge.sexy works, and what its future looks like.

Add components to your posts

Add a YouTube video, graph, quiz, gorilla bouncing on a trampoline, and more to your posts to improve their quality. Components are always being added, and anyone can make them.

Learn how to add components to a post

It's easy to add components to your posts

Watch the video to see it in action!

Try it now

What is this? Why would I post here?

For non-coders, you have access to tools you cannot use on any other social website. You can add interactive graphs, tables, create a quiz, cite sources, and more to your posts here. This allows for increased quality of content. Since anyone who has any coding ability can make components, the number of components will continually increase over time.

For coders, you can show off components/widgets you make by letting the average person utilize them. Sites with a similar functionality are exclusively for coders (codepen, jsbin, etc). This site isn't as much about sharing code with other coders, as it is actually providing useful tools for the average person. Making exciting things that the average person can use was the entire reason I learned web development from the beginning, and I suspect I'm not alone. If you want to make something exclusively for other coders to see, codepen is the place to go. If you ever want to make a small widget that non-coders can use, this is the place to go!

Make a component if you want users to have access to your widget when making a post (like this donut pie graph). Make a post with code to make a useful widget that people can use (like this scientific calculator).

Overview - a lot of text from here on out

Knowledge.sexy is in its early stages, and is currently in Beta to determine what issues users are experiencing, and what features are lacking.

Like any social media site, you can make posts on Knowledge.sexy. The difference is that you can add components to your posts, and you have the option of editing the HTML and JavaScript of both posts and components. Don't know how to code? No worries. You can add components made by others to your posts to increase their quality. Some of the components currently available are a donut pie graph, a bar graph, a sortable table, a quiz creator, a tool to cite sources, and more.

Another aspect of the site is that by default all posts and components may be edited by others. If you want to make a post that shouldn't be edited by others, add the tag "Blog", "Free Speech", "Opinion", or "Personal Post". The reason for allowing editing by default is that components, HTML, and JS can become outdated quickly. In many cases the content you write about may also become outdated. A huge part of this Beta testing is to determine whether or not the "edited by default" feature works, or if this should be switched so that posts cannot be edited by others unless a few tags have been added to them.

Over time others will improve your posts, and if you think of something later you can always improve it yourself. We will shape individual communities, and answer fundamental questions about the future of the site. Should tags have their own moderators? Should each post have only one tag? Is this just a slightly better BuzzFeed? If it comes to it I won't hesitate to take quizzes away.

When creating a post, feel free to create a new tag if you can't find one relevant to what you're posting. All posts are currently visible to everyone, so tags are almost decorative at this point.

As of now anyone can edit any post that hasn't been locked. In the future there may be an option for personal posts that only the original creator can edit.


Do I have to know HTML and/or JavaScript to post?

No! There is a formatting menu that allows you to easily format your content, and the `Add Component` feature was created with all types of users in mind. The most common issues you may come across are placing content on a new line, and spacing. Since the editor is an HTML editor, new lines are not treated as such when rendered, and multiple white space characters (spaces, tabs) are collapsed into one space. A new line may easily be created by either wrapping content in paragraph tags (by clicking the `` button), or by clicking the `<br />` button. `<br />` creates a new line. Customizing spacing is best done via css.

What are posts and components licensed under?

Posts are the property of Knowledge.sexy at this time. In the future this may change, but for now I don't have enough of an understanding of content licenses to do otherwise. The main issue would be accidentally using a license that would be hard or impossible to change later once the resources to make a good decision are available.

Components are MIT licensed . If templates are used in the future, they may fall under a different license.

Any added code that already has a license must have the license accompanying it at the top of the post or component.

How do I give feedback?

After logging in, you can give feedback by hovering over your username in the upper right hand corner, and selecting "Feedback" from the dropdown menu.

Who are you?

John Harding. I'm a developer living in NYC. I studied Accounting at the University of Miami, but had a passion for coding. My senior year of college I released a social network that accumulated a whopping 80 users. It surprisingly failed, but I realized I wanted to pursue development for my career. I took a dev job with Qualtrics in Utah, and then moved to NYC and worked for ShopKeep before leaving to work on this. I'm hoping for at least 100 users this time.

Features Recently Completed

  • Add table field type to components.
  • Allow import of csvs, tsvs, etc for tables when adding components.
  • Personal posts - allow users to create posts that no one else can edit (now the default).
  • Sign up with Google and Facebook.
  • Commenting on posts.

Features Under Consideration

  • Preview of post on home page so you don't have to click in.
  • API for components (to allow for functionality like saving an image from an element, setting the default image, etc.).
  • NSFW option for posts.
  • Moderators for categories.
  • Markdown support for component details.
  • Autogenerated related posts links.
  • Guided tour when first creating posts and components.
  • Forking components.
  • Ability to update components to newer versions in posts.
  • Trending components page.
  • Templates - users would have the option to switch from the code editor to a template when making a post. After switching, users would essentially see a large component that they would fill out instead of a textarea. This would allow for the creation of multiple instances of the same item (quizzes, etc).
  • View and restore previous versions of posts and components.
  • Ability to subscribe to tags. Since there are so few tags and posts at this time, this feature could restrict growth. Posts in all tags appear in your feed for now.
  • Allow custom sizing of editor.
  • Sign up with Twitter and GitHub accounts.
  • Commenting on components.

Features for Coders Under Consideration

  • Transpiling with Babel.
  • Have components automatically prepend variables and function names with component id if not already done (with Babel plugin).
  • Update components' versions in posts without having to reenter data.
  • Fix text editor issues (irregular tabbing, easily slows, support for ES6+ syntax highlighting).
  • Support for SCSS in the text editor.
  • Add an option to easily add a framework or library to a post or component.
  • Forking components and posts.
  • Use `import` to import components, and potentially NPM modules.

XSS Safety

Content is safe because it is run inside of sandboxed iframes, which limit the code that can be run. This means that malware cannot be run, and the content cannot access cookies, or any data on the knowledge.sexy domain. The iframe sandbox also disallows popups, form submission, and more. Components are not usable until they are approved.

Due to the iframe features that posts and components take advantage of, Knowledge.sexy is largely unusable on Internet Explorer because it doesn't support the `srcdoc` iframe attribute, among other security issues. Chrome, for comparison, began to support the `srcdoc` attribute in 2012. Users of the Edge browser may also experience issues and slow page loading. Classic IE and Edge move. Let's see if it works out for them.

Iframes are limited by our Content-Security-Policy. Objects, applets, and embeds are disabled (by the CSP, and attempts to disable them on the server side). At this time we only allow a short list of urls to be accessed via iframes. If you want support added for a site, send us feedback and it'll likely be added (hover over top right dropdown when logged in, and you'll see the feedback button). The supported sites are:

  • https://www.youtube.com/embed/
  • https://player.vimeo.com
  • https://*.twitter.com
  • https://*.soundcloud.com
  • https://*.facebook.com (has to do with including the 'share to facebook' button on posts)
  • https://www.instagram.com
  • https://imgur.com

Scripts are also limited by our Content-Security-Policy. Only scripts from the following domains are allowed:

  • https://unpkg.com (npm modules)
  • https://www.youtube.com
  • https://*.vimeo.com
  • https://*.soundcloud.com
  • https://*.twitter.com
  • https://www.instagram.com
  • https://*.imgur.com

Users on browsers that don't support CSPs will see a notice that can't be dismissed urging them to use a new browser.

If you find any issues please leave feedback (in the lower right hand corner).

Browser Vulnerabilities like Spectre and Meltdown, and infinte loops

Certain functions have been overwritten to mitigate the Spectre and Meltdown vulnerabilities (like performance.now()). Additionally, posts are checked within minutes to ensure code does not intend to harm others. In the future, HTML/JS editing of posts may be turned off by default if vulnerabilities become a viable issue that cannot be solved for. If done, it will not stop users from adding components to their posts since components are approved before they can be used, and the user-supplied data can be filtered to prevent injection.

Infinite loops, while disruptive, will not harm a user's computer. Methods are employed to stop certain obvious infinite loops from running, but purposefully written infinite loops are easy to add to posts. A user will not be able to use HTML and JS in their posts until they have 50 reputation (without approval on a per-post basis). This gives users an incentive to make good posts, as disruptive posts would terminate an account they put effort into.

© 2019 - Knowledge.sexy, LLCTermsPrivacy PolicyAbout