Coder Social home page Coder Social logo

maybe-finance / maybe Goto Github PK

View Code? Open in Web Editor NEW
26.7K 139.0 2.0K 1001 KB

The OS for your personal finances

Home Page: https://maybe.co

License: GNU Affero General Public License v3.0

Dockerfile 0.82% JavaScript 10.66% CSS 0.45% HTML 32.87% Shell 0.38% Ruby 54.82%
finance personal-finance postgresql hotwire ruby ruby-on-rails stimulusjs turbo

maybe's People

Contributors

adrienpoly avatar corsonknowles avatar crolla97 avatar dependabot[bot] avatar dwightwatson avatar jakubkottnauer avatar josefarias avatar joshantbrown avatar juanvqz avatar kiliczsh avatar konnorrogers avatar leemcalilly avatar mattia-malnis avatar mikekosulin avatar mohamedhalat avatar nshki avatar pieterbeulque avatar pmareke avatar portovep avatar ricsdeol avatar rmarescu avatar robzolkos avatar sarvaiyanidhi avatar sergey-tyan avatar shpigford avatar sriram2520 avatar tabertantrum avatar thibautgrx avatar yuler avatar zachgoll 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

maybe's Issues

Get app to buildable state

Currently the app can't be successfully built.

Originally you'd run the following to get things moving...

cp .env.example .env
yarn install
yarn prisma:migrate:dev
yarn prisma:seed
yarn dev

Current roadblock happens when running yarn prisma:migrate:dev:

Error: P3006

Migration `20211203180216_security_pricing` failed to apply cleanly to the shadow database. 
Error:
db error: ERROR: extension "timescaledb" is not available
DETAIL: Could not open extension control file "/Applications/Postgres.app/Contents/Versions/15/share/postgresql/extension/timescaledb.control": No such file or directory.
HINT: The extension must first be installed on the system where PostgreSQL is running.
   0: migration_core::state::DevDiagnostic
             at migration-engine/core/src/state.rs:264

Theoretically this should be addressed in Docker, but not sure how to debug further.

Add Teller as primary bank connector option along with Plaid/Finicity

The original app made extensive use of Plaid + Finicity for bank data. Unfortunately they both require enterprise contracts to make use of.

A much more human-friendly alternative is Teller. While they don't offer quite as much coverage on the bank connection front (yet), they do offer billing that's essentially free for a single user. So, this is likely the best option for a personal finance app like this that someone may run just for themselves.

https://teller.io

We have the general concept/framework of multiple data providers already in the app where data from each gets cleaned up and distilled in to more common tables.

This project would mean adding Teller as another data provider and ultimately using whichever provider there are API keys for.

Ultimately this sets the stage for adding any data provider down the road (though that specifically is outside the scope of this).

This particular issue is about getting a banking provider added ASAP so Maybe can have utility without needing Plaid/Finicity accounts.

Rough deliverables:

  1. Institution listing (for use in Institution search) โ€” This needs to automatically update as Teller adds support for new institutions.
  2. Abstracting bank connections away from user accounts โ€” Right now we've got hard-coded columns for Plaid/Finicity. We need to pull those out with the goal of users ultimately being able to add many different connectors.
  3. Checking account support
  4. Savings accounts support
  5. Investment account support
  6. Remove any current blocking dependencies of Plaid/Finicity โ€” I think we've got some code in there that still relies on data sourcing from Plaid/Finicity
  7. Readme user instructions on adding Teller support (presumably just via an .env variable API key)

Note about the bounty

I've added a $500 bounty on this but want to be clear: this is a very complex task that may very well require multiple people working together on it.

We won't outright assign this issue to anyone at this point and depending on the number of people involved, there's a decent chance we'll split the bounty between contributors.

EDIT: Teller (@stevegraham) has committed another $500 to this, bringing to total to $1000!

Migrate from Webpack to Vite

Is your feature request related to a problem? Please describe.
No.

Describe the solution you'd like
Update NX to use vite instead of webpack

