Code Monkey home page Code Monkey logo

advanced-forms's Introduction

Advanced Forms

Documentation | Install | Purchase Pro | Support

Advanced Forms is a WordPress plugin for creating front-end forms using Advanced Custom Fields. It supports all ACF field types, including repeaters and flexible content fields, and provides the same field editing interface you are already familiar with. Advanced Forms is available on the plugin directory.

  • Email notifications: Configure an unlimited number of email notifications, including support for dynamic recipients and field includes.
  • AJAX submissions: Use AJAX for a better user experience with faster submissions and no page reloads.
  • Entries: Save form submissions as entries with all fields.
  • Spam protection: Every form is protected against spam using a honeypot. If you need more sophisticated spam protection, Advanced Forms Pro includes support for reCAPTCHA.
  • Restrictions: Place limits on your form using the built-in restrictions or create your own:
    • Limit the total number of submissions
    • Limit your form to only logged-in users
    • Limit the time when your form can be used
  • User-friendly UI: Create forms either through the admin UI or programmatically for easy integration.
  • Gutenberg support: Add forms to your site using Gutenberg blocks.
  • Developer-friendly: Designed for developers with a large variety of hooks and helper functions and comprehensive documentation.

Pro

On top of that, Advanced Forms Pro offers even more features for advanced use cases. You can purchase a license through Hookturn which can be used on an unlimited number of sites.

  • Priority support: Get direct support with an average response time of 1-2 days.
  • Post editing: Set up forms to create and edit posts. Configure the post title, content and status and automatically map your existing ACF fields.
  • User editing: Register new users or let people edit their user profile with automatic mapping of your user fields.
  • Calculated fields: Give your users immediate feedback as they fill out your form. Calculated fields update live with the values from other fields. Calculated fields are also fully programmable for more complex calculations.
  • Slack: Get a message in Slack for each form submission, including all form data.
  • Mailchimp: Create a form to sign users up for your Mailchimp mailing list.
  • Zapier: Connect your form to thousands of third-party services using Zapier.
  • Google reCAPTCHA: Protect your forms against spam using an invisible captcha.

Support

If you need help, have a feature request, or think you've found a bug, don't hesitate to reach out. Either create a ticket on the WordPress Support Forums or an issue on Github.

For Pro users, please send an email to [email protected] and we'll respond as fast as we can, most often within 1-2 days.

advanced-forms's People

Contributors

daviddarke avatar dependabot[bot] avatar fabian-tigerton avatar fabianlindfors avatar jaska avatar jonkersdw avatar mishterk avatar triloworld avatar tyrann0us 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

advanced-forms's Issues

Custom HTML Output

I would love to use something like this in a site that I am building, but it doesn't seem to allow for custom HTML. Optimally, I'd get a list of fields and be able to loop through and display accordingly. Instead, it appears, Advanced Forms includes 400kb of JavaScript and CSS into my page along with the form itself.

Am I missing something?

Writing ACF field values into a new custom post

Hi Fabian,
Another question: what do you recommend when adding a new CPT from AdvancedForms, re the ACF field input when one validates the form?

In the manual you describe updating the Title and Content of the newly created post.
But what about ACF fields? ACF Documentation states that:

This example demonstrates how to achieve the same as above using the field’s key instead of it’s name. The field’s key should be used when saving a new value to a post (when no value exists). This helps ACF create the correct ‘reference’ between the value and the field’s settings.

If it is correct, it makes it VERY awkward to update a field because now we are dealing with TWO field references: the name (which is natural) and the Field Key.

Please tell me your thoughts.
Stephen

Not an issue - love the plugin :)

Hi, love the concept. If you need a hand with feature development etc just shout. Going to roll it out on a couple of sites soon.

Issue with "Duplicate Post"

Hi,

I realised today that if you use the plugin "Duplicate post" to make multiple copy of a form, it works almost fine (form id is changed), but, there might be some hidden fields that still contain information / formID of the original form (when i fill a copy of the form and send it, it register the entries and use settings of the original form instead).

