Giter Club home page Giter Club logo

scaffold-eth-typescript's Introduction

๐Ÿ— Scaffold-ETH

๐Ÿšจ๐Ÿšจ This repository has been archived and is now read-only ๐Ÿšจ๐Ÿšจ

You are still welcome to fork and use as a template but no more changes will be made to this repository.

๐ŸŽ– Scaffold-ETH 2 is the latest version, we recommend you fork: https://github.com/scaffold-eth/scaffold-eth-2


everything you need to build on Ethereum! ๐Ÿš€

๐Ÿงช Quickly experiment with Solidity using a frontend that adapts to your smart contract:

image

๐Ÿ„โ€โ™‚๏ธ Quick Start

Prerequisites: Node (v18 LTS) plus Yarn (v1.x) and Git

๐Ÿšจ If you are using a version < v18 you will need to remove openssl-legacy-provider from the start script in package.json

1๏ธโƒฃ clone/fork ๐Ÿ— scaffold-eth:

git clone https://github.com/scaffold-eth/scaffold-eth.git

2๏ธโƒฃ install and start your ๐Ÿ‘ทโ€ Hardhat chain:

cd scaffold-eth
yarn install
yarn chain

3๏ธโƒฃ in a second terminal window, start your ๐Ÿ“ฑ frontend:

๐Ÿšจ if your contracts are not deployed to localhost, you will need to update the default network in App.jsx to match your default network in hardhat-config.js.

cd scaffold-eth
yarn start

4๏ธโƒฃ in a third terminal window, ๐Ÿ›ฐ deploy your contract:

๐Ÿšจ if you are not deploying to localhost, you will need to run yarn generate first and then fund the deployer account. To view account balances, run yarn account. You will also need to update hardhat-config.js with the correct default network.

cd scaffold-eth
yarn deploy

๐Ÿ” Edit your smart contract YourContract.sol in packages/hardhat/contracts

๐Ÿ“ Edit your frontend App.jsx in packages/react-app/src

๐Ÿ’ผ Edit your deployment scripts in packages/hardhat/deploy

๐Ÿ“ฑ Open http://localhost:3000 to see the app