Describe alternatives you've considered
I guess an alternative would be esbuild? I have less direct experience with other bundlers. Open to suggestions.

Additional context
Migrating here should improve the build time considerably. We made the shift at work and it saved us tons of time. This could be a good early improvement.

Remove ConvertKit

We previously used ConvertKit for newsletters and users could subscribe from within the app.

We need to remove all mention/usage of ConvertKit as well as "newsletter subscription" functionality/UI.

Unable to create account

I have cloned the latest repository, set the NEXTAUTH_SECRET, and followed the commands given on https://github.com/maybe-finance/maybe?tab=readme-ov-file#building-the-app

these are the following errors i have encountered

image
image

along with that, i am also unable to make account on it, it works till sign up, takes in all the details and then gives out this error

image

these are my server specifications

AWS server
ubuntu 20.04
intel cpu

all ports are open but still was inaccessible directly through the ip so used ssh tunneling to access it using localhost

Date inputs should respect users date format

Is your feature request related to a problem? Please describe.
I struggled to finish the onboarding process since I was entering my birthdate as DD/MM/YYYY instead of the MM/DD/YYYY it was expecting. I also didn't receive any validation errors and was able to continue onto the next question in the form.

Describe the solution you'd like
Date inputs should respect the users local format for dates. Some countries like the US have month first, and others such as Australia have the date first.

Additionally, the birthdate question in the on-boarding form should not let you continue if you've entered an invalid birthdate.

Maybe Card download returns an empty file

When you try to download the Maybe Card for your profile, an empty .png with size 0 kb file is downloaded. This happens both when it is shown for the first time after creating the profile and when you try to download it from the settings page.

Current build from commit 447f598 fails at yarn install

Current build from commit 447f598 fails at yarn install, lots of warnings given and critically fails here when trying to download Cypress.

Yarn version 1.22.21

Exit code: 1
Command: node index.js --exec install
Arguments:
Directory: ....
Output:
Installing Cypress (version: 12.3.0)
URL: https://download.cypress.io/desktop/12.3.0?platform=win32&arch=x64
Error: Corrupted download

Expected downloaded file to have checksum: cc3a12a75acefc49263589d63e8a815d833c8ecaae3ffce5dffb7ea32a3c6b1216358962682f7280bf1c745862446c62dd812a3d76d56f373e919c1e876f91cf
Computed checksum: 08fb9790b9705d3ebcb325a0d2aba26cc66d0b850ffb3a7329c5746de42c63c9e31c320256ff62fc0a0402b5447034af990af09eeed98ca98359176b1f9c1fba

Expected downloaded file to have size: 179037094
Computed size: 171718440

Internet connection is fine. Download always fails and anti-virus is down to allow install/stop it interferring.

General Yarn Install Failures and `yarn.lock` Issues on First Attempt on Ubuntu 22.04

Issue Description

Describe the bug

Running yarn install for the first time after cloning the repository results in installation failures. The errors range from generic "failed with errors" messages to specific issues like @babel/runtime@npm:^7.20.13: No candidates found. The resolution involved actions with the yarn.lock file, suggesting potential issues with outdated packages or dependencies that may no longer be available or compatible. This was specifically observed on Ubuntu 22.04 but could also affect other systems.

To Reproduce

Steps to reproduce the behavior:

  1. Clone the repository to a system running Ubuntu 22.04.
  2. Run yarn install in the project directory.
  3. Encounter an installation failure with errors, which may not explicitly mention yarn.lock.
  4. The specific error for @babel/runtime suggests an issue with resolving the correct package version.
  5. Delete the existing yarn.lock file.
  6. Create a new, empty yarn.lock file.
  7. Run yarn install again, which completes successfully after these steps.

Expected behavior

yarn install should run without issues on the first attempt after cloning the repository, without needing to manipulate the yarn.lock file.

Screenshots

Screenshot from 2024-01-17 17-10-40

Screenshot from 2024-01-17 17-10-53

