{"id":20826715,"url":"https://github.com/cedrickchee/saas-starter","last_synced_at":"2025-05-07T20:38:44.193Z","repository":{"id":38177133,"uuid":"162686310","full_name":"cedrickchee/saas-starter","owner":"cedrickchee","description":"Everything you need to get your next Unicorn-For-X startup off the ground.","archived":false,"fork":false,"pushed_at":"2023-03-02T18:42:34.000Z","size":2882,"stargazers_count":64,"open_issues_count":7,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-07T20:38:38.736Z","etag":null,"topics":["graphql","hackathon-starter","prototyping","reactjs","starter-kit","startup-resources"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cedrickchee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2018-12-21T08:14:50.000Z","updated_at":"2025-05-03T14:52:16.000Z","dependencies_parsed_at":"2023-02-15T05:31:39.727Z","dependency_job_id":null,"html_url":"https://github.com/cedrickchee/saas-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Fsaas-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Fsaas-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Fsaas-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickchee%2Fsaas-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cedrickchee","download_url":"https://codeload.github.com/cedrickchee/saas-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252954125,"owners_count":21830892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graphql","hackathon-starter","prototyping","reactjs","starter-kit","startup-resources"],"created_at":"2024-11-17T23:09:50.365Z","updated_at":"2025-05-07T20:38:44.172Z","avatar_url":"https://github.com/cedrickchee.png","language":"JavaScript","funding_links":[],"categories":["Node.js"],"sub_categories":[],"readme":"# SaaS Starter\n\n## Project Status\n\nThe project has not been updated for a _very_ long time (aside from security\nfixes) for the latest in React 16+, Hooks, Apollo 3 and [Prisma\n2](https://www.prisma.io/docs/about/prisma/faq#since-prisma-20-is-released-will-prisma-1-still-be-maintained).\n\n## A message from the author\n\n\u003e Maintaining an open source database requires an immense amount of time and\n\u003e energy, even more so due to JS growing pains like dependency \"hell\",\n\u003e non-backward compatible dependency upgrade or frequently breaking changes\n\u003e introduced by third-party libraries.\n\u003e\n\u003e Unfortunately I no longer have the time or energy to continue this work.\n\u003e\n\u003e If you are interested in building better websites or looking for a simple and\n\u003e better (maintainable) starter kit, I suggest that you look at the\n\u003e [Remix](https://remix.run/) framework which will soon going open source and\n\u003e check out Kent Dodds's post, [\"How I built a modern website using Remix in\n\u003e 2021\"](https://kentcdodds.com/blog/how-i-built-a-modern-website-in-2021).\n\u003e \n\u003e ~ [@cedric_chee](https://twitter.com/cedric_chee)\n\ndemo: _coming soon_\n\nSaaS Starter is an open source full stack software-as-a-service online mart complete with real credit checkout. Users can search, sell, add to cart and checkout their favourite grocery items.\n\nThis is a full stack JavaScript application built with [React.js](https://reactjs.org/), [GraphQL](https://graphql.org/), [Node.js](https://nodejs.org) and friends.\n\n## The Tech Stack\n\n![](docs/images/tech_stack_v2.png)\n\n_(WIP) New tech stack -- back-end will be updated to use Keystone headless CMS. Keystone uses Prisma under the hood to take care of the database layer)._\n\n## Application Architecture\n\nThe following is the design of the frontend and backend of the application.\n\nThe application has five main models:\n- Users\n- Items\n- Orders\n- CartItems\n- OrderItems\n\nall of which are relational and utilizing the power of relational [GraphQL Queries](https://graphql.org/learn/queries/).\n\nThe app also includes many server side bits including:\n- JWT authentication\n- permissions\n- sending email\n- uploading images\n- charging credit cards\n\n## Development\n\nDeveloper skills required to build an online mart with React, GraphQL and some of today's top JavaScript technology.\n\n### React.js and Modern JavaScript\n\nYou should be already familiar with the basics of React - components, state, props, modules and event handlers.\n\nYou should be comfortable with both writing and debugging modern JavaScript including arrow functions, classes, promises, async+await and other commonly used parts of [ES6](http://exploringjs.com/es6/).\n\nThe backend of the app is written in Node.js. Prior Node.js knowledge is nice, but not required.\n\nThe app requires knowledge of GraphQL, [Apollo Client](https://www.apollographql.com/client/), [Prisma](https://www.prisma.io/), databases, or [testing React components](https://airbnb.io/enzyme/docs/guides/jest.html).\n\n### What is GraphQL?\n\nJust as React has transformed the way we build web applications, GraphQL is changing how we build APIs to query and mutate data.\n\n\u003cimg src=\"docs/images/graphql_code_example.png\" width=\"300\" /\u003e\n\nGraphQL is a type-safe query language for APIs and a runtime for fulfilling those queries with your existing data.\n\nWhat?! It's a replacement for (_or addition to_) your REST API and Ajax Calls.\n\nGraphQL requires buy-in from both your client and your server — it then puts the power of requesting **only what you want** into the client and the business logic of finding and filtering that data into **backend resolvers**.\n\nIt enables libraries that make caching, loading, error handling and pagination a breeze.\n\nComplex Relational Data queries and server-side mutations like signing up or checking-out are a snap with GraphQL.\n\nGraphQL is just a standard and can be implemented in any language or framework.\n\n### Concepts\n\nThe concepts implemented into our entire full-stack application along with general JavaScript best practices:\n\n- React Best Practices\n- [Server Side Rendering](https://nextjs.org/docs/)\n- [Styled Components](https://www.styled-components.com/)\n- [Theming](https://www.styled-components.com/docs/advanced#theming)\n- [React Render Props](https://reactjs.org/docs/render-props.html)\n- Routing\n- [GraphQL Schema](https://graphql.org/learn/schema/)\n- [Queries and Mutations](https://graphql.org/learn/queries/)\n- [JSON Web Token (JWT)](https://jwt.io/)\n- [Resolvers](https://www.prisma.io/tutorials/build-a-graphql-server-with-prisma-ct02/#implement-the-resolvers-for-your-graphql-server-using-prisma-bindings)\n- [Cache Management](https://www.apollographql.com/docs/react/advanced/caching.html)\n- [Loading and Error States](https://www.apollographql.com/docs/react/features/error-handling.html)\n- Sending Email\n- Logic and Flow with Async + Await\n- Authentication and Permissions\n- [Charging Credit Cards](https://stripe.com/docs/quickstart)\n- Hosting and Transforming Images\n- Pagination\n- Forms in React\n- Animations\n- Third party React Components\n- Unit Testing\n- Mocking Components\n- Mounting vs Shallow Rendering\n- Deployment\n\n## Documentation\n\nSee [the docs directory](docs/).\n\n## License\n\nThis repository contains a variety of content; some developed by Cedric Chee, and some from third-parties. The third-party content is distributed under the license provided by those parties.\n\n*I am providing code and resources in this repository to you under an open source license.  Because this is my personal repository, the license you receive to my code and resources is from me and not my employer.*\n\nThe content developed by Cedric Chee is distributed under the following license:\n\n### Code\n\nThe code in this repository, including all code samples in the notebooks listed above, is released under the [MIT license](LICENSE). Read more at the [Open Source Initiative](https://opensource.org/licenses/MIT).\n\n### Text\n\nThe text content of the book is released under the CC-BY-NC-ND license. Read more at [Creative Commons](https://creativecommons.org/licenses/by-nc-nd/3.0/us/legalcode).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedrickchee%2Fsaas-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcedrickchee%2Fsaas-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedrickchee%2Fsaas-starter/lists"}