GithubHelp home page GithubHelp logo

prisma / dataguide Goto Github PK

View Code? Open in Web Editor NEW
147.0 147.0 46.0 74.62 MB

🗄️ Prisma's Data Guide - A growing library of articles focused on making databases more approachable.

Home Page: https://www.prisma.io/dataguide/

License: Apache License 2.0

JavaScript 1.29% TypeScript 12.38% CSS 0.35% Shell 0.01% MDX 85.97%
database mysql postgresql prisma

dataguide's Introduction

Prisma

Prisma

Discord

Quickstart   •   Website   •   Docs   •   Examples   •   Blog   •   Discord   •   Twitter

What is Prisma?

Prisma is a next-generation ORM that consists of these tools:

  • Prisma Client: Auto-generated and type-safe query builder for Node.js & TypeScript
  • Prisma Migrate: Declarative data modeling & migration system
  • Prisma Studio: GUI to view and edit data in your database

Prisma Client can be used in any Node.js or TypeScript backend application (including serverless applications and microservices). This can be a REST API, a GraphQL API, a gRPC API, or anything else that needs a database.

The Prisma ORM can also further be extended with these Prisma products:

Getting started

The fastest way to get started with Prisma is by following the Quickstart (5 min).

The Quickstart is based on a preconfigured SQLite database. You can also get started with your own database (PostgreSQL and MySQL) by following one of these guides:

How Prisma works

This section provides a high-level overview of how Prisma works and its most important technical components. For a more thorough introduction, visit the Prisma documentation.

The Prisma schema

Every project that uses a tool from the Prisma toolkit starts with a Prisma schema file. The Prisma schema allows developers to define their application models in an intuitive data modeling language. It also contains the connection to a database and defines a generator:

// Data source
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

// Generator
generator client {
  provider = "prisma-client-js"
}

// Data model
model Post {
  id        Int     @id @default(autoincrement())
  title     String
  content   String?
  published Boolean @default(false)
  author    User?   @relation(fields:  [authorId], references: [id])
  authorId  Int?
}

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
  posts Post[]
}

In this schema, you configure three things:

  • Data source: Specifies your database connection (via an environment variable)
  • Generator: Indicates that you want to generate Prisma Client
  • Data model: Defines your application models

The Prisma data model

On this page, the focus is on the data model. You can learn more about Data sources and Generators on the respective docs pages.

Functions of Prisma models

The data model is a collection of models. A model has two major functions:

  • Represent a table in the underlying database
  • Provide the foundation for the queries in the Prisma Client API

Getting a data model

There are two major workflows for "getting" a data model into your Prisma schema:

  • Generate the data model from introspecting a database
  • Manually writing the data model and mapping it to the database with Prisma Migrate