Screenshot from 2024-01-17 17-11-01

Screenshot from 2024-01-17 17-11-19

Screenshot from 2024-01-17 17-11-29

Desktop:

  • OS: Ubuntu
  • Version: 22.04

Additional context

This issue might not be isolated to Ubuntu 22.04 and could potentially affect other operating systems and development environments. The problem was encountered using Yarn version 4.0.2. To provide immediate assistance to other contributors who might encounter similar problems, I am willing to create a pull request to update the README with a set of temporary instructions. These instructions will guide developers on how to handle the yarn.lock file if they face similar errors, ensuring a smoother initial setup process until a more permanent solution is implemented.

Remove location limitation

As referenced in #60, we need to remove the blocker for folks outside the US.

When we built Maybe we offered financial advice and as such had a LOT more regulatory stuff to account for. So, that just meant we couldn't support non-US folks.
...
The problem will still be that we have to add data sources for folks outside North America, but otherwise you should still be able to actually create an account and manually add stuff.

There are some checks during signup/onboarding where it asks for location and then if you don't select United States it shows you a message about not being supported.

We need to remove that so there's no "location" limitation.

Manually input + automatically track US stocks

Currently we have the ability to manually enter the value of any asset (and then you can manually add updated values).

What need to add support for is entering a particular stock and then tracking the ongoing value of it.

For now, due to data sourcing, this would be restricted to the US stock market.

Data to input:

  1. Stock
  2. Number of shares
  3. Cost basis (optional)

This will be the basis for allowing users to import CSV files of their various holdings, but that specific functionality is outside the scope of this issue.

The backend essentially already supports this as we were importing this data via Plaid, but there's a current Issue to clean this up specifically for manual usage: #166

So, a lot of this (maybe most?) is essentially building the UI/UX to input the individual stocks.


Here's a rough mockup of potential UI.

CleanShot 2024-01-18 at 15 30 26@2x

  1. Select an existing manual investment account (or create a new one).
  2. Enter a stock symbol (though should probably pull from a database list of these so you can't just enter any random string)
  3. Set the purchase date, total purchase value (cost basis) and the number of shares

From there, Maybe would then track the value of that investment automatically.

Deliverables:

  1. UI for adding a manual investment account โ€” Would use the existing "Investment" block in the modal, where you'd either pick an existing account or add a new one.
  2. UI for adding the stock โ€” Should be a "search to select" UI for pulling from stock listing (Database: Security)
  3. Creating the appropriate "transaction" for adding the stock.
  4. UI for removing/selling the stock
  5. Create the appropriate "transaction" for removing the stock.

Bounty

There is a $250 bounty for this.

Add global support to real estate addition

CleanShot 2024-01-16 at 09 41 22@2x

Currently the "Add real estate" modal is locked to the US, but there's no functional reason to keep it this way.

We should allow any country via a dropdown listing of all countries.

Create a "setup" script

In an effort to make it as easy as possible to get up and running with Maybe, we should have a "setup" script to run.

I'm not attached to any specific method for that (and realistically don't have a lot of experience in this area), so open to suggestions.

The big things that need to happen are around database setup, specifically with rails db:setup and :migrate and then creating a read-only role.

After database setup, a read-only ai_user needs to be created:

CREATE ROLE ai_user WITH LOGIN PASSWORD 'YOUR_UNIQUE_PASSWORD';

GRANT SELECT ON balances TO ai_user;
GRANT SELECT ON accounts TO ai_user;
GRANT SELECT ON connections TO ai_user;
GRANT SELECT ON conversations TO ai_user;
GRANT SELECT ON holdings TO ai_user;
GRANT SELECT ON investment_transactions TO ai_user;
GRANT SELECT ON messages TO ai_user;
GRANT SELECT ON metrics TO ai_user;
GRANT SELECT ON securities TO ai_user;
GRANT SELECT ON security_prices TO ai_user;
GRANT SELECT ON transactions TO ai_user;

