{"id":31124187,"url":"https://github.com/mathi123/neurotic-web","last_synced_at":"2025-09-17T19:38:31.347Z","repository":{"id":313078513,"uuid":"1049942576","full_name":"mathi123/neurotic-web","owner":"mathi123","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-14T19:00:17.000Z","size":322,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-14T21:07:37.609Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mathi123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.MD","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"agents.md","dco":null,"cla":null}},"created_at":"2025-09-03T18:08:16.000Z","updated_at":"2025-09-14T19:00:20.000Z","dependencies_parsed_at":"2025-09-03T20:30:33.104Z","dependency_job_id":"62a51b43-d3f8-4f16-a1a4-ecf4418c54e4","html_url":"https://github.com/mathi123/neurotic-web","commit_stats":null,"previous_names":["mathi123/shiny-octo-pancake","mathi123/neurotic-web"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mathi123/neurotic-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathi123%2Fneurotic-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathi123%2Fneurotic-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathi123%2Fneurotic-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathi123%2Fneurotic-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathi123","download_url":"https://codeload.github.com/mathi123/neurotic-web/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathi123%2Fneurotic-web/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275650071,"owners_count":25503219,"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","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-09-17T19:38:26.201Z","updated_at":"2025-09-17T19:38:31.337Z","avatar_url":"https://github.com/mathi123.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Why\n\nThis repository is a collection of modern web development tools aimed at creating fast, robust, and future-proof applications. These applications are designed to handle complex business domains, utilizing a domain-driven approach and setup to ensure scalability and maintainability. This repository is about:\n\n- Using minimal and well-known libraries\n- Writing clean code is a domain driven approach\n- Well tested with unit tests and e2e tests\n\n# Quickstart\n\nTo get started, you need [pnpm](https://pnpm.io/) and [docker](https://www.docker.com/).\n\n```bash\ngit clone https://github.com/mathi123/neurotic-web.git\ncd neurotic-web\npnpm i\npnpm run dev\n```\n\n# Technologies\n\n## Next.js\n\nNext.js was installed using [manual install](https://nextjs.org/docs/app/getting-started/installation#manual-installation) procedure. This contains a section on [TypeScript setup](https://nextjs.org/docs/app/getting-started/installation#ide-plugin) in VS Code.\n\n## TypeScript\n\nThe tsconfig file contains settings for compiling TypeScript. The following settings were modified:\n\n- allowJs: set to false\n- strict: set to true\n\nIn order for @/... imports to work, the following config was added:\n\n```json\n    \"baseUrl\": \".\",\n    \"paths\": {\n      \"@/*\": [\"app/*\"]\n    }\n```\n\n## Commit message\n\nCommit messages must use the [Conventional Commits](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional) config.\n\n## Linting\n\nESLint was set up to use 3 rule sets:\n\n- Next.js rules\n- TypeScript rules\n- Prettier rules (such that they don't conflict)\n\n## Formatting\n\nPrettier is used to automatically format code.\n\n## Node Version\n\nThe Node.js version is indicated in .npmrc, and the pnpm version in package.json. These versions are also used on CI/CD. Be careful to run commands with pnpm, not your local npm version.\n\n## Testing\n\n### Unit Tests\n\nVitest is used for running unit tests.\n\n```bash\n\npnpm run test\n# Or with code coverage\npnpm run test:coverage\n\n```\n\n## Database\n\n### ORM\n\nPrisma is used as an ORM. Modify the schema.prisma file, and add a migration as follows:\n\n```bash\npnpm run db:migrate\n```\n\nNotes:\n\n- Neon Adapter is used on production and Pg Adapter for local development\n- To check: [connection pooling](https://vercel.com/guides/connection-pooling-with-functions) still relevant with Neon driver?\n\n## Env Vars\n\n| Variable              | Description                                      |\n| --------------------- | ------------------------------------------------ |\n| DATABASE_URL          | The database url.                                |\n| DATABASE_URL_UNPOOLED | Direct database url, without connection pooling. |\n\n## Package Log\n\nThis log explains why packages were installed.\n\n| Reason                 | Package(s)                                                                                             |\n| ---------------------- | ------------------------------------------------------------------------------------------------------ |\n| Next.js setup          | next@latest, react@latest, react-dom@latest                                                            |\n| commit message linting | @commitlint/config-conventional, @commitlint/cli, husky                                                |\n| ESLint via Next.js     | eslint, eslint-config-next, eslint-config-prettier, @eslint/eslintrc                                   |\n| validating models      | zod                                                                                                    |\n| prisma ORM setup       | prisma, @prisma/client, @prisma/adapter-neon, @prisma/adapter-pg                                       |\n| Unit testing setup     | vitest, vite-tsconfig-paths, jsdom, @vitejs/plugin-react, @testing-library/dom, @testing-library/react |\n| Unit test coverage     | @vitest/coverage-v8                                                                                    |\n\n## Known Issues\n\n### Turbopack\n\nTurboPack and @prisma/pg-adapter don't work well together, for pnpm. The following error is thrown when instantiating the adapter.\n\n```bash\nPackage pg can't be external\nThe request pg matches serverExternalPackages (or the default list).\nThe request could not be resolved by Node.js from the project directory.\nPackages that should be external need to be installed in the project directory, so they can be resolved from the output files.\nTry to install it into the project directory by running npm install pg from the project directory.\n```\n\nA temporary fix was to modify the .npmrc file as mentioned [here](https://github.com/vercel/next.js/discussions/76247).\n\n```.npmrc\npublic-hoist-pattern[]=*pg*\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathi123%2Fneurotic-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathi123%2Fneurotic-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathi123%2Fneurotic-web/lists"}