Giter VIP home page Giter VIP logo

blogengine.net's Introduction


BlogEngine is an open source blogging platform since 2007.
Easily customizable. Many free built-in Themes, Widgets, and Plugins.


Get Started

  1. Requirements You need a Windows Hosting that supports ASP.NET 4.5 and above.

  2. Download Get the latest BlogEngine and extract the zip file on the root of your website.

  3. Write Permissions Add write permissions to the App_Data and Custom folders on your server.

  4. Done Navigate to admin panel by adding /admin/ to your website's URL. For example: https://yourwebsite.com/admin/
    Username: admin
    Password: admin


Development

Environment:

  • Visual Studio
  • ASP.NET 4.5+

Steps:

  • Clone repository
  • Open solution in Visual Studio 2015 +
  • Build and run solution to load website in the browser
  • You can navigate to administration on: http://localhost:64079/admin/
  • Username: admin Password admin

Security Update

After install, update machineKey in Web.config with values generated with tool like this. This will prevent known exploit (reported Sep 2019). This only effects if you use default admin account.

Copyright and License

Code released under the MS-RL License. Docs released under Creative Commons.
Copyright 2007–2023 BlogEngine

blogengine.net's People

Contributors

aaronhoffman avatar boltomli avatar dependabot[bot] avatar farzindev avatar francishub avatar geonewlitho avatar hannakfoo avatar irbishop avatar jmalarcon avatar ltholen avatar mainmind83 avatar markmcavoy avatar netwer avatar rfennell avatar rxtur avatar serdnab avatar thorarin avatar tree-chtsec avatar vladekk avatar yw80 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blogengine.net's Issues

Newsletter

In Newsletter/widget.cshtml

should be changed to

Various

My username is 'Göran' and because of the swedish character I couldn't create new post, loading profile and probably more. I solved it by adding Html.Raw around Security.CurrentUser.Identity.Name in
admin\themes\standard\layout.cshtml:

var UserVars = { Name: '@Html.Raw(@Security.CurrentUser.Identity.Name)', IsAdmin: '@Security.IsAdministrator', Rights: ['@Html.Raw(userRights)'] };

After submitting the Contact page the page didn't render correctly (most visible if you have an image in your header), so I changed in BlogEngine.Core\Web\HttpModules\CompressionModule.cs:
Method: ContextPostReleaseRequestState
change

if (context.CurrentHandler is Page && context.Request["HTTP_X_MICROSOFTAJAX"] == null && context.Request.HttpMethod == "GET")

to

if (context.CurrentHandler is Page && context.Request["HTTP_X_MICROSOFTAJAX"] == null && (context.Request.HttpMethod == "GET" || context.Request.HttpMethod == "POST"))

Cannot read property 'OptionValue' of undefined

