Coder Social home page Coder Social logo

wp-sync-db / wp-sync-db Goto Github PK

View Code? Open in Web Editor NEW

This project forked from deliciousbrains/wp-migrate-db

2.3K 113.0 385.0 1.17 MB

A WordPress plugin that lets you push, pull, and sync database tables between WordPress installations.

Home Page: https://wp-sync-db.github.io

License: GNU General Public License v2.0

CSS 10.48% JavaScript 31.47% PHP 57.98% Shell 0.06%

wp-sync-db's Introduction

WP Sync DB

WP Sync DB eliminates the manual work of migrating a WP database. Copy your db from one WP install to another with a single-click in your dashboard. Especially handy for syncing a local development database with a live site.

Looking for a Maintainer

I've moved away from PHP & WordPress work and don't have time to maintain this. If you're a talented PHP developer I'd be happy to give you this repo. Grab the latest code from delicious-brains, remove the license checking, branding, & other cruft, and open up a PR to show me your work.

Description

WP Sync DB exports your database as a MySQL data dump (much like phpMyAdmin), does a find and replace on URLs and file paths, then allows you to save it to your computer, or send it directly to another WordPress instance. It is perfect for developers who develop locally and need to move their WordPress site to a staging or production server.

Selective Sync

WP Sync DB lets you choose which DB tables are migrated. Have a huge analytics table you'd rather not send? Simply deselect it and it won't be synced.

Bi-directional Sync

Pull: Replace a Local DB with a Remote DB

If you have a test site setup locally but you need the latest data from the production server, just install WP Sync DB on both sites and you can pull the live database down, replacing your local database in just a few clicks.

Push: Replace a Remote DB with a Local DB

If you're developing a new feature for a site that's already live, you likely need to tweak your settings locally before deploying. Once you've perfected your configuration on your development machine, it's easy to send the settings to your production server. Just push to the server, replacing your remote database with your local one.

Database Export & Backup

Not only can WP Sync DB pull and push your DB: it can export your DB to an SQL file that you can save and backup wherever you want. No need to ssh into your machine or open up phpMyAdmin.

Encrypted Transfers

All data is sent over SSL to prevent your database from being read during the transfer. WP Sync DB also uses HMAC encryption to sign and verify every request. This ensures that all requests are coming from an authorized server and haven't been tampered with en route.

Automatic Find & Replace

When migrating a WordPress site, URLs in the content, widgets, menus, etc need to be updated to the new site's URL. Doing this manually is annoying, time consuming, and very error-prone. WP Sync DB does all of this for you.

Stress Tested on Massive Sites

Huge database? No prob. WP Sync DB has been tested with tables several GBs in size.

Detect Limitations Automatically

WP Sync DB checks both the remote and local servers to determine limitations and optimize for performance. For example, we detect the MySQL max_allowed_packet_size and adjust how much SQL we execute at a time.

Sync Media Libraries Between Installations

Using the optional WP Sync DB Media Files addon, you can have media files synced between installs too.

Installation

  1. Install github-updater by downloading the latest zip here. We rely on this plugin for updating WP Sync DB directly from this git repo.
  2. Install WP Sync DB by downloading the latest zip here. Both github-updater and WP Sync DB will now download their own updates automatically, so you will never need to go through that tedious zip downloading again.
  3. Access the WP Sync DB menu option under Tools.
  4. Install the optional WP Sync DB Media Files addon.

Help Videos

Feature Walkthrough

https://www.youtube.com/watch?v=u7jFkwwfeJc

A brief walkthrough of the WP Sync DB plugin showing all of the different options and explaining them.

Pulling Live Data Into Your Local Development Environment

http://www.youtube.com/watch?v=IFdHIpf6jjc

This screencast demonstrates how you can pull data from a remote, live WordPress install and update the data in your local development environment.

Pushing Local Development Data to a Staging Environment

http://www.youtube.com/watch?v=FjTzNqAlQE0

This screencast demonstrates how you can push a local WordPress database you've been using for development to a staging environment.

Media Files Addon Demo

http://www.youtube.com/watch?v=0aR8-jC2XXM

A short demo of how the Media Files addon allows you to sync up your WordPress Media Libraries.

Similar Tools

Isn't this the same as WP Migrate DB Pro?

No, of course not, don't be silly. I took out the license verification code, a really shady looking PressTrends reporter, and the tab for installing the Media Files addon before I published 1.4. Release 1.3 was the same as WP Migrate DB Pro, but I've made several improvements since then.

Is this Illegal?

