All Projects → one-aalam → svelte-starter-kit

one-aalam / svelte-starter-kit

Licence: MIT license
Svelte with brilliant bells and useful whistles

Programming Languages

Svelte
593 projects
typescript
32286 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to svelte-starter-kit

svelte-toy
A toy for svelte data stores
Stars: ✭ 73 (-80.99%)
Mutual labels:  svelte, sveltejs, sveltekit
ui-svelte
A component library for Svelte
Stars: ✭ 18 (-95.31%)
Mutual labels:  svelte, sveltejs, svelte3
svelte-headlessui
Unofficial Svelte port of Headless UI components
Stars: ✭ 564 (+46.88%)
Mutual labels:  svelte, sveltejs, svelte3
focus-svelte
focus lock for svelte
Stars: ✭ 18 (-95.31%)
Mutual labels:  svelte, sveltejs, sveltekit
hagura-sveltekit
A minimal markdown blog template built using SvelteKit
Stars: ✭ 51 (-86.72%)
Mutual labels:  svelte, sveltejs, sveltekit
programmingtil-svelte
No description or website provided.
Stars: ✭ 59 (-84.64%)
Mutual labels:  svelte, sveltejs, sveltekit
svelte-interview-questions
Concepts and Questions related to Svelte - Part of official Svelte resources list
Stars: ✭ 18 (-95.31%)
Mutual labels:  svelte, sveltejs, svelte3
svelte-meteor-data
Reactively track Meteor data inside Svelte components
Stars: ✭ 14 (-96.35%)
Mutual labels:  svelte, sveltejs, svelte3
sveltekit-blog
Sveltekit blog starter project created with sveltekit, typescript, tailwindcss, postcss, husky, and storybook. The project has the structure set up for the scaleable web application.
Stars: ✭ 100 (-73.96%)
Mutual labels:  svelte, sveltejs, sveltekit
svelte-portal
Svelte component for rendering outside the DOM of parent component
Stars: ✭ 261 (-32.03%)
Mutual labels:  svelte, sveltejs, svelte3
svelte-webcomponents
A ready-to-use project template to build custom elements (web components) with Svelte 3 with support and examples for web components, jest, sass, nested components with props, eslinting, stylelinting, Github actions, propagating custom events from shadow-DOM to real-DOM etc.
Stars: ✭ 22 (-94.27%)
Mutual labels:  svelte, sveltejs, svelte3
generator-jhipster-svelte
Generate Svelte powered JHipster web applications
Stars: ✭ 44 (-88.54%)
Mutual labels:  svelte, sveltejs, sveltekit
Svelte Material Ui
Svelte Material UI Components
Stars: ✭ 2,081 (+441.93%)
Mutual labels:  svelte, sveltejs, svelte3
s-date-range-picker
📅 A date range picker built with Svelte
Stars: ✭ 13 (-96.61%)
Mutual labels:  svelte, sveltejs, svelte3
svelte-accessible-dialog
An accessible dialog component for Svelte apps
Stars: ✭ 24 (-93.75%)
Mutual labels:  svelte, sveltejs, svelte3
its-ok-i-guess
🧐 Guess the game from the Steam review!
Stars: ✭ 41 (-89.32%)
Mutual labels:  svelte, sveltejs
kickstart
Ruby on Rails application templates
Stars: ✭ 61 (-84.11%)
Mutual labels:  svelte, sveltekit
plugins
Elder.js plugins and community plugins.
Stars: ✭ 80 (-79.17%)
Mutual labels:  svelte, sveltejs
svelte-quotes
A small app to demonstrate use of SvelteJS
Stars: ✭ 16 (-95.83%)
Mutual labels:  svelte, sveltejs
svelte-simple-icons
📦 This package provides the Simple Icons packaged as a set of Svelte components.
Stars: ✭ 27 (-92.97%)
Mutual labels:  svelte, sveltejs

Svelte Starter Kit

Svelte Starter Kit is an opinionated boilerplate based off of SvelteKit, with all the bells and whistles you want ready, up and running when starting any Full-stack Svelte/Javascript project. Out of the box you get all the essentials

  • Typescript as the language choice
  • Tailwind CSS for quick styling without getting out of your HTML
  • ESLint and Prettier for static code analysis and code formatting
  • SEO pre-configured

with Supabase as the 3rd Party Persistence Layer for

  • Authentication System with Supabase GoTrue
  • User Profiles available on /profile as an example for Supabase PostgREST (CRUD API)
  • User Avatar which is Supbase Storage(AWS S3 backed effortless uploads) supported

and a huge bunch of pre-made, hand-rolled(easily replace-able) components, that you almost always end up installing/using for any non-trivial project

  • Alert/Toast to notify your users of the outcome of an event - success, errorordefault` is supported
  • Modal(with multiple Modal and Sidepanel support) as you always come back to `em
  • Loaders(two types) for reporting the progress of an API call + a page load
  • Popover for contextual menus
  • Form Helpers for basic input types, validation and submission

Note: Refer the basic branch for a bare minimum starter structure with all the essentials

How to Setup?

If new to Supabase

  • Create account at Supabase
  • Create a Organisation, and a project

Once done, or if you already have a Supabase project

  • Copy the generated project's API authentication details from https://app.supabase.io/project/<your-awesome-svelte-project>/api/default?page=auth
  • Place the details in .env/.env.local as VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY
  • Install NPM dependencies

Svelte Start Kit supports profile and user avatars now. To get the profile table and storage ready, execute the following query at https://app.supabase.io/project/<your-awesome-svelte-project>/editor/sql

-- Create a table for Public Profiles
create table profiles (
  id uuid references auth.users not null,
  username text unique,
  avatar_url text,
  website text,
  updated_at timestamp with time zone,

  primary key (id),
  unique(username),
  constraint username_length check (char_length(username) >= 3)
);

alter table profiles enable row level security;

create policy "Public profiles are viewable by everyone."
  on profiles for select
  using ( true );

create policy "Users can insert their own profile."
  on profiles for insert
  with check ( auth.uid() = id );

create policy "Users can update own profile."
  on profiles for update
  using ( auth.uid() = id );

-- Set up Storage!
insert into storage.buckets (id, name)
values ('avatars', 'avatars');

create policy "Avatar images are publicly accessible."
  on storage.objects for select
  using ( bucket_id = 'avatars' );

create policy "Anyone can upload an avatar."
  on storage.objects for insert
  with check ( bucket_id = 'avatars' );

profiles table's chnages are not observed in real-time due to performance reasons. If needed, execute the following query

begin;
  drop publication if exists supabase_realtime;
  create publication supabase_realtime;
commit;
alter publication supabase_realtime add table profiles;

and get started by running yarn dev

Why SvelteKit?

Landing from a different Full-stack UI framework(Next.js, NuxtJS, Angular Universal)? Here's few essential watches and readings -

Why Supabase?

Building

Svelte Kit apps are built with adapters, which optimise your project for deployment to different environments.

By default, yarn build will generate a Node app that you can run with node build. To use a different adapter, add it to the devDependencies in package.json making sure to specify the version as next and update your svelte.config.cjs to specify your chosen adapter. The following official adapters are available:

See the adapter documentation for more detail

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].