I read of a similar closed issue (related to SQL Server and $scope.settings.FacebookLanguage option being null. I am using BE after that release.

BE Version: 3.2.0.3.

When I attempt to save a post I am getting the following:

Cannot read property 'OptionValue' of undefined

TypeError: Cannot read property 'OptionValue' of undefined
at y.t.save (wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1)
at wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1
at u (wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1)
at y.$eval (wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1)
at y.$apply (wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1)
at HTMLAnchorElement. (wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1)
at HTMLAnchorElement.i.event.dispatch (wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1)
at HTMLAnchorElement.a.handle (wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1)(anonymous function) @ wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1(anonymous function) @ wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1y.$apply @ wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1(anonymous function) @ wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1i.event.dispatch @ wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1a.handle @ wysiwyg?v=GVduPfY5tyIFglWNPtdPkna-dC_JxfW2kMSgqxcIH1g1:1

Just to add. This only happens when saving posts, when saving pages there is no error. I attempted to work through posteditorController.js but do not see the issue.

Standard theme - Categorylist

In the new standard theme the 'Show RSS icon' setting doesn't work in the Category list widget.
To sole it I did the following:

in App_Code/Controls/CategoryList.cs, the BindCategories method
in 'if (this.ShowRssIcon) { ... }' either exchange the content or add (to keep compability with other themes):
li.Attributes["class"] = "rss";

in styles.css
change .categorylist ul li a:first-child:before { font-family: 'fontello'; content: '\e814'; color: #f28115; margin-right: 10px; }
to .categorylist ul li.rss a:first-child:before { font-family: 'fontello'; content: '\e814'; color: #f28115; margin-right: 10px; }
(.rss added to the li selector)

Newsletter

In Newsletter/widget.cshtml
<div class="widget recentcomments">
should be changed to
<div class="widget newsletter">

multi blog enabling

After someone hacked my blog (3.1.1) it stopped working. Now I try to make a new blog (3.2) but I use multi (2) blogs. However in the the latest blog version I can not find the way to use multi blog again.

How to switch on multi blog or is it just gone?

Thanks in advance for any tips!

Categories not persisting correctly when added from Post screen.

Potentially relevant background:

SQL Server persistance
MultiBlog

Steps to reproduce

  1. Go into admin
  2. Click content, posts
  3. Click existing post
  4. Click + in the RIGHT hand menu for categories
  5. Add a category

Result

This category will not be in the database.
Attempting to delete this category will fail.
Attempting to save this post with this category will work but toast an error
Refreshing the app pool will result in the category disappearing.

Expected Result

It should persist in the same way that it does when you add a category via the LEFT menu under Content / Categories

Lack of validation on category information

I believe the default length of a category description is 200 characters in the DB provider. If this is exceeded then it is not handled by either the UI or the business objects.

This results in an error being logged, but a confirmation notification is displayed to the user indicating a success. The new longer description is also used in the cached version of the categories giving a false impression that the save was successful.

I can imagine this problem is present over a number of objects and properties.

No data provider for MySQL

Downloaded the solution and built it, tried to add mysql but get errors there is no data provider for mysql. I downloaded the Nuget packages and rebuilt and the same error is there.

GalaxyBlog - not working

BE 3.2 Repo cloned today:
Steps to reproduce:
Go to Admin > Custom > Themes > Download GalaxyBlog > View Blog.

Parser Error

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Unknown server tag 'blog:SearchBox'.

Source Error:
Line 81: blog:SearchBox ID="SearchBox1" runat="Server"

Source File: /Custom/Themes/GalaxyBlog/site.master Line: 81

Using MSSQL many administration menus are missing

The "Users" section and all sub sections do not appear.
The Advanced Section does not appear under settings.

I want to enable users to register to comment. Was this removed because I can't find this option on either the SQL or XML admin panels.

be_xml_adminpanel
be_sql_adminpanel

Import RSS from BE2.9 to BE3.2 failing

Hello,

I am trying to import RSS feed from my blog (BE v2.9) to BE v3.2. But, it is failing with error - "The request failed with HTTP status 404: Not found". I used click-one importer to achieve the import task. In the Source information, I provided my blog information (hosted) and BE v3.2 was hosted in my local machine which is provided as Destination information. I hope, this is the right way to do it.

be_v32_import_error

When I tried validating Destination information, I got blog validation error.

be_v32_import_error_2

Though the import failed, I noticed one very surprising thing. All my draft post become published automatically (which I have to delete manually!). I still wonder, how did that happened?

I also tried importing blogML to BE v3.2 but the effect was same.

Please note, I haven't done any manual edits to the blog. Am I doing the import functionality in it's recommended way? Any help will be appreciated.
Thanks.

Blog posts only show up to logged in users after the first one

Not sure how this happened, but it was unfortunately my reason for going away from Blog Engine, but when I'd make a post and click publish, I could clearly see that the post went through, though only when logged in, and it was not curated via RSS distribution services. Wonder how that happened. It seems to have occurred after messing with the time offset, which, I'd never fully understood in the first place.

Issue in DashboardController

I created a user and put it into the Editor role which is authorized to view dash dashboard by default. But when I tried to access the dashboard, error getting stats is showed.
I tried this again with visual studio debugger attached and found out the problem. In DashboardController.cs, line 14, the code is checking rights for viewing admin settings page, but not dashboard.

Dashboard Posts When Click does nothing

When I click on Posts in dashboard it does nothing.

When click on Comments and Pages those work.

Seems like Posts is not yet hooked up yet :)

Just FYI.

I am testing BE locally, have Elmah with JSlogger install to catch every error.

Will be reporting what ever I find :)

Error when using mysql config

Server Error in '/' Application.
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

Line 6:      var profile = AuthorProfile.GetProfile(name);
Line 7:  
Line 8:      var src = profile.PhotoUrl;
Line 9:      if (string.IsNullOrEmpty(src))
Line 10:     {

Source File: z:\owncloud\MyDocs\Documents\Visual Studio\BlogEngine.NET-master\BlogEngine\BlogEngine.NET\admin\themes\standard\sidebar.cshtml Line: 8
[NullReferenceException: Object reference not set to an instance of an object.]
ASP._Page_admin_themes_standard_sidebar_cshtml.Execute() in z:\owncloud\MyDocs\Documents\Visual Studio\BlogEngine.NET-master\BlogEngine\BlogEngine.NET\admin\themes\standard\sidebar.cshtml:8
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +198
System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable1 executors) +69 System.Web.WebPages.WebPage.ExecutePageHierarchy() +131 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +90 System.Web.WebPages.<>c__DisplayClass3.<RenderPageCore>b__2(TextWriter writer) +233 System.Web.WebPages.HelperResult.WriteTo(TextWriter writer) +10 System.Web.WebPages.WebPageBase.Write(HelperResult result) +80 ASP._Page_admin_themes_standard_layout_cshtml.Execute() in z:\owncloud\MyDocs\Documents\Visual Studio\BlogEngine.NET-master\BlogEngine\BlogEngine.NET\admin\themes\standard\layout.cshtml:58 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +198 System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable1 executors) +69
System.Web.WebPages.WebPage.ExecutePageHierarchy() +131
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +90
System.Web.WebPages.<>c__DisplayClass3.b__2(TextWriter writer) +233
System.Web.WebPages.HelperResult.WriteTo(TextWriter writer) +10
System.Web.WebPages.WebPageBase.Write(HelperResult result) +80
System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action`1 body) +63
System.Web.WebPages.WebPageBase.PopContext() +237
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +98
System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext) +116

Themes Gallery

Downloading an older theme to the gallery after activating it I was unable to deactivate it, delete or restart the solution

Duplicate User

Hi,

Currently it is possible to add duplicate users but when you do, the Users page will no longer render.

I added this database constraint:

ALTER TABLE dbo.be_Users
ADD CONSTRAINT uniqueBlogUserName UNIQUE (BlogID, UserName)

...Roy

RSS feeds not displaying correctly when not logged into the blog (single user, single blog configuration)

Hi all,
Not sure whether this is my fault or not, but I evidently don't know how to set up RSS feeds correctly in the latest release of Blog Engine (the default URL only seems to display correctly for logged in users (for non logged in members, just displays a page full of XML)). What is the correct URL? And also, how does one set it up for multiple categories? If I wanted to allow people to only subscribe to a particular category, for instance. Thanks.

Lack of authentication for save profile API

For versions prior to to the coming version, I think at least later than version 3.1, the API for saving profiles lacks of authentication.
The uri of this API is /api/users/saveprofile/item.

Direct result for this problem is an author's profile can be updated anonymously without a credential.
Many BlogEngine instances had been hacked because of this problem. They were injected with a code segment with an intend to add a new admin user on next current admin's login.
See the search results: https://www.google.com.hk/search?q=82hv7gdwjxgqw3

Some BlogEngine instances use themes which do not encode profile properly when showing lists or posts, so on those sites, visitors will get login windows due to UnAuthorized injected requests. Other instances are more lucky—they only get ugly encoded injected HTML fragments.

A recent commit fixed this problem. But the new version is still not released yet.
f63d9c8#diff-b13678340f14127c10bd06d6c385a0faR154

Thank @rxtur for the fix, and expecting next version.

A problem in search.aspx

I opened the search page, typed something in the input box, and pressed enter, but I am redirected to the same page, just like I pressed F5. I tried clicking the search button instead of pressing enter, then everything works fine.

Metaweblog API: Editing a post but not including a date resets the post time back to DateTime.MinValue

As topic. The MetaWeblog API resets the post time to DateTime.MinValue on editing unless the post time is specified in the posted XML. Creating a post via the API without specifying a date behaves correctly and sets the post date to DateTime.Now. The expected behaviour is that when the date is not set on the Edit call, the post date is not changed. This is currently different to other Metaweblog clients, including DasBlog/Wordpress etc.

Users Menu not found in admin

Hello I installed blogengine but when I logged in as Admin I never found the "USERS" menu in left side.
What is this issue?

Standard theme - Blogroll

In the blogroll the Rss icon is added to the items for each blogroll as well.
To solve this I in styles.css changed
.blogroll ul li a:first-child:before { font-family: 'fontello'; content: '\e814'; color: #f28115; margin-right: 10px; }
to

blogroll > ul > li > a:first-child:before { font-family: 'fontello'; content: '\e814'; color: #f28115; margin-right: 10px; }

Duplicate Widgets

I created a theme with a widget for the desktop and mobile menu (responsive @ media CSS).
Inside the admin panel they're duplicated (same ZoneName).

Adding a widget to WidgetZone1 will affect both (as expected)...

To fix this, maybe add this line to WidgetsVM.cs:
if (WidgetZones.Exists(x => x.Id == zone.Id)) continue;
right after foreach (XmlNode node in widgets.ChildNodes)

I would create a pull request, but my forked repo is 4 commits ahead and I donno how to create a PR for a single commit ...

Found an issue about time zone

When trying to create a post, the Post.DateCreate property is set to the local time, but when saving it to the database, BlogSettings.ToUtc uses the server side time zone. There is also some similar problems in other parts of the project.
I think some time conversion should be added between server side code and client side code. Maybe adding them to the api controllers is a good idea.
Sorry for my bad English.

Contact page doen't work

In 'contact.js' BlogEngine.$('<%=txtName.ClientId %>') seems to return null. I can't figure out how to solve it.

pros and cons for Add Date to Post Links?

Hi All,

Hope it is ok to ask questions here, this is not an "issue" per se. If there is a different place I should post questions please let me know.

What I'm wondering about is what is the current consensus/wisdom about post dates in urls? The default is to not use them and I wonder is that the recommended way. When setting up a new blog I think one needs to make a decision about that early and stick with the decision later because the urls should not change.

I can see how shorter urls can be cleaner and in some cases the date of the post is not important whereas in others it might be such as in technology review posts where you might want it to be clear years later that the review is of old devices.
The other potential benefit I see with dates in the url is if the urls could be hackable so that /posts/year would show the list of posts for the year and /posts/year/month would show a lists of posts from the given year and month. When I enable dates it doesn't seem that they are hackable urls, I just get a 404 if I remove parts of the url. Is this not possible in BlogEngine.NET? has the idea of hackable urls gone out of style?

Thanks for any advice, wisdom or guidance.

Joe

Advanced option not available under settings

Hi,

Advanced option is not visible directly under settings menu. But, is available only when we make manual edit to the URL (by replacing admin/#/settings/basic with admin/#/settings/advanced). Is that purposefully made hidden?

Thanks.

Multiple jQuery versions

There appears to be a few different version of jQuery referenced within the BlogEngine.NET project. Here are a list of the files from git ls-files *jquery*

BlogEngine.NET/Scripts/Auto/01-jquery-1.9.1.min.js
BlogEngine.NET/Scripts/Auto/02-jquery.cookie.js
BlogEngine.NET/Scripts/Auto/04-jquery-jtemplates.js
.
BlogEngine.NET/Scripts/jQuery/01-jquery-1.9.1.min.js
BlogEngine.NET/Scripts/jQuery/02-jquery.cookie.js
BlogEngine.NET/Scripts/jQuery/03-jquery.validate.min.js
BlogEngine.NET/Scripts/jQuery/04-jquery-jtemplates.js
.
BlogEngine.NET/Scripts/jquery-2.1.4.intellisense.js
BlogEngine.NET/Scripts/jquery-2.1.4.js
BlogEngine.NET/Scripts/jquery-2.1.4.min.js
BlogEngine.NET/Scripts/jquery-2.1.4.min.map
.
BlogEngine.NET/Scripts/jquery-jtemplates.js
BlogEngine.NET/Scripts/jquery-jtemplates.min.js
BlogEngine.NET/Scripts/jquery.cookie.js
BlogEngine.NET/Scripts/jquery.form.js
BlogEngine.NET/Scripts/jquery.validate-vsdoc.js
BlogEngine.NET/Scripts/jquery.validate.js
BlogEngine.NET/Scripts/jquery.validate.min.js
.
BlogEngine.NET/admin/editors/bootstrap-wysiwyg/jquery.hotkeys.js
BlogEngine.NET/setup/upgrade/jquery-2.0.3.min.js

I am using a custom front page ~/FrontPage.aspx and I can't find a reference to jQuery within the source of that page or in the site.master that I'm using within my theme, but it appears that references to the BlogEngine.NET/Scripts/Auto/* versions are added to the page somehow.

I've added a second custom page ~/about.aspx and these references do not appear on that page.

The only other seemingly relevant places that I found jQuery references within the project are within the /AppCode/App_Start/BlogEngineConfig.cs class (here and here, but I can't find references to those script bundles anywhere.

How and/or Why is the BlogEngine.NET/Scripts/Auto/* version of jQuery being added to my FrontPage?

PreCompile Error!

Hi there.

Where is App_Code.Controls.WidgetContainer?

When I tried to compile BE.NET (with pricompilation enabled option), asp.net compiler has reported some errors about Widget in all WidgetContainer.ascx in custom\theme\ subfolders.

Error CS0103 The name 'Widget' does not exist in the current context

Please do precompilation and fix all issue, or guide me to fix them.

Regards.

[3.2.0.3] Contact form JS error

The contact page of the latest version of BE is throwing a script error:

Uncaught TypeError: Cannot read property 'value' of null: beginSendMessage  @   contact.js:14

The issue is caused by asp tags being used in a JS file and not processed server-side.

JS served:

function beginSendMessage() {
    if (BlogEngine.$('<%=txtAttachment.ClientID %>') && BlogEngine.$('<%=txtAttachment.ClientID %>').value.length > 0)
        return true;

    if (!Page_ClientValidate('contact'))
        return false;

    var recaptchaResponseField = document.getElementById('recaptcha_response_field');
    var recaptchaResponse = recaptchaResponseField ? recaptchaResponseField.value : "";

    var recaptchaChallengeField = document.getElementById('recaptcha_challenge_field');
    var recaptchaChallenge = recaptchaChallengeField ? recaptchaChallengeField.value : "";

    var name = BlogEngine.$('<%=txtName.ClientID %>').value;
    var email = BlogEngine.$('<%=txtEmail.ClientID %>').value;
    var subject = BlogEngine.$('<%=txtSubject.ClientID %>').value;
    var message = BlogEngine.$('<%=txtMessage.ClientID %>').value;
    var sep = '-||-';
    var arg = name + sep + email + sep + subject + sep + message + sep + recaptchaResponse + sep + recaptchaChallenge;
    WebForm_DoCallback('__Page', arg, endSendMessage, 'contact', onSendError, false)

    BlogEngine.$('<%=btnSend.ClientID %>').disabled = true;

    return false;
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.