Redirect to newly created Post after Form-Submission

Hey Guys! I just bought the Pro Version of your plugin today and got some questions.

First of all:

How can I redirect the User to his newly created post after submitting the Form?

I´ll open new threads for my other questions.

thanks in advance

ACF is not defined

Hi,

The current way i'm displaying my form is by using:

The form works and i receive my email however when using this i get the following console error: "ACF is not defined."

acf

Not working with Divi builder

Hello,

as soon as we add an advanced form to the content using Divi builder, it is not possible to edit the page anymore (backend editor).

The basic problem seems to be, that jQuery isn't loaded anymore.

image

Bundling within plugin?

Thanks for your work with this plugin, it works very well and easy easy to set up.

Similar to Advanced Custom Fields, are there hooks in place to allow a developer to bundle your plugin within our own? The plugin I am building will only be used internally within my organization, but I do not trust the other admins not to poke around and disable your plugin on accident.

Thanks!

Feature Request: Place HTML into templates for easy overriding

Need

I noticed in advanced-forms/core/core-forms.php that there's a lot of hardcoded HTML when the form gets rendered.

I think it would be a good idea to separate this HTML, moving it away from the logic and into multiple template files. These template files can be included in a way where they can be overridden.

An example of this can be found by taking a look at how woocommerce implements their templating.

Value

Overriding partial HTML templates means the user has full control over what gets displayed on their page, including classes and whether or not they want to include further markup.

If you think this would be a good addition, I would be happy to do this and submit a PR.

Bug: Unable to access classes after they've been instantiated

Hi @fabianlindfors , loving the plugin so far. Great alternative to the bigger names like CF7.

Summary

Several classes are being declared in external files, and then included in the AF class, under the initialize_plugin function.

Unfortunately, these classes are being instantiated without being assigned to any variables.

This means that it's impossible without a large amount of hacking WP global variables, to remove any default filters or actions that are applied by these classes.

These classes are:

  • AF_ACF_Additions (advanced-forms/acf/acf-additions.php)
  • AF_Admin_Emails (advanced-forms/admin/admin-emails.php)
  • AF_Admin_Entries (advanced-forms/admin/admin-entries.php)
  • AF_Admin_Forms (advanced-forms/admin/admin-forms.php)
  • AF_Admin_Restrictions (advanced-forms/admin/admin-restrictions.php)
  • AF_Core_Emails (advanced-forms/core/core-emails.php)
  • AF_Core_Entries (advanced-forms/core/core-entries.php)
  • AF_Core_Forms (advanced-forms/core/core-forms.php)
  • AF_Core_Restrictions (advanced-forms/core/core-restrictions.php)

Steps to Reproduce

Add to anywhere in functions.php
remove_action( 'init', array( 'AF_Core_Forms', 'pre_form' ), 10 );

Expected behavior

Action is removed.

Actual behavior

Action is not removed.

Fix

Whenever a class is instantiated, return it, like this:
return new AF_Core_Forms();

Inside the AF class assign it to a variable, like this:
$this->core_forms = include( $this->path . 'core/core-forms.php' );

That way, you can remove an action like this:
remove_action('init', array(AF()->core_forms, 'pre_form'), 10);

I'm happy to create a pull request that reflects this.

Version: 1.3.5

Multipage not working

Hi,

I have a problem with multipage forms, when there are 2 or more pages the "next" button stops working and the spinner keeps forever after the first tab.

Why is this happening ? Is this problem jquery related?

Undefined index: post_type in debug mode

Hello,

First, thanks for your plugin, it's a huge time saver

However, in debug mode, I have errors of this type:

NOTICE: wp-content/plugins/advanced-forms/acf/acf-additions.php:116 - Undefined index: post_type

I'm on php7 with ACF pro 5.6.1 and AF 1.3.2