Once the data model is defined, you can generate Prisma Client which will expose CRUD and more queries for the defined models. If you're using TypeScript, you'll get full type-safety for all queries (even when only retrieving the subsets of a model's fields).


Accessing your database with Prisma Client

Generating Prisma Client

The first step when using Prisma Client is installing its npm package:

npm install @prisma/client

Note that the installation of this package invokes the prisma generate command which reads your Prisma schema and generates the Prisma Client code. The code will be located in node_modules/.prisma/client, which is exported by node_modules/@prisma/client/index.d.ts.

After you change your data model, you'll need to manually re-generate Prisma Client to ensure the code inside node_modules/.prisma/client gets updated:

npx prisma generate

Refer to the documentation for more information about "generating the Prisma client".

Using Prisma Client to send queries to your database

Once the Prisma Client is generated, you can import it in your code and send queries to your database. This is what the setup code looks like.

Import and instantiate Prisma Client

You can import and instantiate Prisma Client as follows:

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

or

const { PrismaClient } = require('@prisma/client')

const prisma = new PrismaClient()

Now you can start sending queries via the generated Prisma Client API, here are a few sample queries. Note that all Prisma Client queries return plain old JavaScript objects.

Learn more about the available operations in the Prisma Client docs or watch this demo video (2 min).

Retrieve all User records from the database
// Run inside `async` function
const allUsers = await prisma.user.findMany()
Include the posts relation on each returned User object
// Run inside `async` function
const allUsers = await prisma.user.findMany({
  include: { posts: true },
})
Filter all Post records that contain "prisma"
// Run inside `async` function
const filteredPosts = await prisma.post.findMany({
  where: {
    OR: [{ title: { contains: 'prisma' } }, { content: { contains: 'prisma' } }],
  },
})
Create a new User and a new Post record in the same query
// Run inside `async` function
const user = await prisma.user.create({
  data: {
    name: 'Alice',
    email: '[email protected]',
    posts: {
      create: { title: 'Join us for Prisma Day 2021' },
    },
  },
})
Update an existing Post record
// Run inside `async` function
const post = await prisma.post.update({
  where: { id: 42 },
  data: { published: true },
})

Usage with TypeScript

Note that when using TypeScript, the result of this query will be statically typed so that you can't accidentally access a property that doesn't exist (and any typos are caught at compile-time). Learn more about leveraging Prisma Client's generated types on the Advanced usage of generated types page in the docs.

Community

Prisma has a large and supportive community of enthusiastic application developers. You can join us on Discord and here on GitHub.

Security

If you have a security issue to report, please contact us at [email protected].

Support

Ask a question about Prisma

You can ask questions and initiate discussions about Prisma-related topics in the prisma repository on GitHub.

👉 Ask a question

Create a bug report for Prisma

If you see an error message or run into an issue, please make sure to create a bug report! You can find best practices for creating bug reports (like including additional debugging output) in the docs.

👉 Create bug report

Submit a feature request

If Prisma currently doesn't have a certain feature, be sure to check out the roadmap to see if this is already planned for the future.

If the feature on the roadmap is linked to a GitHub issue, please make sure to leave a 👍 reaction on the issue and ideally a comment with your thoughts about the feature!

👉 Submit feature request

Contributing

Refer to our contribution guidelines and Code of Conduct for contributors.

Tests Status

  • Prisma Tests Status:
    Prisma Tests Status
  • Ecosystem Tests Status:
    Ecosystem Tests Status

dataguide's People

Contributors

0xflotus avatar 2color avatar alex-emerich avatar carlagn avatar chenkie avatar dependabot[bot] avatar dmfay avatar etelsv avatar github-actions[bot] avatar hrescak avatar imchairmanm avatar janpio avatar jharrell avatar jolg42 avatar matthewmueller avatar meletj avatar michrome avatar mlafeldt avatar mrbeatus avatar mzkrasner avatar nikolasburk avatar nilubava avatar ontouchstart avatar petradonka avatar ruheni avatar seanbruce avatar sridhardnesh avatar tbarn avatar tmvnkr avatar yossisp 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

dataguide's Issues

Nesting in main index.mdx file

Currently, the main landing page for the Data Guide (https://dataguide.prisma.io/ / https://github.com/prisma/dataguide/blob/master/content/index.mdx) uses full-width blocks to represent each article. The <subsection> component provides great article nesting within the sidebar of the Data Guide, allowing you to create "container" sections which contain articles:

Screenshot from 2020-08-11 11-11-14

I'd like to be able to display those container sections on the main landing page with their child pages "nested" visually underneath. Right now, I'm faking it by manually adding tab characters and bullet points to the links that represent child pages using HTML entities, but it doesn't feel like a clean solution:

Screenshot from 2020-08-11 11-11-35

It'd be great to have a solution for this that allows me to just apply styling or something else to get that nesting behavior on the main page.

Create redirect for user authentication article

I restructured some of the content in the data guide a few weeks back, which lead to some links breaking.
I'm pretty sure only one article had its URL changed however.

The original link: https://dataguide.prisma.io/postgresql/configuring-user-authentication
The new link: https://dataguide.prisma.io/postgresql/authentication-and-authorization/configuring-user-authentication

The original link was a redirect target of https://www.prisma.io/tutorials/postgres-configuring-user-authentication-db06

SEO updates for intro to serverless article

Hey there @mrbeatus and @mkrasne2,

This was an article we published last week that we figured could use an SEO audit to get it up to snuff. Would you mind creating a PR with the changes we should make?

Here's the article:

Let me know if you have any questions. Thanks!

Content focused on TLS/SSL and transport encryption

As per a discussion in Slack, it would be helpful for us to get some more content up focusing on securing connections. We would probably want to tackle this in a few different ways. This issue is going to be a bit of a brain dump to try to plan out the best approach to getting started.

To start off with, it's important to get implementation-specific guides up on setting up SSL for various databases. I'd suggest prioritizing PostgreSQL, followed by MySQL and MongoDB.

These topics have a tendency to get a bit muddled due some decisions you have to make in how to approach the topics. For example:

  • How much you want to involve certificate acquisition in the procedure? Do you assume the user has the SSL assets already or do we cover instances where users generate their own internal CA for their infrastructure, rely on a project like Let's Encrypt, or purchase certificates issued by a commercial public CA?
  • Are we using the SSL assets for encryption and server identity validation only? Are we trying to also implement certificate based client authentication as well? These are topics we should leave open for later expansion but may not necessarily be in scope for the initial push.
  • Currently most of the implementation-specific documentation is focused around interactions between a single server and a client. Scaling the server side out horizontally or setting up replication means additional surface area that needs SSL protection. These sometimes have entirely different parameters, etc. for securing these connections. Do we cover them initially (without the background articles on actually setting up these scaled out infrastructures)?

We should think through some of these things before getting started. I personally prefer to get the most basic guides up quicker by prioritizing simple setups with reasonable assumptions, narrowly defined goals, etc. We also might need database-agnostic companion content to cover the general strategies and considerations you need to make when setting all of this up. An advantage of this is that we could use these "generic" articles to compile links to articles covering specific implementation details as we write them.

Differentiate styling between table of contents and subsections

Both the toc front matter property and the <Subsection /> component automatically generate lists of links (which is soooooo so nice! 😄). The styling however, is currently very similar.

Since I will likely use both of these features extensively, it would be nice to have some visual differentiation between them. Currently, the table of contents links can be quite an intimidating eye full when there are a lot of sections in the article, so maybe we try to soften or integrate it with the page more as a way of achieving that? Just a thought!

Change default code block behavior for the Data Guide to remove line numbers

Currently, the Data Guide site automatically renders line numbers for any markdown code block. This is an awesome feature when working with files, but does not always match the context for Data Guide content.

There is already a code block property available (bash-symbol) to replace the line numbers with the $ symbol for terminal commands. This works great for many command line representations, but there are still scenarios where neither the $ sign nor line numbers are appropriate:

  • When we have a command that spans multiple visual lines (usually we use a \ at the end of the line to indicate that the command continues on the next line, but the rendering would also draw a new $ symbol on the next line, indicating a new command)
  • When we need a root prompt (#) instead of a regular user prompt
  • When we need to display command line output
  • When we need to display non-shell sessions, like psql or mysql input and output
  • When we are only displaying the relevant, truncated part of a file (the line numbers would conflict with the actual line numbers in the file. This is most relevant when editing values in long configuration files, like the mysql.conf file)

The Data Guide docs will likely contain a greater percentage of command line and non-file code blocks than most of the other docs we maintain. It would be helpful to be able to choose contexts where line numbers would be rendered for this site to avoid cases where they're not appropriate while still having the feature available for relevant cases.

Move authorship info to a separate file like the blog

Currently, we have an authorship component (AuthorInfo) that is used to format information about the author that we manually place at the end of articles. At the moment, we're only using that for the data modeling section, as seen here:

https://raw.githubusercontent.com/prisma/dataguide/main/content/02-datamodeling/01-intro-dont-panic.mdx
(rendered here: https://www.prisma.io/dataguide/datamodeling/intro-dont-panic)

Since we're hoping to add this info to all articles moving forward, we'd like to extract the bio, author name, etc. to a separate file and call out the correct author in the front matter, much like we do in the blog with the authors.json file. This would help us maintain consistent authorship information across articles instead of having to update each article if we need to change part of it later.

Using Dian's current info as a template, it'd be nice to at least have fields for the author's name, a bio, and a photo. Other items that are present in the blog's version (like social links) would also be welcome to add flexibility.

SEO updates for serverless comparison article

Hey there @mrbeatus and @mkrasne2,

Here's another serverless article that we recently published. Would love to get your thoughts on SEO improvements. Would you mind creating a PR with the changes we should make?

Here's the article:

Published version: https://www.prisma.io/dataguide/serverless/serverless-comparison
Source file: https://github.com/prisma/dataguide/blob/main/content/11-serverless/02-serverless-comparison.mdx
Let me know if you have any questions. Thanks!

MVP for terminology component in glossaries to allow anchor links

Currently, we have two glossaries in the data guide (Glossary of common database terminology and Serverless Glossary). At the moment, we're formatting each term on the page using manual HTML. This works okay, but is not ideal.

It'd be great to have a custom component for this for a few reasons. The first is to simplify the process to remove the requirement to use HTML directly. The second, and more important reason in my opinion, is that without a custom component, we currently cannot add anchors to individual terms. Any anchors we manually add to the HTML are stripped out in the process of rendering the file, so right now, we cannot link directly to individual terms from other pages.

So as an MVP for terms in the glossary, it'd be great to just get anything that'd allow us to add anchor links to our terms and help us ensure that each term is rendered consistently.

Ability to easily add a small border or shadow around images

Some of images we in the articles have backgrounds that kind of blend into the background of the article. This isn't a big deal in most cases, but when they're text heavy images, it can start to interfere with the way the page reads since it's difficult to tell what is part of the image and what is part of the page's text. There's a good example of that here.

It would be great to be able to use styling to easily make these stand out a bit more without having to edit the images themselves. I could see it being an optional component that can be applied ad-hoc to images that suffer from this problem, or a more uniform solution that changes the styling to avoid the blending in the first place. I have no idea which is preferable, but I thought it might be worthwhile to prevent confusion among readers.

A component to add formatted section to link out to Prisma resources

We have a goal to increase the linking from the Data Guide back to the Prisma Docs where it makes sense to try to direct some traffic to our tools. So for instance, in our guide about data types, we could link back to the Prisma docs for type definitions here: https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-schema/data-model#type-definitions or where ever else makes most sense.

It would be great to have a component to link out to the related Prisma docs at the end of an article. We would manually provide the links and potentially some copy about the relationship, but the formatting would help it to stand out and be standardized across articles.

Left-hand navigation sometimes jumpy

Hey there. So I apologize in advance, but this is a bit of a frustrating issue to make because I can't pinpoint when exactly it happens for me.

To describe the situation, sometimes the left navigation section jumps around for me unexpectedly and blinks in and out occasionally as if it's being re-rendered. I can't reproduce at the moment, but wanted to note it in case there are other reports that match this. I'll make note of what I'm doing, etc. next time I see it happen.

Gatsby strips non-index numbers from file paths when creating URLs

Gatsby automatically generates URLs by stripping the numerical indexes from the beginning of directories and files. However, for articles that begin with a number, like "5 Ways to Host PostgreSQL", Gatsby removes the non-index number from the URL as well ("5" in this case).

File path: /content/03-postgresql/03-5-ways-to-host-postgresql.mdx
Expected URL: /postgresql/5-ways-to-host-postgresql
Actual URL: /postgresql/ways-to-host-postgresql

Add collapsible sections on the left hand side

With the data guide growing, it would be helpful to be able to have a more compact left-hand navigation experience. It might make sense for us to have the Data Guide sections be collapsible.

So I guess my suggestion would be to have all of the sections collapsed by default except for the current section and allow users to click to open additional sections.

Improve performances

Description

After running an Audit lighthouse test, I noticed that there is room for improvement specially for performances, here are some screenshots that can help

Screen Shot 2020-07-09 at 13 26 40
Screen Shot 2020-07-09 at 13 26 48
Screen Shot 2020-07-09 at 13 26 57
Screen Shot 2020-07-09 at 13 27 04

Database vs. Schema vs. Database Server

On MySQL you have a database server with many databases.
On PostgreSQL you have a database server with many databases with many schemas.
In random SQL tooling database and schema are used interchangeably.
Is there some "truth" behind all these names or did people just assign them randomly?
What is correct, what is wrong, and is there a way to avoid confusion?

datamodeling/functional-units - page too opinionated

Coming from the perspective of a developer briefly skimming through the Prisma docs for the first time to see if Prisma might be a good fit for my project, I need to pass comment that datamodeling/functional-units is far too opinionated.

You spend at least a quarter of a page (if not more), lecturing the reader on why you think they should not be using database functions / stored procedures (e.g. "Here's why you might not want to program your database!")

You do not consider valid reasons why a user might want to use functions / stored procedures (e.g. prevent SQL injection attacks, manage business logic etc.). Instead you provide all sorts of highly questionable arguments against database functions / stored procedures, most of which don't hold up to any real scrutiny and are based on highly subjective opinion of the author rather than objective facts.

Meanwhile, you provide exactly zero examples or insight on that page as to how someone might use Prisma in conjunction with database functions / stored procedures.

Please guys. Focus the docs on what they should do. Demonstrating and documenting what your software can (and cannot) do. Save the opinions for mailing lists, forums, Slack or wherever it is that you informally discuss Prisma.

Its all really off-putting and just makes me want to look elsewhere.

New tool tip component

Once we have a glossary for the data guide (#47) , a tool tip component that auto-populates definitions from the glossary would be extremely useful. You can find an explanation for the full proposal here.

In short, it'd be great to be able to wrap a word or words within an article with a component to automatically pull information from a specific term within the glossary. The tool tip component could potentially work something like this:

<tooltip id="id-set-in-the-glossary">term to get a tool tip</tooltip>

The idea being that you could manually wrap text with the component and specify a unique ID from the glossary to automatically fill in the tool tip content.

The tool tip content would ideally include the following information:

  • A link to the specific entry within the glossary. For example, a link in the tool tip header that says "From the data guide glossary for 'columns':"
  • The terminology and definition pulled from the glossary.
  • The "Learn more" link given within the glossary entry to point readers to an article that can give them additional context.

New vocab review component

Once we have a glossary for the data guide (#47) and a tool tip component to auto-populate glossary definitions (#48), a vocabulary review component that automatically creates a vocab review section at the bottom of articles with definitions from the glossary would be great. You can find an explanation for the full proposal here.

Basically, if we have a glossary and tool tips, it'd be really helpful to have a component that auto-populates a "vocab review" or "terminology review" section at the end of articles. The information would be populated based on:

  • The tool tips used within the article
  • The terms and definitions provided by the glossary
  • New terminology identified by glossary entries that use this article as their "Learn more" link

My initial idea behind the review section is to have it divided into two sections, each of which will only be displayed if the relevant content exists:

  • A "referenced terminology" section that reprises all of the tool tips included within the article. The terms and definitions are provided once again in a group in this section to make it easy to review related or prerequisite knowledge.
  • A "new terminology" section that is populated based on entries within the glossary that use this article as their "Learn more" link. The article will likely not use tool tips for terminology that it is introducing and instead will define the term inline. However, using the "Learn more" links from the glossary is a good way to identify new terminology introduced and thoroughly defined by this article. This section will contain all of the new terms that are in this article as identified by the links back to this article.

Make no line numbers the default for code blocks again

Most of the content for the data guide shouldn't have line numbers. Recently however, line numbers started showing up on code blocks.

It'd be great to either implement the no-lines functionality from the docs added here: prisma/docs@d1c6aff

Or, preferably, to reverse the default for the data guide again, with no lines by default and the ability to manually specify instances where you want lines with a similar decorator (or whatever they're called, not sure).

New glossary page

I'd like to create a glossary page with certain functionality to allow for easier integration within articles. You can find an explanation for the full proposal here.

In short, the glossary page would contain discrete entries. Each entry would have:

  • A globally unique identifier to be able to address the term exactly
  • A term
  • A definition
  • A "Learn more" link to the data guide article that is the best resource for that term

So in terms of design, it'd be great to have some way to assign identifiers to terminology within the glossary manually. It would also be nice to be able to highlight an entry within the page when it's specific address is provided.

The Subsection component doesn't work with the last section

Currently, for the last section in the /content directory, using the <Subsection /> component in the index.mdx file does not display the section's content. The <Subsection /> component works correctly for every section but the last one.

I've been able to work around this by creating an additional dummy section with a single space as the title after my real last section and setting it to be hidden using the hidden: true flag in its index.mdx front matter.

It'd be great to have this fixed so that I can remove my dummy section.

Fix asset prefix for authorship images

Currently, when specifying local image for authorship bio information, we need to add /dataguide/... manually to authors.json for it to deploy correctly live. This breaks the images locally and in preview however.

If you specify the author images without the /dataguide/... prefix, they display correctly in preview and locally, but break for production.

Diff highlighting sometimes accidentally applied to code blocks

Since code blocks automatically apply highlighting to lines beginning with +, -, and |, sometimes the styling is applied to code blocks where it doesn't make sense.

For instance, in SQL files, single line comments marked with two dashes --. Another example is that psql uses a line of dashes to separate labels from values. These are interpreted as diff line removal highlighting, however:

Screenshot from 2020-06-22 14-18-03

It'd be helpful to be able to disable this or to have it be enabled by a property you can add manually instead of automatically applying when one of those characters are at the start of a line.

Remaining tasks

  • Implementing search
  • Function to collect feedback
  • Add content
  • home page

RSS feed for the data guide

It would be helpful to implement an RSS or atom feed for the Data Guide similar to what we have for the blog.

New front matter option to tell Gatsby to not build / publish a page

Currently, we have an option called hidePage: true that I can add to articles to make them ignored by the fancy auto-generated side navigation bar. They're still accessible if you go directly to the page, which is exactly what we want in some cases.

However, since I'll be porting a lot of content from PostgreSQL to MySQL soon, I want to be able to lay out dummy files in a hierarchy within that section early so I don't need to keep renaming and shifting files around as I add new content. In this case, it'd be helpful if I could use an option to signal to Gatsby that it can completely skip the page when building or publishing the content. This way, I could establish the content structure in the directories ahead of time, but not impact SEO, leak incomplete content, or confuse any web crawlers that might happen across the content before it's "ready".

So an option like skipBuild: true or something similar would help me commit work to the repository that doesn't yet affect the published content.

SVG style when viewed on a smartphone

Confirmed environment

iPhone SE
IOS 14.7.1
Safari

Details

When viewed with a smartphone-sized browser, the CSS style of the SVG in the main visual of the top page (https://www.prisma.io/dataguide/) appears to be interfering.
Specifically, it appears to be quite large on the Twitter icon, and it seems like it could be solved by adapting the style only to the SVG at the bottom of the Twitter icon, what do you think? Also, there seems to be a gap on the right side of the page due to this effect. (I think the gap will disappear once the size of the Twitter icon is resolved.

SQL Server Password Policy

When setting up SQL Server using Docker, let's mention that SQL Server has a password policy.

I was following this section of the guide: #setting-up-sql-server-on-macos.

According to the logs, here are the requirements:

ERROR: Unable to set system administrator password: Password validation failed. 
The password does not meet SQL Server password policy requirements because it is not complex enough. 
The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols..

This is more of an enhancement because I couldn't start the docker image because of the password policy. Once I fixed that, everything runs smoothly. (For lazy readers like me who set the password as "password" 😅 )

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.