starter
Opinionated SaaS quick-start with pre-built user account and organization system for full-stack application development in React, Node.js, GraphQL and PostgreSQL. Powered by PostGraphile, TypeScript, Apollo Client, Graphile Worker, Graphile Migrate, GraphQL Code Generator, Ant Design and Next.js
Language: typescript
Author: Elijah Perry (@eperry)
16 stars · 393 views
Files
- codegen.yml (yml)
- account_activity.mjml (mjml)
- .devcontainer (devcontainer)
- app_public (app_public)
- functions (functions)
- .eslintignore (eslintignore)
- .github (github)
- .gitattributes (gitattributes)
- workflows (workflows)
- nodejs.yml (yml)
- .vscode (vscode)
- plugin-typescript.cjs (cjs)
- .yarn (yarn)
- .yarnrc.yml (yml)
- plugins (plugins)
- @yarnpkg (@yarnpkg)
- releases (releases)
- @app (@app)
- plugin-workspace-tools.cjs (cjs)
- __tests__ (__tests__)
- client (client)
- src (src)
- graphql (graphql)
- AcceptOrganizationInvite.graphql (graphql)
- EmailsForm_User.graphql (graphql)
- Logout.graphql (graphql)
- OrganizationBySlug.graphql (graphql)
- DeleteOrganization.graphql (graphql)
- EmailsForm_UserEmail.graphql (graphql)
- RemoveFromOrganization.graphql (graphql)
- OrganizationPage.graphql (graphql)
- ProfileSettingsForm_User.graphql (graphql)
- SettingsPassword.graphql (graphql)
- SettingsEmails.graphql (graphql)
- TransferOrganizationBillingContact.graphql (graphql)
- Shared.graphql (graphql)
- SettingsProfile.graphql (graphql)
- UpdateOrganization.graphql (graphql)
- UpdateUser.graphql (graphql)
- pages (pages)
- VerifyEmail.graphql (graphql)
- _document.tsx (tsx)
- create-organization (create-organization)
- _app.tsx (tsx)
- index.tsx (tsx)
- accept.tsx (tsx)
- invitations (invitations)
- o (o)
- [slug] ([slug])
- settings (settings)
- login.tsx (tsx)
- members.tsx (tsx)
- accounts.tsx (tsx)
- settings (settings)
- security.tsx (tsx)
- components (components)
- src (src)
- jest.config.js (js)
- package.json (json)
- SpinPadded.tsx (tsx)
- Warn.tsx (tsx)
- SharedLayout.tsx (tsx)
- config (config)
- babel.config.js (js)
- jest.config.js (js)
- src (src)
- tsconfig.json (json)
- README.md (md)
- db (db)
- __tests__ (__tests__)
- CONVENTIONS.md (md)
- app_private (app_private)
- functions (functions)
- tables (tables)
- migrations (migrations)
- jest.config.js (js)
- user_emails.test.ts (ts)
- babel.config.js (js)
- committed (committed)
- current (current)
- 000001.sql (sql)
- 1-current.sql (sql)
- scripts (scripts)
- wipe-if-demo (wipe-if-demo)
- e2e (e2e)
- babel.config.js (js)
- homepage.cy.ts (ts)
- cypress (cypress)
- e2e (e2e)
- fixtures (fixtures)
- support (support)
- example.json (json)
- tsconfig.json (json)
- README.md (md)
- jest.config.js (js)
- graphql (graphql)
- package.json (json)
- jest.config.js (js)
- lib (lib)
- babel.config.js (js)
- src (src)
- GraphileApolloLink.client.ts (ts)
- babel.config.js (js)
- server (server)
- __tests__ (__tests__)
- index.tsx (tsx)
- withApollo.tsx (tsx)
- mutations (mutations)
- __snapshots__ (__snapshots__)
- queries (queries)
- __snapshots__ (__snapshots__)
- babel.config.js (js)
- helpers.ts (ts)
- jest.config.js (js)
- public (public)
- scripts (scripts)
- src (src)
- fs.ts (ts)
- middleware (middleware)
- graphile.config.ts (ts)
- .eslintrc.js (js)
- installCypressServerCommand.ts (ts)
- installPassportStrategy.ts (ts)
- plugins (plugins)
- installSharedStatic.ts (ts)
- SubscriptionsPlugin.ts (ts)
- utils (utils)
- worker (worker)
- handleErrors.ts (ts)
- src (src)
- tasks (tasks)
- templates (templates)
- password_reset_unregistered.mjml (mjml)
- TECHNICAL_DECISIONS.md (md)
- apollo.config.js (js)
- LICENSE.md (md)
- Procfile (Procfile)
- README.md (md)
- data (data)
- docker (docker)
- babel.config.js (js)
- scripts (scripts)
- schema.graphql (graphql)
- amazon-rds-ca-cert.pem (pem)
- lsfix.sh (sh)
- docs (docs)
- setup.sh (sh)
- dockerctl (dockerctl)
- error_codes.md (md)
- docker-compose.yml (yml)
- heroku-setup.template (template)
- package.json (json)
- jest.config.js (js)
- scripts (scripts)
- random.js (js)
- lib (lib)
- _setup_utils.js (js)
- setup_db.js (js)
- yarn.lock (lock)
- send_email.ts (ts)
- CurrentUserAuthentications.graphql (graphql)
- manage_emails.cy.ts (ts)
- passwords.ts (ts)
- production.Dockerfile (Dockerfile)
- ATTRIBUTION.md (markdown)
- user__forgot_password.ts (ts)
- production_todo.md (md)
- README.md (md)
- dotenv.js (js)
- transport.ts (ts)
- README.md (md)
- index.ts (ts)
- schema-export.ts (ts)
- login.cy.ts (ts)
- user__forgot_password_unregistered_email.ts (ts)
- password_reset.mjml (mjml)
- SPONSORS.md (md)
- pgrita.yml (yml)
- FourOhFour.tsx (tsx)
- Orders.ts (ts)
- test.js (js)
- fs.ts (ts)
- index.tsx (tsx)
- run.js (js)
- index.ts (ts)
- tsconfig.json (json)
- windows-nodejs.yml (yml)
- installLogging.ts (ts)
- InvitationDetail.graphql (graphql)
- change_password.test.ts (ts)
- verify_email.cy.ts (ts)
- package.json (json)
- errors.ts (ts)
- ResetPassword.graphql (graphql)
- login.test.ts (ts)
- error.html (html)
- index.ts (ts)
- afterReset.sql (sql)
- extensions.json (json)
- babel.config.js (js)
- tsconfig.json (json)
- GraphileApolloLink.ts (ts)
- ButtonLink.tsx (tsx)
- devcontainer.json (json)
- RemoveQueryQueryPlugin.ts (ts)
- crontab (crontab)
- tsconfig.json (json)
- cypress.config.js (js)
- setup_env.js (js)
- package.json (json)
- e2e.js (js)
- Redirect.tsx (tsx)
- installHelmet.ts (ts)
- installWorkerUtils.ts (ts)
- installPassport.ts (ts)
- package.json (json)
- register_account.cy.ts (ts)
- really_create_user.test.ts (ts)
- tsconfig.json (json)
- test-docker.js (js)
- installSSR.ts (ts)
- .gitignore (gitignore)
- tsconfig.json (json)
- README.md (md)
- PrimaryKeyMutationsOnlyPlugin.ts (ts)
- shutdownActions.ts (ts)
- RequestAccountDeletion.graphql (graphql)
- ChangePassword.graphql (graphql)
- helpers.ts (ts)
- index.tsx (tsx)
- .babelrc (babelrc)
- DeleteEmail.graphql (graphql)
- SharedLayout_Query.graphql (graphql)
- Register.graphql (graphql)
- schema.sql (sql)
- README.md (md)
- package.json (json)
- installPostGraphile.ts (ts)
- dump-db.js (js)
- package.json (json)
- tsconfig.json (json)
- Dockerfile (Dockerfile)
- forms.ts (ts)
- reset_password.test.ts (ts)
- package.json (json)
- index.tsx (tsx)
- AddEmail.graphql (graphql)
- delete_account.mjml (mjml)
- UnlinkUserAuthentication.graphql (graphql)
- ResendEmailVerification.graphql (graphql)
- register.tsx (tsx)
- SettingsLayout.tsx (tsx)
- jest.watch.hack.ts (ts)
- verify_email.mjml (mjml)
- .eslintrc.js (js)
- user__audit.ts (ts)
- StandardWidth.tsx (tsx)
- CreateOrganization.graphql (graphql)
- clean.js (js)
- README.md (md)
- README.md (md)
- test-seed.js (js)
- installSession.ts (ts)
- package.json (json)
- run-docker-with-env.js (js)
- .dockerignore (dockerignore)
- babel.config.js (js)
- cypress.yml (yml)
- README.md (md)
- launch.json (json)
- settings.json (json)
- spellright.dict (dict)
- next-env.d.ts (ts)
- README.md (md)
- README.md (md)
- ConfirmAccountDeletion.graphql (graphql)
- CurrentUserUpdated.graphql (graphql)
- Login.graphql (graphql)
- OrganizationMembers.graphql (graphql)
- next.config.js (js)
- _error.tsx (tsx)
- forgot.tsx (tsx)
- delete.tsx (tsx)
- index.tsx (tsx)
- reset.tsx (tsx)
- delete.tsx (tsx)
- emails.tsx (tsx)
- verify.tsx (tsx)
- styles.css (css)
- Text.tsx (tsx)
- ErrorAlert.tsx (tsx)
- OrganizationSettingsLayout.tsx (tsx)
- SocialLoginOptions.tsx (tsx)
- organizationHooks.tsx (tsx)
- env.js (js)
- extra.js (js)
- .gmrc (gmrc)
- README.md (md)
- .jest.watch.hack.json (json)
- link_or_register_user.test.ts (ts)
- helpers.ts (ts)
- confirm_account_deletion.test.ts (ts)
- invite_to_organization.test.ts (ts)
- logout.test.ts (ts)
- README.md (md)
- subscriptions.cy.ts (ts)
- jest.config.js (js)
- register.test.ts (ts)
- currentUser.test.ts (ts)
- postgraphile.tags.jsonc (jsonc)
- app.ts (ts)
- installDatabasePools.ts (ts)
- installErrorHandler.ts (ts)
- installForceSSL.ts (ts)
- installSameOrigin.ts (ts)
- PassportLoginPlugin.ts (ts)
- CONTRIBUTING.md (md)
- jest.config.js (js)
- organization_invitations__send_invite.ts (ts)
- user_emails__send_verification.ts (ts)
- organization_invite.mjml (mjml)
- GRAPHILE_STARTER_LICENSE.md (md)
- README.md (md)
- package.json (json)
- copy-local-config-and-ssh-creds.sh (sh)
- yarn-setup.js (js)
- delete-env-file.js (js)
- start.js (js)
- PasswordStrength.tsx (tsx)
- register.test.ts.snap (snap)
- babel.config.js (js)
- jest.config.js (js)
- production-docker.yml (yml)
- .env.ci (ci)
- .editorconfig (editorconfig)
- index.ts (ts)
- ForgotPassword.graphql (graphql)
- InviteToOrganization.graphql (graphql)
- MakeEmailPrimary.graphql (graphql)
- index.tsx (tsx)
- README.md (md)
- ErrorOccurred.tsx (tsx)
- OrganizationPage_Query.graphql (graphql)
- TransferOrganizationOwnership.graphql (graphql)
- index.tsx (tsx)
- currentUser.test.ts.snap (snap)
- organization_create.cy.ts (ts)
- organization_page.cy.ts (ts)
- forgot_password.test.ts (ts)
- cloudflare.ts (ts)
- commands.ts (ts)
- installCSRFProtection.ts (ts)
- tsconfig.json (json)
- README.md (md)
- user__send_delete_account_email.ts (ts)
- clean-volumes.js (js)
- jest.config.base.js (js)