Thank you for your work !
dweez

af_get_field not working with sub fields inside "Group" field

Hi @fabianlindfors, thank you for this great plugin!

I noticed that af_get_field won't work if the field type is set to "Group". Example: Field of type "Group" called "field" has a sub field called "sub_field". How am I supposed to access the sub field? af_get_field( 'field[sub_field]' ) does not work, neither does af_get_field( 'sub_field' ).

// Also search sub fields if field is clone
if ( 'clone' == $field['type'] && isset( $field['sub_fields'] ) ) {

If I change the condition to if ( isset( $field['sub_fields'] ) ) { then af_get_field( 'sub_field) works.

Would it be safe to change the condition as mentioned? Thanks!

Calculated Field not Showing in Email Notification

Hey guys!

The value of the calculated field ist showing in the email notification template after submitting a form.

The other fields work perfectly fine and can be viewed in the email.

am I missing something?

Notifications > Insert field: tinymce is not defined

When trying to insert fields into email notification I receive this error in the console:

Uncaught ReferenceError: tinymce is not defined
    at HTMLDivElement.<anonymous> (admin.js?ver=4.9.6:66)
    at HTMLDocument.dispatch (load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,jquery-ui-resizable&ver=4.9.6:3)
    at HTMLDocument.r.handle (load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,jquery-ui-resizable&ver=4.9.6:3)

Using:

  • Wordpress 4.9.6
  • ACF Pro 5.6.10
  • Advanced Forms 1.3.5

No other plugins active

Using my own custom theme ( which could be causing it I guess )

Notice: Undefined index: type

Hello,

when enabled, we get the folling warning, which brokes some funtionality.

Notice: Undefined index: type in /XYZ/wp-content/plugins/advanced-custom-fields-pro/includes/api/api-field.php on line 1812

This happens with:

  • PHP 7.0
  • WordPress 4.9.5
  • ACF Pro 5.6.10
  • Advanced Forms 1.3.5
  • Twenty Seventen Theme

$fields is empty because of absent form field prefix 'acf'

Hi!

I've detected a problem with ACF 5.3.10 and Advanced Forms 1.3.2

In core-forms.php, the $fields array is empty in the "pre_form" which makes the e-mail sent empty and no entry data is saved. I've narrowed it down to the function looking in a "acf" key for the form's data, but in the form I'm look at, there's no "acf" prefix to the input names. My guess is that it's a breaking change added by ACF by ACF and that "acf_render_field" function doesn't add that prefix anymore which you relied on, but now it causes the form submission to fail.

core-forms.php:93

Right now, the field names are plainly their field IDs, so I made a little function to fix this, but as I don't know all your code base and all the implications this could have, I didn't bother creating a pull request. Maybe there are other places in the code that are breaking because of this, so I'm simply using this issue here to let you know. I think it breaks the "required" field validation, but I'm not sure.

Here's how I personally fixed it temporarly by filtering the data in my functions.php file.

add_action('af/form/submission', function($form, $fields, $args){
	// Fix acf fields being empty
	$fields = array();
	foreach ($_POST as $key => $value) {
		if(strpos($key, 'field_') !== false){
			$field = acf_get_field( $key );
			$field['_input'] = $value;
			$field['value'] = acf_format_value( $value, 0, $field );
			$fields[] = $field;
		}
	}
	
	AF()->submission = array(
		'form' => $form,
		'args' => $args,
		'fields' => $fields,
	);
}, 1, 3);

Request: Multilanguage support

There is some field that don't work in multilanguage space.
For example: description, Success message, email form ...
Can be possible to just create another one entry for another language?

I use Polylang, don't know if it work on WPML. No information about it.

Feature request: Display the form shortcode

Please put the form's shortcode in the list view and/or individual view. Just so that users can just copypaste that to wherever they like. Now displaying a AF form always requires a trip to the documentation page to remember what was the code.

Taxonomies - multi-select field

Hey there,

Just checking in if taxonomy multi-select works? I can't seem to get it right. Using checkbox works just fine, not multiselect though. I'm using advanced_form with basic args.

Cheers for now =)

Gallery Field not working when not logged in as Admin - "Cannot read property 'query' of undefined"

Hey guys.

I´ve got a gallery field in my Form. When I´m logged in to Wordpress (as Admin) everything works fine.

But as a regular (logged in User /non Admin) the "Upload Button" for the Gallery does not work (when its klicked, it does not open the browser to choose the images,) - If I check the console, I get the following error message:

Uncaught TypeError: Cannot read property 'query' of undefined
at i.addFrameStates (acf-input.min.js?ver=5.7.13:3)
at initialize (acf-input.min.js?ver=5.7.13:3)
at i.t (acf-input.min.js?ver=5.7.13:1)
at i.acf.Model (acf-input.min.js?ver=5.7.13:1)
at i [as constructor] (acf-input.min.js?ver=5.7.13:1)
at new i (acf-input.min.js?ver=5.7.13:1)
at Object.acf.newMediaPopup (acf-input.min.js?ver=5.7.13:3)
at i.onClickAdd (acf-pro-input.min.js?ver=5.7.13:1)
at i. (acf-input.min.js?ver=5.7.13:1)
at HTMLAnchorElement.d (jquery.js?ver=1.12.4:2)

I just bought your Plugin today, an put much hope in it - I hope you can help.

Thanks

Clone fields: still not working for Post Objects

Hi Fabian,
Thank you so much for correcting most of the issues with Clone fields.
This makes the plugin really comprehensive.

However, as per my tests, the Clone fields do not work in a specific case: Post Objects.

  1. Create a test WordPress website with two custom post types (CPT), People and Companies
  2. In ACF, create a Field Group (FG) called Company then add within a Post Object "Company", as a Select, quoting Companies. Make the FG NOT active.
  3. Create in ACF another FG called People. Make it Active and link it to the CPT People.
  4. Quote within the FG People the FG Company, as a Clone
  5. Create a Form in AdvancedForms called PeopleInput
  6. Create yet another FG in ACF called PeopleForm
  7. Add the FG Company as a clone within the FG PeopleForm with the Field Name people_company
  8. Link the FG PeopleForm to the form PeopleInput
  9. Create a validation function (as per your documentation) including af_save_field('people_company', $post_id); plus the rest of necessary code. Please Note I am indeed using the name of the clone field as quoted in the FG PeopleForm

Now:

  1. Open the form PeopleInput
  2. Input title, etc.
  3. Input, using the Select, the Company
  4. Submit

The result:

All other ACF fields are transferred (I tried it with a lot of fields) EXCEPT for the clone of Post Objects

Last update breaks values in filter mode

Hi, I hope this finds you well.

The last update prevents me from displaying values from AF()->submission when loading the form in filter mode here:

if ( af_has_submission() && ( $args['filter_mode'] || af_submission_failed() ) ) { $field['value'] = af_get_field( $field['name'] ); }

I have multiple group fields with identical subfield names, so I usually parse AF()->submission to get the values by subfield key in an array and then load those values in the advanced_form() args, but the last update breaks this and doesn't display the values at all for me. Do you have any suggestions?

I think the issue probably lies in af_get_field because the value returned for a group field has the subfield names as the array keys and not the keys. I hope I'm making sense ;)

af_register_email action

I want to add email programmatically, just like it's possible to do with af_register_form. But I can't find a similar simple way to do it. For now I use af/form/submission and wp_mail(). But is there a way to do it with any af_ filter/action?

Thanks!

Too few arguments to function filter_submit_button_attributes()

Using filter_submit_button_attributes() just as it is on the docs, gives the following error:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function filter_submit_button_attributes(), 3 passed in /app/public/wp-includes/class-wp-hook.php on line 286 and exactly 4 expected in /app/public/wp-content/themes/llos-isisi/includes/acf.php:72
Stack trace:
#0 /app/public/wp-includes/class-wp-hook.php(286): filter_submit_button_attributes(Array, Array, Array)
#1 /app/public/wp-includes/plugin.php(203): WP_Hook->apply_filters(Array, Array)
#2 /app/public/wp-content/plugins/advanced-forms/core/forms/forms-rendering.php(254): apply_filters('af/form/button_...', Array, Array, Array)
#3 /app/public/wp-includes/class-wp-hook.php(286): AF_Core_Forms_Rendering->render('form_5b6b0b3757...', Array)
#4 /app/public/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array)
#5 /app/public/wp-includes/plugin.php(453): WP_Hook->do_action(Array)
#6 /app/public/wp-content/plugins/advanced-forms/api/api-forms.php(16): do_action('af/form/render', 'form_5b6b0b3757...', Array)
#7 /app/public/wp-content/themes/llos-is in /app/public/wp-content/themes/llos-isisi/includes/acf.php on line 72

Assign form to CPT

Hi and thanks for a great plugin.

Quick question (I think): How can I assign a form (bound to a field group) to a specific Custom Post Type? I'm sure I must be missing something obvious.

All the best.

Adding template to outgoing emails

Hi again,

I'm wondering if there's a way to edit the mail content before it's sent to add a template. I'm able to modify the array content with af/email/before_send, but the changes aren't showing. I see them if I use var_dump, but not in the emails.

What's the best way to do this?

Thanks.

Feature Request: Make add_email_field_inserter filterable

In file advanced-forms/admin/admin-emails.php on line 21, a function named add_email_field_inserter exists. It's the function that adds the "insert field" button to dashboard fields.

I'm currently working on a plugin that integrates Mailchimp with Advanced Forms. I think it would be great if I could include my own custom fields in this list.

I noticed inside the function, there's a list of fields that receive this button:

$fields_to_add = array(
    'field_form_email_recipient_custom',
    'field_form_email_subject',
    'field_form_email_from',
);

Is it possible to make the variable $fields_to_add filterable?

Thanks!

How to create notifications?

Hello,

I just can't find out on how to create notifications. There is no option for this and I just can't find any documentation or issue for this.

image

Thanks

Possibility to submit form in ajax

Hello, great plugin. Very helpful.

I was wondering if there was a possibility to have the form submit in AJAX and receive the success message and show it ?

Instead of having the form reload.

Thank you

Multiple Field Groups

Just tested with multiple field groups, why do you merge fields to one field group? What if I want to show it by field groups with its specific title?

Ex.
Field Group: Details

  • Title
  • Description

Field Group: Location

  • Address
  • Coordinates

Also it would be nice if we could reorder fields and / or fields groups, you are ordering alphabetically.
Instead of having hard coded the fields metabox, why not use repeater or group field from ACF?

Something like this:
idea_af_2

If show admin filter set to false no fields are registered.

I was looking at your code, haven't debugged yet, but the way you have coded the show admin filter to not include the admin files will make that the fields aren't also registered, so if you are using AF programmatically you won't have access to the fields, or am I wrong?

BTW, nice coding!

Ordering ACF Field Groups

Hi Fabian,
Thank you for your OUTSTANDING work that really saved my day yesterday, and today and for the next days to come too ;o))
There are several things I would like possible on the plugin, notably the Ordering of ACF group fields in the form.
Here is the context:

  1. I have several ACF group fields used for the same Custom Post Type (CPT). For example, for a People CPT: Personal info, Postal address, Communication means
  2. The same for my Advanced Form > I have allocated all these ACF groups to the same form
  3. But I cannot figure out on how to order them within the form -- they seem to retain the order of ACF, neither the order of creation, nor the alphabetical order.