And then after that, READONLY_DATABASE_URL needs to be set to postgres://ai_user:YOUR_UNIQUE_PASSWORD@localhost/maybe_ai_development in the .env file.

Remove Auth0 references

Given we've now replaced Auth0, we should remove any references to it or unnecessary code.

The biggest thing there is likely the /auth0 directory.

Can not go to login page

Describe the bug
I was setup it step by step. And this app was started successfully. But when I open website, and press button "Admin login", it open an white page with error "Cannot GET /admin/login"

To Reproduce

  • Install step by step with guideline
  • Open website
  • Press button "Admin login"
    Expected behavior

Screenshots
image

image

Screenshot 2024-01-18 at 11 19 07

Desktop (please complete the following information):

  • OS: MacOS 13.1
  • Browser Microsoft Edge, Safari

Incongruent Server Responses: 204 on Client vs. 500 on Direct Access (Possible Axios Issue)

Issue Summary

API request from client returns 204 (No Content) status with undefined data, but the same request directly to the server URL results in a 500 status and an error message.

Environment

Operating System: Windows 10
Node.js Version: v20.9.0

Steps to Reproduce

  1. Start Development Server:

Execute yarn run dev to initiate the project's development server.

  1. Log in to the Application:

Successfully log in to the application using the provided credentials.

  1. Observe Error Message:

Upon entering the app after login, note the error message "Unable to load onboarding."

response

  1. Inspect Network Response:

Utilize browser developer tools to examine the network tab.
Locate the API request associated with the onboarding data.
Verify that the response status is 204 (No Content) and the data is undefined.

Client-side request:

Status: 204 No Content
Data: Undefined
client

Server-side request (direct):

Status: 500 Internal Server Error
server

Potential Causes

Axios configuration: Suspecting potential issue with Axios instance configuration.

Add privacy mode to toggle asset view

Description:
I propose adding an ๐Ÿ‘๏ธ icon to the dashboard interface, which will allow users to toggle the visibility of numerical data for enhanced privacy. When the icon is clicked, it should hide or reveal the numbers as per the user's preference.

Preferred flow:

  1. Create a new icon element with the ๐Ÿ‘๏ธ icon, positioning it appropriately within the dashboard.
  2. When the ๐Ÿ‘๏ธ icon is clicked, check the current visibility state of the numerical data. If it's visible, hide it; if it's hidden, display it.
  3. Icon's appearance changes to reflect its current functionality, such as changing the icon's color or style to indicate whether data is visible or hidden.
  4. Finally, it'd be nice to have some tooltips or labels for the icon to inform users about its purpose.

Adding the ๐Ÿ‘๏ธ icon is a user-friendly way to enhance privacy and control over displayed data. It ensures that users can easily manage their data visibility preferences, thereby improving the overall user experience of the dashboard.

How to contribute?

I think a lot of people would like to contribute to this project, including myself. Is there an established process to do so?

Unable to Register locally

Describe the bug
When I try to register an account I get the error:

Invalid `prisma.authUser.findUnique()` invocation: The table `public.auth_user` does not exist in the current database.

To Reproduce
Steps to reproduce the behavior:

  1. Git clone the repo
  2. Follow the instructions here https://github.com/maybe-finance/maybe?tab=readme-ov-file#building-the-app
  3. Visit http://localhost:4200/register
  4. See error

Expected behavior
Signing up succesfully

Screenshots
Screenshot from 2024-01-17 15-50-31

Desktop (please complete the following information):

  • OS: Ubuntu 23.04
  • Browser Chrome
  • Version 120.0.6099.216 (Official Build) (64-bit)

Additional context

event - compiled client and server successfully in 295 ms (2806 modules)
info: [job.active] Job{queue=sync-security id=repeat:5345ac4cff0751437f6fbbe527d36e4c:1705502700000 name=sync-all-securities ts=1705502556828 data={}} {"service":"BullQueueEventHandler"}
info: Starting a postgresql pool with 13 connections. {"service":"PrismaClient","target":"quaint::pooled","timestamp":"2024-01-17T14:45:00.024Z"}
error: 
Invalid `prisma.security.findMany()` invocation:


The table `public.security` does not exist in the current database. {"service":"PrismaClient","target":"security.findMany","timestamp":"2024-01-17T14:45:00.194Z"}
error: [job.failed] Job{queue=sync-security id=repeat:5345ac4cff0751437f6fbbe527d36e4c:1705502700000 name=sync-all-securities ts=1705502556828 data={}} {"error":{"clientVersion":"5.8.0","code":"P2021","meta":{"modelName":"Security","table":"public.security"},"name":"PrismaClientKnownRequestError"},"service":"BullQueueEventHandler"}
info: [job.active] Job{queue=sync-security id=repeat:5345ac4cff0751437f6fbbe527d36e4c:1705503000000 name=sync-all-securities ts=1705502700011 data={}} {"service":"BullQueueEventHandler"}

Remove Intercom

As you won't need Intercom to support yourself, we don't need those bits in the app.

Migrate from Yarn 1.x to pnpm

Is your feature request related to a problem? Please describe.
Yes. This repo is currently using an outdated package manager.

Describe the solution you'd like
Yarn Classic (1.x) is ~4ish years old and needs an upgrade. The purpose of this issue is to upgrade the workspace to explore using the pnpm package manager rather than Yarn 1.x

Describe alternatives you've considered
As of now, it's best to use Yarn 1.x. We can configure package.json to explicitly use the classic version of Yarn and add some documentation as to how developers can configure Yarn to use 1.x.

Additional context
pnpm home page

Show error and resend confirmation email if user unconfirmed

When a user creates an account, they're sent a link to 'confirm' their email address.

We currently allow them to access their account for 24 hours before confirming.

However, after that if they try to login and they haven't confirmed, then they won't be able to login and Devise doesn't show them an error.

So, we need to do two things...

  1. Show an error (for whatever reason, Devise doesn't or isn't triggering that)
  2. Automatically trigger send_confirmation_instructions on the user object so it resend the confirmation email

Suppress issues from missing NX_POSTMARK_API_TOKEN

When NX_POSTMARK_API_TOKEN is empty, an error is thrown:

error: uncaughtException: A valid API token must be provided.
PostmarkError: A valid API token must be provided.

We shouldn't require NX_POSTMARK_API_TOKEN and instead should just ignore any email sending when that token is missing.

Agnosticize banking imports

Right now we're pretty heavily tied to Plaid (as can be seen by multiple sidekiq jobs all having "plaid" in the name).

Ideally we create a system where we can have infinite number of connector modules (that the community itself can build as needed) that just tie in to the overall data importing/syncing system.

Is Ngrok required to develop?

I am seeing these errors when running locally without any Ngrok setup (I never set an auth token for ngrok).

Errors:

[ ready ] on http://localhost:4200
error: server: unhandled promise rejection: [object Promise]: Error: connect ECONNREFUSED ::1:4551
error: server: unhandled promise rejection: [object Promise]: Error: connect ECONNREFUSED ::1:4551
error: server: unhandled promise rejection: [object Promise]: Error: connect ECONNREFUSED ::1:4551

error: [default-express-handler] connect ECONNREFUSED ::1:4551 {"request":{"method":"POST","url":"/v1/plaid/sandbox/quick-add"},"stackTrace":"Error: connect ECONNREFUSED ::1:4551\n    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16)","user":"clrdtjey40000wizwzyb7hdxo"}

Remove LaunchDarkly/feature flags

We originally used LaunchDarkly for feature flag management. We need to remove that dependency as well as any feature-flagging functionality.

Centralize Postmark env variables to .env file

Postmark is already used pretty extensively throughout the app for email sending, however the environment variables for it are sprinkled all over the app.

We need to centralize all of those in to the main .env file and include them as part of setup.

We should be able to continue using it as the main email provider as they have a free plan (for up to 100 emails).

