{"id":13719817,"url":"https://github.com/one-aalam/remix-starter-kit","last_synced_at":"2025-04-09T21:23:08.305Z","repository":{"id":43283357,"uuid":"431056595","full_name":"one-aalam/remix-starter-kit","owner":"one-aalam","description":"Remix with brilliant bells and useful whistles","archived":false,"fork":false,"pushed_at":"2022-07-09T16:15:18.000Z","size":1327,"stargazers_count":239,"open_issues_count":2,"forks_count":26,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-02T19:08:02.222Z","etag":null,"topics":["daisyui","eslint","full","full-stack","remix","remixrun","starter-kit","starter-template","supabase-auth","supabase-db","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}},"created_at":"2021-11-23T10:28:49.000Z","updated_at":"2025-02-08T16:43:11.000Z","dependencies_parsed_at":"2022-09-07T05:11:44.131Z","dependency_job_id":null,"html_url":"https://github.com/one-aalam/remix-starter-kit","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fremix-starter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fremix-starter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fremix-starter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fremix-starter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/one-aalam","download_url":"https://codeload.github.com/one-aalam/remix-starter-kit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248113034,"owners_count":21049769,"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":["daisyui","eslint","full","full-stack","remix","remixrun","starter-kit","starter-template","supabase-auth","supabase-db","supabase-js","supabase-storage","tailwindcss"],"created_at":"2024-08-03T01:00:55.952Z","updated_at":"2025-04-09T21:23:08.268Z","avatar_url":"https://github.com/one-aalam.png","language":"TypeScript","funding_links":[],"categories":["Starter","Templates"],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"./public/rsk.png\" height=\"140px\" title=\"Remix Starter Kit\" /\u003e\n\u003c/div\u003e\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cstrong\u003eRemix + Supabase starter for Typescript lovers\u003c/strong\u003e\u003c/div\u003e\n\n\n_Remix Starter Kit_ is an opinionated boilerplate based off of [Remix](https://remix.run/), with all the bells and whistles you would want ready, up and running when starting a Remix project with Supabase.\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/remix-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/remix-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- __Headless UI + React Hot Toast__ for robust headless logic you can use for components like Dialog/Modal, Dropdown, List, etc.\n- __WorkSans__ as the App font\n- __Icons through React-icons__ for on-demand, tree-shakeable icons\n- __ESLint__ for static code analysis\n- __Prettier__ for code formatting (even for your TailwindCSS classes - sorted as per Tailwindlab reccomendations)\n- __Playwright__ for reliable end-to-end test cases (+ end-to-end test cases for the homepage and the sign-in page)\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) (*retreival-only for now*)\n- __User Avatar__ with Supbase Storage(AWS S3 backed effortless uploads) available on `/images/[bucket-name]/[image-name]` resource routes. When retrieving you use the SDK server-side, and when uploading you use the client-side SDK loaded from CDN to upload the images to Supabase managed buckets, which are linked to profile on successful uploads.\n\nand a bunch of pre-made, hand-rolled(easily replace-able) components, that you almost always end up installing/using for any non-trivial project\n\n- __*Bonus(Ad)__ wanna experiment with Edge/Cloudflare? Check out [Remix Edge Kit](https://github.com/one-aalam/remix-edge-kit/) and choose your journey with [FaunaDB](https://github.com/one-aalam/remix-edge-kit/tree/with-fauna), [Supabase](https://github.com/one-aalam/remix-edge-kit/tree/with-supabase), or [Prisma + DataProxy](https://github.com/one-aalam/remix-edge-kit/tree/main)(Railway.app) or [Prisma + DataProxy](https://github.com/one-aalam/remix-edge-kit/tree/with-planetscale)(Planetscale). The later 2 are WIP.\n\n__Note__: Refer the [basic](https://github.com/one-aalam/remix-starter-kit/tree/basic) branch for a bare minimum starter structure with all the `essentials`.\n\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\nnpm run dev\n```\nwhich kickstarts the Remix development and build server as well as TailwindCSS compilation in the watch mode. Open `http://localhost:3000` in your browser to start working.\n\nCheck `package.json` for the full list of commands available at your disposal.\n\n## How to Setup Supabase for Remix 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-remix-project\u003e/api?page=auth`\n- Place the details in `.env` as `SUPABASE_URL` and `SUPABASE_KEY`\n- Install NPM dependencies, by running `npm install` or `npm i`\n\nRemix Starter 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-remix-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**Note** When going live remember to configure `SUPABASE_URL` and `SUPABASE_KEY` in your deployment service provider like Vercel\n\n## What you'll get?\nWith all the configs done right, you should get the following screens/views up and running\n\n\n### Sign In\n\u003chr/\u003e\n\u003cimg src=\"./public/app-shots/sign-in.png\" alt=\"Sign In\"\u003e\n\u003chr/\u003e\n\n### Sign In (with validation errors)\n\u003chr/\u003e\n\u003cimg src=\"./public/app-shots/sign-in-error.png\" alt=\"Sign In\"\u003e\n\u003chr/\u003e\n\n### Sign Up\n\u003chr/\u003e\n\u003cimg src=\"./public/app-shots/sign-up.png\" alt=\"Sign In\"\u003e\n\u003chr/\u003e\n\n### Profile (default landing)\n\u003chr/\u003e\n\u003cimg src=\"./public/app-shots/profile.png\" alt=\"Sign In\"\u003e\n\u003chr/\u003e\n\n### Profile Update Screen (with image upload)\n\u003chr/\u003e\n\u003cimg src=\"./public/app-shots/profile-edit.png\" alt=\"Sign In\"\u003e\n\n\n\n## Recommendations\n- Use `npm-check-updates` to ineractively update your dependencies using `ncu -i`\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fone-aalam%2Fremix-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fone-aalam%2Fremix-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fone-aalam%2Fremix-starter-kit/lists"}