Thank you!
Stephen

Viewing entries on the front end.

First off, this is an amazing plugin so thank you.

I'm trying to view entries on the front end. I can set up a WP_Query grab the posts that way but there doesn't seem to be a default way to view single entries. If I have a permalink call wrapped in a link in the query loop, it returns the af_entry post ID but the link goes to a 404 error.

While I understand that you need to use the regular ACF calls (the_field();, get_field();) to grab the information from the entries, viewing a single entry as a post should by default use the single.php template in the theme. Yet for some reason you cannot view single af_entry posts out-of-the-box. My question is: why not?

Looking over the issues here, I could convert entries to a different CPT and then view those but since af_entry is already a post type, doing that seems unnecessary.

There are a lot of use cases for viewing the entries on the front end. In my case, I've created a project worksheet form for my studio and so project leads can fill out the information for a project, then view it online (or print it if necessary). If this information is stuck in the admin, it is exponentially harder to style and to print.

Maybe I'm missing something simple.

Feature request: Option to disable default form CSS

When an Advanced Forms from is rendered on the front end, it has a few CSS rules applied by default. Due to the way this CSS file is authored, it's a bit of a pain to override/reset these CSS rules if they happen to not be what I want.

It would be wonderful if Advanced Forms had an option that removes the default CSS entirely, thus enabling a developer to write their own from scratch. Perhaps a toggle option at the bottom of the Display tab of the Form Edit screen to remove Advanced Forms CSS...?