Remove Agreement flows from dashboard

The original version of Maybe provided financial advice via CFP/CFAs, which required us to collect acknowledgement of a few legal agreements.

This can be removed now since we won't be providing that specific service.

You're basically looking for anything that talks about agreements, signAgreement, newestAgreement, feeAgreement, agreementType and the database columns associated with all of that.

It may be hard to thoroughly remove all of this until #16 is complete (since you won't be able to actually go through onboarding or anything associated with that), but I'm not opposed to a first pass being taken at this knowing some bits may be missed initially.

Update tests to replace Auth0

The current tests use a lot of Auth0 helpers, we'll need to rip all of that out since we've moved to NextAuth. Guide here on how to set up cypress testing with NextAuth: Testing with Cypress

As part of this we should ensure there is some basic e2e test coverage for login and registration.

Add instructions for Ngrok usage

For development and for local self-hosting, we're defaulting to using Ngrok for HTTPS URLs (needed for basically any external data source).

We need to add instructions on how to set up an Ngrok account with a static domain and how to set the key + domain in .env.

Relevant discussion: #66

Can you get a tag for the pre open source version of the repository?

I'd like to see a tag added to the b500040 commit to represent the repository before any open source changes were added.

It's nice to come visit the repository at this point in the history to view the code as it was in production and to learn from what a SAAS codebase can look like.

Thanks!

Add forgot password flow

Auth0 previously provided this functionality. We'll need to do a few things to replace that, off the top of my head:

  • Update sign in page with "Forgot password?" link
  • Add forgot password UI to capture email and show confirmation once forgot password email is sent
  • UI for specifying new password after clicking link in forgot password email
  • Generate token and handle token validation for sending email and when user clicks on the link in the forgot password email
  • Update server for handling sending the emails

This is low priority for right now.

Convert Sidekiq to GoodJob + ActiveJob

In an effort to reduce dependencies and make it as easy as possible to get up and running, we should convert Sidekiq usage to GoodJob (through ActiveJob).

This will remove the need for Redis AND make cron/tim-based background jobs much easier.

DatePicker.spec.tsx 'should be able to open modal and select a date' test failing because of faulty test setup.

Describe the bug
Test failure. Probably something with the test setup because component works perfectly otherwise. This is the only test that fails in the design-system project.

To Reproduce
Steps to reproduce the behavior:

Run yarn jest /libs/design-system/src/lib/DatePicker/DatePicker.spec.tsx

Expected behavior
Test failure.

Screenshots
image

Desktop (please complete the following information):

  • OS: Ubuntu 22.04

Remove Feedback buttons

There are a couple of components that can be removed as we don't need "native" feedback buttons at this stage.

I think it's only FeedbackDialog and FeedbackButton (and any mention of them), but would love someone who's more versed in React to dig through it and make sure there's nothing else obvious.

This includes removing NEXT_PUBLIC_ZAPIER_FEEDBACK_HOOK_URL from the .env.example file as it will no longer be needed either.

Remove "Advisor' functionality

Part of Maybe's original product offering included being able to work directly with a CFP/CFA. We built an entire UI for the Advisor side as well as a whole section of the user-facing app for asking questions and conversing with your advisor.

That's not necessary at this point, so we can remove those elements.

Things that likely need to be removed...

  1. /apps/advisor โ€” This is the advisor admin panel
  2. Database tables: advisor, conversation, conversation_advisor, conversation_note, message
  3. Configuration elements (such as ones that launch the advisor service)

Remove AWS dependencies

There are slew of AWS-specific bits...so many that I honestly don't recall what all they were used for. But ultimately we need to make this platform-agnostic so that AWS isn't a requirement.

How to track my stock portfolio

I just cloned the repo and launched the app.
I cannot understand how to add stocks to track my portfolio.
Is that feasible? Or does it only work with US institution integrations?
( I live in the UK, I want to manually add my stocks and just track their prices for my portfolio net worth )

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.