๐Ÿšจ๐Ÿ“ก To deploy to a public domain, use yarn surge. You will need to have a surge account and have the surge CLI installed. There is also the option to deploy to IPFS using yarn ipfs and yarn s3 to deploy to an AWS bucket ๐Ÿชฃ There are scripts in the packages/react-app/src/scripts folder to help with this.`

๐Ÿ“š Documentation

Documentation, tutorials, challenges, and many more resources, visit: docs.scaffoldeth.io

๐Ÿฆ Other Flavors

๐Ÿ”ญ Learning Solidity

๐Ÿ“• Read the docs: https://docs.soliditylang.org

๐Ÿ“š Go through each topic from solidity by example editing YourContract.sol in ๐Ÿ— scaffold-eth

๐Ÿ“ง Learn the Solidity globals and units

๐Ÿ›  Buidl

Check out all the active branches, open issues, and join/fund the ๐Ÿฐ BuidlGuidl!

๐Ÿ’Œ P.S.

๐ŸŒ You need an RPC key for testnets and production deployments, create an Alchemy account and replace the value of ALCHEMY_KEY = xxx in packages/react-app/src/constants.js with your new key.

๐Ÿ“ฃ Make sure you update the InfuraID before you go to production. Huge thanks to Infura for our special account that fields 7m req/day!

๐Ÿƒ๐Ÿ’จ Speedrun Ethereum

Register as a builder here and start on some of the challenges and build a portfolio.

๐Ÿ’ฌ Support Chat

Join the telegram support chat ๐Ÿ’ฌ or buidlguidl discord to ask questions and find others building with ๐Ÿ— scaffold-eth!


๐Ÿ™ Please check out our Gitcoin grant too!

Automated with Gitpod

Open in Gitpod

scaffold-eth-typescript's People

Contributors

carletex avatar chrisipk avatar codenamejason avatar dvinubius avatar grothem avatar harts avatar johnnylambada avatar kamikazebr avatar shravansunder avatar shravansunderxero avatar technophile-04 avatar tonisives 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

scaffold-eth-typescript's Issues

Update vite config for excluded dependencies

ipfs-http-client should not be in the list of dependencies that is excluded from eager bundling by vote. See the vite.config.ts file:

image

Update the excludeDeps array and remove ipfs-http-client

The app will compile and run as-is, but if you try to use ipfs-http-client, it'll cause a runtime error.

Local balance is not showing

Describe the bug
Local balance is not showing

To Reproduce
Steps to reproduce the behavior:

  1. yarn start
  2. go to web page
  3. view balance

Expected behavior
My local balance to show

Screenshots
Screen Shot 2021-10-12 at 9 27 11 AM

setPurpose not working

Describe the bug
When you click send for setPurpose you get an error

To Reproduce

  1. Try to set a new purpose

Expected behavior

  1. for the tx to go to metamask for confirmation
  2. tx to complete successfully updating the purpose

Screenshots
Screen Shot 2021-10-08 at 12 22 29 PM

Desktop (please complete the following information):

  • OS: iOS
  • Browser: chrome

Additional context

Switching provider networks throws an error

Describe the bug
Using metamask, if you switch networks while connected, an error is thrown. The app goes unresponsive, and a page refresh is required

To Reproduce
Steps to reproduce the behavior:

  1. Use Meta Mask as a provider
  2. Connect your wallet
  3. Switch networks in Meta Mask

Expected behavior
Network switch should be handled gracefully

Screenshots
image

Bundled App breaks with dependency-thrown TypeError: Right-hand side of 'instanceof' is not callable

I'm using Moralis as a backend for a Meta MultiSig Factory App.

One of the dependencies is react-moralis, which in turn uses the moralis, which in production throws an error.

I suspect that this is due to how vite builds the app for production.

I've searched for this particular issue and could not find it related to Moralis specifically, but I did find it related to Vue and Rollup. However, none of the solutions there were applicable.

So I have little hope that the Moralis people will be able to solve this, but @ShravanSunder I know you've given quite a bit of thought to the vite config and the bundling process. So - here it is:

Issue Description

The app works in local development.

But when served as a production bundle it throws the following exception

Screenshot 2022-02-25 at 18 29 47

Here is the stack trace

This is my code in useMultiSigSafes.tsx:

Screenshot 2022-02-25 at 22 25 10

This is in Cloud.js line 98:

Screenshot 2022-02-25 at 22 21 42

This is also Cloud.js line 171:

Screenshot 2022-02-25 at 18 42 17

This is encode.js line 149:

Screenshot 2022-02-25 at 18 44 35

This is encode.js line 65:

Screenshot 2022-02-25 at 18 47 09

This is my vite.config.ts:

import { resolve } from 'path';

import reactPlugin from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
// import reactRefresh from '@vitejs/plugin-react-refresh';
import macrosPlugin from 'vite-plugin-babel-macros';
import { viteExternalsPlugin } from 'vite-plugin-externals';
import tsconfigPaths from 'vite-tsconfig-paths';

const isDev = process.env.ENVIRONMENT === 'DEVELOPMENT';
console.log('env.dev:', process.env.ENVIRONMENT, ' isDev:', isDev);

/**
 * browserify for web3 components
 */
const externals = {
  http: 'http-browserify',
  https: 'http-browserify',
  timers: 'timers-browserify',
  electron: 'electron',
  'electron-fetch': 'electron-fetch',
};

const nodeShims = {
  util: 'util',
};

/**
 * Externals:
 * - node externals are required because web3 are terribly bundled and some of them use commonjs libraries.  modern libs like ethers help with this.
 * - electron:  added due to ipfs-http-client.  it has very poor esm compatibility and a ton of dependency bugs. see: https://github.com/ipfs/js-ipfs/issues/3452
 */
const externalPlugin = viteExternalsPlugin({
  ...externals,
  ...(isDev ? { ...nodeShims } : {}),
});

/**
 * These libraries should not be egarly bundled by vite.  They have strange dependencies and are not needed for the app.
 */
const excludeDeps = ['@apollo/client', `graphql`];

export default defineConfig({
  plugins: [reactPlugin(), macrosPlugin(), tsconfigPaths(), externalPlugin],
  build: {
    sourcemap: true,
    commonjsOptions: {
      include: /node_modules/,
      transformMixedEsModules: true,
    },
    rollupOptions: {
      input: {
        main: resolve(__dirname, 'index.html'),
      },
    },
  },
  esbuild: {
    jsxFactory: 'jsx',
    jsxInject: `import {jsx, css} from '@emotion/react'`,
  },
  define: {},
  optimizeDeps: {
    exclude: excludeDeps,
  },
  resolve: {
    preserveSymlinks: true,
    mainFields: ['module', 'main', 'browser'],
    alias: {
      '~~': resolve(__dirname, 'src'),
      ...externals,
      ...nodeShims,
      process: 'process',
      stream: 'stream-browserify',
    },
  },
  server: {
    watch: {
      followSymlinks: true,
    },
    fs: {
      // compatability for yarn workspaces
      allow: ['../../'],
    },
  },
  css: {
    preprocessorOptions: {
      less: {
        javascriptEnabled: true,
      },
    },
  },
});

Connect button not working

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. yarn start
  2. go to web page and click connect to connect your wallet

Expected behavior
Open wallet connect modal

Screenshots
Screen Shot 2021-10-12 at 9 19 03 AM

Desktop (please complete the following information):

  • OS: OS
  • Browser: chrome

Additional context
Add any other context about the problem here.

Visually hard to read - Most Pages

Describe the bug
Some of the text is hard to read

To Reproduce
Steps to reproduce the behavior:

  1. Go to any page

Expected behavior
Clear readable text

Screenshots
Screen Shot 2021-10-08 at 11 36 25 AM

Desktop (please complete the following information):

  • OS: iOS
  • Browser: chrome

Additional context

invariant-ts throws either way

The check for target network validity throws an error whatever the condition

It's not the expected behaviour of invariant. It doesn't affect execution but may be confusing to developers.

Happy path (Should log no error)
Screenshot 2022-02-12 at 15 54 22

Sad path:
Screenshot 2022-02-12 at 15 51 52

I guess we could at least leave a comment, but even better would be to check beforehand and do smth like


const validTargetNetwork = NETWORKS[targetNetwork] != null;
if (!validTargetNetwork) {
  invariant.error('Invalid target network: ', targetNetwork);
}

This way we'd not have false alarm

Gas price is not working

Describe the bug
Not showing the gas price correctly

To Reproduce

  1. Run app

Expected behavior
Show correct gas price

Screenshots
Screen Shot 2021-10-08 at 12 05 06 PM

Desktop (please complete the following information):

  • OS: iOS
  • Browser: chrome

Additional context

Address mismatch

Describe the bug
The addresses are not the same and incorrect in the wallet

To Reproduce
Steps to reproduce the behavior:

  1. run local chain
  2. log in with metamask
  3. use the wallet on the faucet

Expected behavior
The addresses to be the same

Screenshots
Screen Shot 2021-10-08 at 11 26 09 AM

Desktop (please complete the following information):

  • OS: iOS
  • Browser: chrome

Additional context

Gas showing a ?

Describe the bug
gas is showing a question mark

To Reproduce
Steps to reproduce the behavior:

  1. yarn start
  2. got to web page

Expected behavior
to show the gas price

Screenshots
If applicable, add screenshots to help explain your problem.
Screen Shot 2021-10-12 at 9 21 12 AM

Additional context
I am not sure how important it is to show the gas on localhost and local chain...

yarn install throws error at "gluegun": remote archive doesn't match the expected checksum

Describe the bug
Trying to install this repo using "yarn install", but an error is thrown and no node_modules are installed.

To Reproduce
Steps to reproduce the behavior:

  1. cmd> gh repo clone scaffold-eth/scaffold-eth-typescript
  2. cmd> yarn install
  3. See error: "gluegun@... The remote archive doesn't match the expected checksum"
โžค YN0000: โ”‚ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
โžค YN0000: โ”” Completed in 0s 320ms
โžค YN0000: โ”Œ Fetch step
โžค YN0013: โ”‚ yargs@npm:4.8.1 can't be found in the cache and will be fetched from the remote registry
โžค YN0013: โ”‚ yn@npm:3.1.1 can't be found in the cache and will be fetched from the remote registry
โžค YN0013: โ”‚ yocto-queue@npm:0.1.0 can't be found in the cache and will be fetched from the remote registry
โžค YN0013: โ”‚ zod@npm:3.11.6 can't be found in the cache and will be fetched from the remote registry
โžค YN0013: โ”‚ gluegun@https://github.com/edgeandnode/gluegun.git#commit=b34b9003d7bf556836da41b57ef36eb21570620a can't be
โžค YN0018: โ”‚ gluegun@https://github.com/edgeandnode/gluegun.git#commit=b34b9003d7bf556836da41b57ef36eb21570620a: The remote archive doesn't match the expected checksum
โžค YN0000: โ”” Completed in 46s 682ms
โžค YN0000: Failed with errors in 47s 8ms

Expected behavior
Installation using [email protected] should complete without errors and node_modules should be downloaded and built correctly.

Screenshots
See attached screenshot.
scaffold-eth-typescript-yarn-install-error-2022-02-18_7-24-13

Desktop (please complete the following information):

  • OS: Windows 11 Pro
  • Terminal: cmd.exe as Administrator
  • Browser: n/a
  • Version: 21H2 (build 22000.527)

Smartphone (please complete the following information):
n/a

Additional context
Also attempted in Windows PowerShell as a regular user (non-Administrator), but same failure.

command not found: mustache

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Clone repo
  2. Run yarn chain
  3. Run yarn deploy-and-graph
  4. See error

Expected behavior
Shouldn't throw error

I guess it need to tell which package/CLI install on this repo or install globally with npm/yarn

walletconnect doesn't reset on logout

Using the release branch with commit b0efc7e

Deployed contract on rinkeby.

  1. Open App, Open Web3 Modal
  2. Choose WalletConnect, scan QR code from phone's metamask
  3. Logout
  4. Open Web3 Modal, choose WalletConnect

Now, instead of the QR Code window appearing, it directly reconnects to the previously connected account (the phone's metamask)

At least, it appears to be that way. Upon logging out again, I see:

Screenshot 2022-02-27 at 23 21 42

Upon Login + choose WalletConnect, I see:

Screenshot 2022-02-27 at 23 24 09

DAI contract not showing up

Describe the bug
Mainnet DAI not showing

To Reproduce
Steps to reproduce the behavior:

  1. run the app

Expected behavior
The DAI contract should show

Screenshots
Screen Shot 2021-10-08 at 11 31 56 AM

Desktop (please complete the following information):

  • OS: iOS
  • Browser: chrome

Additional context

Currently walletconnect uses web3-provider-engine that has mixed imports

need to find a solution for building mixed es6 and commonjs files due to web3-provider-engine.

See:

Notes:

Shravan, [04.10.21 16:42]
looks like the web3-provider-engine is a problem in many places

Shravan, [04.10.21 16:42]
portis-project/web-sdk#75

Shravan, [04.10.21 16:42]
WalletConnect/walletconnect-monorepo#310

Shravan, [04.10.21 16:42]
aragon/use-wallet#73

Shravan, [04.10.21 16:43]
i think it impacts webpack 5 as well. mostly because walletconnect depends on web3-provider-engine and its not maintained

Shravan, [04.10.21 16:46]
i think the solution is to use esm imports for any external providers like wallet connect, portis etc

Update .gitignore for hardhat generated files

When I was updating the challenges with eth-hooks-v4, I noticed that all of my hardhat generated files were being added as modified files in my git changes.

I think we want to exclude everything in packages/hardat-ts/generated

The accounts script does not show the address balance

Describe the bug
The output of the accounts script always shows 0 for the account balance

To Reproduce
Steps to reproduce the behavior:

  1. Generate a deployer account with yarn generate
  2. Fund it
  3. Run yarn accounts
  4. Look at the output of the command, the balance shows 0

Expected behavior
The balance should reflect the actual balance of each network

Packages that use common js fail at run time

Describe the bug
I added the ipfs-http-client package, and when running yarn start there's an error trying to load electron. If you look at that stack trace, the package has a dependency that tries to load electron via require.

To Reproduce
Steps to reproduce the behavior:

  1. Checkout this branch: https://github.com/scaffold-eth/scaffold-eth-typescript-challenges/tree/challenge-0-simple-nft
  2. Run yarn & yarn start

Expected behavior
Packages that use common js shouldn't cause a runtime failure

Additional context
I tried configuring @originjs/vite-plugin-commonjs, but I still had the same error

Error: Invariant failed: You should not use <Link> outside a <Router>

i cloned the repo ( "version": "0.1.0-beta02" )

  • yarn
  • yarn start
  • yarn chain

Im getting following error on localhost

Uhoh! There was an error!
Error: Invariant failed: You should not use outside a
at invariant (http://localhost:3000/node_modules/.vite/chunk-53OEHZQQ.js?v=68700035:11:9)
at http://localhost:3000/node_modules/.vite/react-router-dom.js?v=68700035:2039:24
at updateContextConsumer (http://localhost:3000/node_modules/.vite/chunk-KSPOQUED.js?v=68700035:13792:27)
at beginWork (http://localhost:3000

...

ost:3000/node_modules/.vite/chunk-KSPOQUED.js?v=68700035:3671:22)
at Object.invokeGuardedCallbackDev (http://localhost:3000/node_modules/.vite/chunk-KSPOQUED.js?v=68700035:3696:24)
at invokeGuardedCallback (http://localhost:3000/node_modules/.vite/chunk-KSPOQUED.js?v=68700035:3730:39)
at beginWork$1 (http://localhost:3000/node_modules/.vite/chunk-KSPOQUED.js?v=68700035:17077:15)
at performUnitOfWork (http://localhost:3000/node_modules/.vite/chunk-KSPOQUED.js?v=68700035:16305:20)
at workLoopSync (http://localhost:3000/node_modules/.vite/chunk-KSPOQUED.js?v=68700035:16259:13)

Problem is with vite version 2.6.12, upgraded it to 2.6.14 ( latest one ), after upgrading it is showing blank screen some other issues with node modules

Frontend Deployment: cannot connect wallet in production-bundled app

After successfully running the app deployed on rinkeby from localhost, I deploy to surge but can't connect the wallet.

The web3 modal does not open, there are errors in the console:

Screenshot 2022-01-17 at 03 32 57

What I gather is that the app tries to retrieve the chainId with a call to localhost:8545, even though it is configured with the targetNetwork rinkeby:

Screenshot 2022-01-17 at 03 37 17

Screenshot 2022-01-17 at 03 35 54

Vite app won't start

I've performed a clean walkthrough of the getting started steps with the latest from release (0.2.0).

install, chain, contracts:build, deploy, start

Vite-app won't start at all.

Browser just loading with an empty page

Vite output:

Screenshot 2022-02-12 at 11 34 34

No output at all in the browser console

Improvements from LF Grow hackathon

add networks to hardhat.ts, network.ts

  • maybe make a common project that's a lib for shared models
  • make it easy to make tabs, menu and remove your contract
  • remove main menu
  • rename contractsConnector.config. to appContracts.config
  • contractConnectorConfig, udpate abi example
     LENS_HUB: createConnectorForExternalAbi(
         'LENS_HUB',
         {
           [TARGET_NETWORK_INFO.chainId]: {
             address: '0x7c86e2a63941442462cce73EcA9F07F4Ad023261',
             chainId: TARGET_NETWORK_INFO.chainId,
           },
         },
         abi
       ),
     } as const;	
  • what is tuple vars? and how do we show contract data fo rit
  • i've changed yarn contract build
  • change matic gas price
  • load tasks from the tasks folder
     (<if (!process.env.SKIP_LOAD) {
     	glob.sync('./tasks/**/*.ts').forEach(function (file) {
         require(path.resolve(file));
       });
     }>)	
  • turn on esModuleInterop in hardhat-ts
  • update lint for tasks
  • rename connector config to appContracts.config
  • notes and updates on external contract abi loading
  • add tenderly to hardhat
  • add vite plugin checker !important
  • add hardhat faucet
  • moved the refactored tasks
  • add shx to hardhat, well the whole app
  • hardhat compiling needs a tag
  • remove console.log from deployment GitHub - wighawag/hardhat-preprocessor: An hardhat plugin to pre-process contract source code before compilation
  • hardhat

๐Ÿ—บ Epic: Path to typescript scaffold-eth with packages eth-hooks, eth-components, eth-contract-warehouse

Path to npm packages & typescript

This project will be used to coordinate the path to typescript npm packages

  • eth-components
  • eth-hooks
  • eth-contract-warehouse

Current Milestones

eth-components v1

Moving things into library: everything stays the same for max compatibility. use typescript.

eth-hooks v2

Already released, typescript. continue some basic testing and bug fixes

Using React Context: eth-hooks v3 and eth-components v3

Initial changes for context

eth-components v2: a context via react-web3 to pass around the ethers provider
eth-hooks v3: a context via react-web3 to pass around the ethers provider. Modify tests and add more tests

Unit testing eth-hooks

scaffold-eth-typescript context

issue with web3modal contructor

Uhoh! There was an error!
TypeError: import_web3modal.default is not a constructor
    at EthersModalConnector.loadCore (http://localhost:3000/node_modules/.vite/chunk-LNEPW6E3.js?v=08d3923f:314:43)
    at autoConnectToBurner (http://localhost:3000/src/components/main/hooks/useScaffoldAppProviders.ts:44:19)
    at http://localhost:3000/src/components/main/hooks/useScaffoldAppProviders.ts:59:19
    at invokePassiveEffectCre

...

/.vite/chunk-RJUD5BXP.js?v=08d3923f:3671:22)
    at Object.invokeGuardedCallbackDev (http://localhost:3000/node_modules/.vite/chunk-RJUD5BXP.js?v=08d3923f:3696:24)
    at invokeGuardedCallback (http://localhost:3000/node_modules/.vite/chunk-RJUD5BXP.js?v=08d3923f:3730:39)
    at flushPassiveEffectsImpl (http://localhost:3000/node_modules/.vite/chunk-RJUD5BXP.js?v=08d3923f:16819:17)
    at unstable_runWithPriority (http://localhost:3000/node_modules/.vite/chunk-RJUD5BXP.js?v=08d3923f:346:20)
    at runWithPriority$1 (http://localhost:3000/node_modules/.vite/chunk-RJUD5BXP.js?v=08d3923f:8468:18)

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.