Currently, one needs to fight against the default CSS to override/reset AF's default CSS. Due to heavy use of the > selector in the default, selectors are a bit uglier/messier than necessary because of the default rules' specificity. It's worth noting also that Advanced Forms' CSS is enqueued after the theme style.css file, so the theme CSS will lose specificity due to its lower load order.

These are the sorts of very specific CSS rules one has to use to reset most of AF's defaults:

.acf-form > .acf-fields > .acf-field {
    position: static;
    margin: 0;
    padding: 0;
    border-top: none;
}

.acf-form .acf-field .acf-label {
    margin: 0;
}

.acf-form .acf-field .acf-label label {
    font-weight: normal;
    margin: 0;
}

.acf-form > .acf-form-submit,
.acf-fields > .af-submit {
    padding: 0;
}

As you can see (hopefully), these are a bit more specific than they really should have to be, which is because of quite heavy use of > in the default CSS.

If the option to disable CSS in the UI isn't something that you're interested in, perhaps there could be something when displaying a form via function call? 'default_css' => false - I'm not sure if that's easier either. Maybe just like a hook would be sufficient to dequeue the stylesheet. Everything I've tried to remove that stylesheet hasn't worked.

Preventing spam

Hi everyone,

I've been experiencing a considerable amount of spam coming from forms using the plugin. It's a bit of a problem for my customers, so I'm trying to figure out what's the best way to handle this without adding a captcha field, which is not optimal for smaller forms like quick newsletter sign-up, where the captcha would be bigger than the form itself.

ACF forms do have an option to add a honeypot field to avoid this. Is there any way of implementing this using Advanced Forms as well? I can add a hidden field myself to do this, but it would be great to have an option to do it automatically, or maybe even to be able to use native ACF forms options as well as the AF ones.

Thanks!

Save value of hidden field with post info

Hello,

I just got the Pro version of the plugin and I have to say I'm loving it. However, I'm trying to figure out how to save post data stored in a hidden field when submitting.

Here's what I have:

$form_key = 'form_5c059ce94b013';
function hidden_field($form,$args) {
    $form_post_title = get_the_title() ? get_the_title() : 'Unknown';
    echo '<input type="hidden" name="order_product" value="'.$form_post_title.'">';
}
add_action( 'af/form/hidden_fields/key='.$form_key, 'hidden_field', 10, 2 );

When inspecting I actually see the hidden field being added to the form, so I guess that part is right. The problem is that I cannot find the field on the stored entry in the back-end. Am I missing something?

Thanks in advance.

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.