{"id":14007247,"url":"https://github.com/one-aalam/ng-starter-kit","last_synced_at":"2025-07-15T16:04:44.182Z","repository":{"id":151100037,"uuid":"430060788","full_name":"one-aalam/ng-starter-kit","owner":"one-aalam","description":"Angular with Supabase, and other bells and whistles","archived":false,"fork":false,"pushed_at":"2021-12-06T05:08:25.000Z","size":1577,"stargazers_count":16,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-07T16:21:48.559Z","etag":null,"topics":["angular","angular13","daisyui","starter-kit","starter-template","supabase","supabase-js","supabase-storage","tailwindcss"],"latest_commit_sha":null,"homepage":"","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/one-aalam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2021-11-20T09:29:48.000Z","updated_at":"2024-06-30T18:11:04.000Z","dependencies_parsed_at":"2024-01-28T10:22:20.863Z","dependency_job_id":"37acfe8c-a8f4-42cc-afb7-e10ff1468820","html_url":"https://github.com/one-aalam/ng-starter-kit","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/one-aalam/ng-starter-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fng-starter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fng-starter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fng-starter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fng-starter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/one-aalam","download_url":"https://codeload.github.com/one-aalam/ng-starter-kit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fng-starter-kit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265444296,"owners_count":23766428,"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":["angular","angular13","daisyui","starter-kit","starter-template","supabase","supabase-js","supabase-storage","tailwindcss"],"created_at":"2024-08-10T10:01:56.359Z","updated_at":"2025-07-15T16:04:43.673Z","avatar_url":"https://github.com/one-aalam.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"./ng-sk.png\" height=\"80px\" title=\"Ng Starter Kit\" /\u003e\n\u003c/div\u003e\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cstrong\u003eAngular + Supabase starter for Typescript lovers\u003c/strong\u003e\u003c/div\u003e\n\n\n_Angular Starter Kit_ is an opinionated boilerplate based off of Angular 13, with all the bells and whistles you would want ready, up and running when starting a Angular project to work with.\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=PRs\u0026message=welcome\u0026style=flat-square\u0026color=5e17eb\u0026labelColor=000000\" alt=\"PRs welcome!\" /\u003e\n\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/one-aalam/ng-starter-kit?style=flat-square\u0026color=5e17eb\u0026labelColor=000000\"\u003e\n\n  \u003ca href=\"https://twitter.com/intent/follow?screen_name=aftabbuddy\"\u003e\n    \u003cimg src=\"https://img.shields.io/twitter/follow/aftabbuddy?style=flat-square\u0026color=5e17eb\u0026labelColor=000000\" alt=\"Follow @aftabbuddy\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\u003c!--\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eCreated by \u003ca href=\"https://twitter.com/aftabbuddy\"\u003eAftab Alam\u003c/a\u003e with the help of many \u003ca href=\"https://github.com/one-aalam/ng-starter-kit/graphs/contributors\"\u003ewonderful contributors\u003c/a\u003e.\u003c/sub\u003e\n\u003c/div\u003e\n\u003cbr /\u003e\n--\u003e\n\nOut of the box you get all the `essentials`\n- __Typescript__ as the language choice\n- __Tailwind CSS__ for quick styling without getting out of your HTML\n- __Daisy UI__ for pre-made TailwindCSS component classes\n- __Tailwind UI__ for robust headless logic you can use for components like Dialog/Modal, Dropdown, List, etc.\n- __FontSource__ for effortless custom font integration\n- __Icons through Fontawesome__ for ease of icon use\n- __ESLint__ for static code analysis and\n- __Prettier__ for code formatting\n- __Jest__ for unit testing\n- __Cypress__ for e2e test cases\n- __.env__ Support for client-side environment variables\n\nwith [Supabase](https://supabase.io/) support\n- __Authentication System__ with Supabase GoTrue\n- __User Profiles__ available on `/profile` as an example for Supabase PostgREST (CRUD API)\n- __User Avatar__ which is Supbase Storage(AWS S3 backed effortless uploads) supported\n\nand a bunch of integrated and pre-made/hand-rolled(easily replace-able) components (as a library project - `projects/commons`), that you almost always end up installing/using for any non-trivial project\n- __Button__ Button with DaisyUI style support for all the basic use cases\n- __Alert/Toast__ to notify your users of the outcome of an event - `success, `error` or `default` is supported\n- __Modal__(@ngneat/dialog) as you always come back to `em\n- __Loaders__ for reporting the progress of an API call + a page load\n- __Avatar__ for user avatar's\n\nand more...\n\n## Quick Start\n\nThe best way to start with this template is to click \"Use this template\" above, create your own copy and work with it\n\n### Development\n\nTo start the project locally, run:\n```bash\nyarn build:lib\n```\nas a one-time activity to have commonly used UI components available to the main Angular app, and then do a\n```bash\nyarn start\n```\nwhich kickstarts the Angular development and build server. Open `http://localhost:4200` with your browser to see the result.\n\nCheck `package.json` for the full list of commands available at your disposal.\n\n#### Developing the library\n\nFor building the library(`/projects/commons`), you have `build:lib` for compiling the code. Once compiled, the updated code can pulled by doing a `import { CommonsModule } from 'commons'` which will include all the common components like spinner, avatar, etc. in your module. The App development server needs to be re-booted, after compilaton to have the updated code available.\n\n## How to Setup Supabase for Angular Starter Kit?\nIf new to Supabase\n- Create account at [Supabase](https://app.supabase.io/)\n- Create a Organisation, and a project\n\nOnce done, or if you already have a Supabase project\n- Copy the generated project's API authentication details from `https://app.supabase.io/project/\u003cyour-awesome-ng-project\u003e/api/default?page=auth`\n- Place the details in `.env` as `SUPABASE_URL` and `SUPABASE_KEY`\n- Install NPM dependencies, by running `yarn`\n\nNuxt Start Kit supports user profiles and user avatars. To get the profile table and storage ready, execute the following queries at `https://app.supabase.io/project/\u003cyour-awesome-ng-project\u003e/editor/sql`\n\n```sql\n-- Create a table for Public Profiles\ncreate table profiles (\n  id uuid references auth.users not null,\n  username text unique,\n  avatar_url text,\n  website text,\n  updated_at timestamp with time zone,\n\n  primary key (id),\n  unique(username),\n  constraint username_length check (char_length(username) \u003e= 3)\n);\n\nalter table profiles enable row level security;\n\ncreate policy \"Public profiles are viewable by everyone.\"\n  on profiles for select\n  using ( true );\n\ncreate policy \"Users can insert their own profile.\"\n  on profiles for insert\n  with check ( auth.uid() = id );\n\ncreate policy \"Users can update own profile.\"\n  on profiles for update\n  using ( auth.uid() = id );\n\n-- Set up Storage!\ninsert into storage.buckets (id, name)\nvalues ('avatars', 'avatars');\n\ncreate policy \"Avatar images are publicly accessible.\"\n  on storage.objects for select\n  using ( bucket_id = 'avatars' );\n\ncreate policy \"Anyone can upload an avatar.\"\n  on storage.objects for insert\n  with check ( bucket_id = 'avatars' );\n```\n\n### Convenience Imports\n- `@env` - Access the environment files\n- `@app` - Access the code placed inside `/src/app`. Use `/@app/components` to access commonly used app components\n- `@modules` - Access the code placed inside `/src/app/modules`. This lets you to do something like `import { ... } from `@modules/supabase` or `import { ... } from `@modules/auth` to use the functions from the respective modules.\n- `@lib` - Just in case if you think of keeping app-specific libraries under `/src/lib`. However, it's reccomended to place the commonly used, app-wide components, directives, pipes, services, etc. in the `/projects/commons/lib`, expose through `public-api.ts` and use through `import { ... } from `commons`.\n- `commons` - The central place to put all the commonly used code.\n\n\n## License\nMIT\n\n\u003c!-- # NgStarterKit\n\nThis project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.0.3.\n\n## Development server\n\nRun `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.\n\n## Code scaffolding\n\nRun `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.\n\n## Build\n\nRun `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.\n\n## Running unit tests\n\nRun `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).\n\n## Running end-to-end tests\n\nRun `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.\n\n## Further help\n\nTo get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fone-aalam%2Fng-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fone-aalam%2Fng-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fone-aalam%2Fng-starter-kit/lists"}