No. Just because this is based on the paid-for WP Migrate DB Pro, it doesn't mean I can't release it. WP Migrate DB Pro is released under GPLv2, a copyleft license that guarantees my freedom (and the freedom of all users) to copy, distribute, and/or modify this software.

I was forced to rename it from "WP Migrate DB" to "WP Sync DB" after Delicious Brains decided to trademark the name "WP Migrate DB", filed a DMCA takedown against the repo, and threatened to take me to court. But they should be OK with it now.

wp-sync-db's People

Contributors

bradt avatar dseguy avatar etcook avatar ipmidev avatar jaredh159 avatar joshlevinson avatar notslang avatar zamoose 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

wp-sync-db's Issues

don't replace in custom tables

Hi,

it seems that the plugin doesn't do search/replace tasks in custom WordPress tables.
I tried to add somes custom simple search/replace filters but no effect on theses tables.

Any idea?

thanks

Syncing 2 WordPress installations

Don't know if this is the right place to post this,
I was just wondering if i can sync 2 user tables from 2 WordPress installs i.e
If a user registers on server A i want that record to be pushed to server B
and if a user registers on server B that record must be pushed to server A (Automatically preferably, like for instance running the script as a cron job every X-minutes or in response to the new user registering on the site)

I want a single registration system so that if a user registers on the main page he will effectively register for the community/documentation site as well both sites are stored on different servers.

Is this a dead project?

Is this being maintained with the current version of the source plugin, or is this an unmaintained version of an old release?

Error message after pushing from local to server

After a migration (including media files) I get this error:

Unable to connect to the remote server, please check the connection details - 500 Internal Server Error (#129 - scope: process_push_request)

However it appears that all the changes I've made locally got pushed anyways.

composer.json

I'd love to see a composer.json added to this repo so we could use it within a packagist or statis context.

I can do a PR if that'd be helpful.

updates and versions

Checking for updates using github-updater doesn't work, and when an outdated plugin is used with wp-sync-db, it doesn't show the warning.

I'd really like to get rid of the code for checking for outdated versions of the plugins either by abstracting it into another lib, or by just combining all the plugins. I don't like the idea of them all being put together in one giant lib, but PHP/WP sorta promotes that style :P

Import Backup File

It's nice to export to a file.. very useful before applying any changes.

But the plugin do not offer a way to import the sql files (do it?).

That would complete the DB migration workflow and make this plugin standalone in the DB area.

There was a problem with the AJAX request…

I'm stumped on a fix for this one. When I try pulling the db from my production server with this plugin, I do not have any issues, but when I try pulling the db from my staging server, I get the following error message:

"There was a problem with the AJAX request, we were expecting a serialized response, instead we received..."

I found this article, and the issue appears to be caused by PHP errors/notices are being included in the POST response that is sent back to the server. This would make sense, as I have PHP errors enabled on my staging server, but disabled/suppressed on my production server.

I've traced the error back to a function in the plugin that is throwing an error in a foreach loop. It appears that this loop expects an array, but it is not getting an array or a properly formatted array. So maybe there's a fix here? Or another idea would be to maybe devise a way to suppress PHP errors when the plugin runs a migration and then re-enable error messaging after the migration completes.

I'd prefer not to have to suppress PHP errors and messaging though on my staging server if at all possible. It's a good practice to keep that enabled on staging to help with debugging. Maybe something like this could be added when the migration begins?

// Turn off all error reporting
error_reporting(0);

Anyone else run into this issue?

Invisible Addon

Hi there,

i've installed wp-sync-db as explained here.
i've also installed and activated the media add-on (almost i supposed), but i can't see the media option in the interface.

am i miss something ?
capture d ecran 2014-09-24 a 13 56 36
capture d ecran 2014-09-24 a 13 56 49

thanks for your help !

Broken Link

On your GitHub readme the Media Files addon link is broken. Looks like the previous word 'migrate' wasn't changed to 'sync' with your new branding.

Is WP Sync DB secure and maintained?

Thank you for providing this plugin. It has worked, without issue, for me and is a great alternative to dropping $200 bucks for WP Migrate DB Pro.

However, I'm concerned about the security of it. Is it generally safe to keep this plugin installed on a production environment, or should I only install it when I intend on doing database migration?

Thanks,
Rich

Advanced option: leave "blog_public" alone

blog_public is the name of the WordPress option for Search Engine visibility-- since we often use this plugin to pull from live to staging, we currently have to go in and check that box so that the staging site doesn't get indexed. If there were an option to keep it the same as it currently is, that'd help us out a lot.

Duplicated sites conflict

First off, thank you for this awesome plugin! I use it daily across our sites. I was curious as to whether or not you may have a solution to the following problem.

I use the WP-Duplicator plugin for initial site deployments since it makes things such a breeze. However, even though the URL changes (say, from mysite.dev to productionurl.com/sandbox to productionurl.com), the key remains the same, and I get the error "It appears you've entered the secret key for this website, you need to provide the secret key for the remote website instead."

I've tried deleting the plugin and re-installing, but the same error appears. Is it possible to regenerate a unique key?

Thanks!

Uncaught SyntaxError: Unexpected identifier

I have installed this on a site i want to backup and edit locally, but I cannot move between the top tabs, migrate settings.

Upon further investigations, the error console came up with the above error in line 466 of /wp-sync-db-master/asset/js/script.js?ver=1.5

I have tried disabling all of the plugins and disabling themes to see if there is a javascript conflict.

I have also deleted all the wordpress files manually then manually uploading the files again.

The error still occurs.

js

Incredibly slow

Why are WP-Sync-DB and WP-Migrate-DB so incredibly slow? The database-sync plugin works in under 5 seconds usually, however both this plugin and the original take about 30-60 seconds to sync.

Is that because it's being overly cautious about memory limits and transferring the data in chunks? Surely there's a more efficient way...

Simon.

400 Bad Request

No matter what direction or migration type I'm getting 400 Bad Request error. The full error is the following:

Unable to connect to the remote server, please check the connection details - 400 Bad Request (#129 - scope: ajax_verify_connection_to_remote_site)

I have set to accept pull and push on the both the local and remote version. I've reset the API key several times on both sites, still no luck. This issue is consistent in all browsers I've tried: Chrome, Firefox, Safair.

Ideas?

Improve subpar subsite activation experience

When trying to activate the plugin on a multisite subsite, nothing obvious happens. Plugin doesn't activate, no error message is shown, error_log is empty. Documentation doesn't say anything about "this needs to be network activated and that's the only way it works on multisite".

This is my first experience with the plugin so the documentation and an error message patch are the only things that come to mind as an immediate and simple helpful steps to take.

But what's the deeper story here. The plugin really cannot be activated on a subsite alone?

WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-' at line 1]

I get the above error whenever I try to update my local dev environment with a remote installation.

The error log does not output anything except this:

site_url(): http://192.168.33.11/wp
home_url(): http://192.168.33.11
Table Prefix: wp_
WordPress: WP4.2.2
Web Server: Apache/2.4.7 (Ubuntu)
PHP: 5.5.9-1ubuntu4.9
MySQL: 5.5.43-MariaDB-1ubuntu0.14.04.2
ext/mysqli: yes
WP Memory Limit: 40M
WPSDB Bottleneck: 
Debug Mode: Yes
WP Max Upload Size: 
PHP Post Max Size: 
PHP Time Limit: 30
PHP Error Log: 
fsockopen: Enabled
OpenSSL: OpenSSL 1.0.1f 6 Jan 2014
cURL: Enabled

Active Plugins:
Advanced Custom Fields Pro (v5.2.6) by elliot condon
Timber (v0.21.3) by Jared Novack + Upstatement
WP Sync DB (v1.5) by Sean Lang

Any idea how to solve this error?

Setting Grey out

I am running sp-sync db latest version 1.5 on a dedicated server and the settng page and help page are greyed out so I can do a pull.

This is on the latest verison of wordpress as at 6/2/2015 any ideas?

Can we perform Incremental pull ?

Hello,

First of all this is not a issue, I just wanted to reach the developer.
This is as AWESOME plugin.

I perform pull/push request from local to remote server on daily basis. But having to upload huge post table is huge time consuming.

Is it possible to sync only the modified tables so that it take less time or have only incremental database sync?

Thanks for your support.
R

Error with my environment Laravel homestead, hhvm ... Syntax error

When i'm using pull in my local environment i always got this error:

You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use near '-' at line 1 f\xc3\xbcr 
Abfrage - von do_action('wp_ajax_wpsdb_migrate_table'), 
WPSDB->ajax_migrate_table, WPSDB->process_chunk

When i'm testing with mamp and do a local pull evrything is fine.
Do you have some ideas or known issues with this setup?

Top Level to Sub Directories

By far the most common practice of server environments is your local site would be either localhost/clientsite or local.developersite.com/clientsite which then moves to stage.developersite.com/clientsite finally goes to clientsite.com.

It seems that is not possible with WP Sync DB however. Since the resulting site will almost always be a top level domain, that means the local environment, development environment and staging environment all would have to be top level domains which isn't practical. And if you do use sub directories that have to be the same subdirectory names across each environment and database name has to be the same across each environment.

I'd love to support WP Migrate DB but certainly not worth the cost with all of these deal breakers. Are you planning on growing your fork to support common environment setups like mentioned above? I'd think each environment would be able to get the current site url automatically or at the least manually as well as entering the database name for each environment.

Thank you for creating this needed fork and hopefully it grows to fill the voids found in the premium version.

Workflow working with Multisite

Hi,

Is there any recommendation while working with multisite?
As far as I can tell there's no option to export/pull a single site from a network, is this something you are planning for?

Thanks.

Too many AJAX requests for GoDaddy Managed Hosting?

I'm trying to pull a database from GoDaddy's Managed WordPress hosting.

If I select more the 4 tables at a time, I get an error:

"A problem occurred when processing the following table. We were expecting a response in JSON format but instead received an empty response. wp_jtypk7q764_usermeta"

It seems like they just stop responding AJAX requests after a certain number of concurrent requests.

Submitting an issue more for documentation than anything. Googling the error message didn't give me any useful results.

Tab not active when clicked

When clicking on the tabs in the settings pages, the tab content does not become visible.

For example, clicking on "settings" or "help" tab, the tab does not become the active tab.

I'm using Sync DB 1.5 with wordpress 3.9.1.

Any help would be appreciated.

Unable to solve error #137

When attempting a push migration I get an error 137:

Invalid content verification signature, please verify the connection information on the remote site and try again. (#137)

Here is the error log:

site_url(): http://localhost/wp2
home_url(): http://localhost/wp2
Table Prefix: wp_
WordPress: WP4.2.2
Web Server: Apache/2.4.7 (Ubuntu)
PHP: 5.5.9-1ubuntu4.9
MySQL: 5.5.43-0ubuntu0.14.04.1
ext/mysqli: yes
WP Memory Limit: 40M
WPSDB Bottleneck: 1 MB
Debug Mode: No
WP Max Upload Size: 2 MB
PHP Post Max Size: 8 MB
PHP Time Limit: 30
PHP Error Log: 
fsockopen: Enabled
OpenSSL: OpenSSL 1.0.1f 6 Jan 2014
cURL: Enabled

Active Plugins:
Polylang (v1.7.3) by Frédéric Demarle
Advanced Custom Fields (v4.4.1) by Elliot Condon
Booking System PRO (v2.0.8) by Dot on Paper
Master Slider (v2.2.1) by averta
Side Matter (v1.4) by Christopher Setzer
WP Sync DB (v1.5) by Sean Lang

Could the issue be linked to me using http://localhost/wp2 as a local URL?

I've tried resetting the connection info api key many times to no avail.

Also, wondering about #47 and don't really understand the idea of keeping the paid version in delicious-brain branch? I see there are more recent commits there. Is the master branch dead?

Thanks!

Tag release?

If you could tag a release, it would be easier for me to lock wp-sync-db to a particular version with composer. Thanks!

Does not correctly export SQL file

I'm trying to run this plugin on a local server (MAMP) and I'm not getting a proper database export.

Here's a dump of what I get:

# WordPress MySQL database migration
#
# Generated: Thursday 22. January 2015 01:35 UTC
# Hostname: localhost
# Database: `foreverfamilies`
# --------------------------------------------------------

/*!40101 SET NAMES utf8 */;

SET sql_mode='NO_AUTO_VALUE_ON_ZERO';

Any thoughts?

Cannot use "pull" for migration

When I try to migrate a database from localhost to my live site by using "Pull" and paste the connection info into the "Pull" section of the live site, the plugin displays the following error:

There was a problem with the AJAX request, we were expecting a serialized response, instead we received:

I have no problem migrating the database when I push it from the localhost to my live site.

translations

1.4b adds i18n support. if anyone wants to contribute translations, that'd be wonderful.

Replace GUID - Problems were adviced

Seem like WP Team was right in the advice of not changing GUIDs.

All serialized data which match a replace will get broken and not parse into WP anymore. That is a fact for widgets, for example.

There seems to exist a script which make the replacements in a working way.

Some links: search-and-replace, serialize function,

But if the whole point is really serialization, wouldn't be hard to implement some debugging in wp-sync-db itself.

Migration failed

WordPress database error: [Can't find file: './cp_thenewe_com/_mig_wp_calebspitch_commentmeta.frm' (errno: 2)]
RENAME TABLE _mig_wp_calebspitch_commentmeta TO wp_calebspitch_commentmeta


I get the above error when I try to migrate for the first time... it doesn't matter if I select one or all tables, each table gives the same error.

Any Ideas?

I'm pushing from a localhost to a live server

Multisite network SQL export glitches

When exporting the DB of a WP Multisite network with v1.5, the resulting SQL dump has the following flaw(s).

  1. In wp_blogs table, for every subsite's row
  2. the domain field becomes empty,
  3. and the path field gets the domain prepended.
  4. The same w/ the wp_site table:
  5. the domain field becomes empty;
  6. the path field gets the domain prepended (to the usual value of "/").

This is a bit different from the behavior of the previous version, v1.4, which used to leave the domain fields in both wp_blogs and wp_site tables intact, but did prepend the domain to the values in path fields just the same. But the v1.4 also had an additional, 3rd find/replace field "Old domain"/"New domain" in the "Migrate" > "Export File" form/UI in Multisite, which I used to use for Multisite exports. Now, with v1.5, when not finding the "Old domain"/"New domain" find/replace option any more, I used the usual "Old URL"/"New URL" to get the results described above.

P.S. This is similar to what's reported here, but I haven't experienced any trouble with the wp_sitemeta table's siteurl field however.

The connection to the remote server has timed out, no changes have been committed. (#134 - scope: ajax_verify_connection_to_remote_site)

Pushing from site.dev to remote.ca site and I'm getting the following error:

The connection to the remote server has timed out, no changes have been committed. (#134 - scope: ajax_verify_connection_to_remote_site)

Any ideas what might be wrong? I've tried uninstalling the plugin on both ends, no luck.

Here is the error log:

********************************************
******  Log date: 2015/05/20 15:51:52 ******
********************************************

WPSDB Error: The connection to the remote server has timed out, no changes have been committed. (#134 - scope: ajax_verify_connection_to_remote_site)

Attempted to connect to: http://remote.ca/wp-admin/admin-ajax.php

WP_Error Object
(
    [errors] => Array
        (
            [http_request_failed] => Array
                (
                    [0] => Resolving timed out after 10521 milliseconds
                )

        )

    [error_data] => Array
        (
        )

)

update to 1.4.4

the code for 1.4.4 is in 5cf0d68, we just need to copy over the changes, renaming as needed, and removing the code we don't need.

Serialized data?

Just a simple question: what about serialized data like widgets? Is this supported like in wp db manager pro? Thanks

Error While Pushing

WordPress database error: [Can't find file: XXXXXX

RENAME TABLE _mig_wp_commentmeta TO wp_commentmeta

Poking around can not see what may be causing the issue and why it would be trying to rename a table.

500 Internal Server Error

Hi
I tried to connect to my live server to pull down a current copy to my local machine using the API key request and I got the following error.

Unable to connect to the remote server, please check the connection details - 500 Internal Server Error (#129 - scope: ajax_verify_connection_to_remote_site)

When logged in to my live site I tried to reset the API key but when I do I get an alert message.

An error occurred when trying to generate the API key.
Please see the Help tab for details on how to request support. (#105)

Also when I go to the help tab on the live site, I get the following error.

An error occurred when trying to update the debug log. Please contact support. (#133)

Hangs pulling into dev: NaN% - Migrating "wp_posts"

I've looked through the other issues to see if any of the others is similar to this. I didn't find this issue, but if its already been answered elsewhere, please point me in the right direction.

For the past few days I've tried pulling a fresh copy of the "live" databases from two different sites into my dev environment.

All seems to work well until somewhere between 85% and 95%, when the progress percentage changes to "NaN% - Migrating "wp_posts"". On the site I'm currently working on it hangs at wp_posts. Yesterday, working on a different site, it hung up on wp_postmeta.

I've tried pulling several times on each site to no avail. As I said, up until about 3 days ago, all worked hunky-dory. Any thoughts?

Media Files Plugin not appearing as an option on any of my sites.

Hi,

I've tried using the WP-Sync-DB and WP-Sync-DB-Media Files together on several sites now, and none of them allow me to uploads media files. In fact, if you run an inspection on the page, it shows that "media-files" is set to display:none. If I temporarily set to display:block I can get the Media Files option to appear in the correct place, however it will not actually sync the files. All plugins are the latest versions.

The only thing that all my sites have in common is that they run on Nginx. Any ideas?

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.