Este template pretende ser una forma rapida de iniciar proyectos de svelte 5 con lo escencial supabase para ir escalandolo progresivamente.
svelte 5.19.7
sveltekit 2.17.1
tailwind 4.0.3
typescript 5.7.3
bun 1.2.2
Vite 6.0.11
Prettier 3.4.2
.env.local
y +page.server.ts
con los datos de supabase[!IMPORTANT] Para poder instalar los paquetes con el gestor bun el cual encarecidamente recomiendo por multiples beneficios, es necesario tener instalado bun
bun install
bun run dev
bun run dev --open
Aqui bun ejecutara el script vite build
bun run build
Aqui bun ejecutara el script vite preview
bun run preview
[!NOTE]
Para usar bun como bundler es necesario hacer configuraciones extra
Para deployar un proyecto es necesario agregar un adaptador. sveltekit provee algunos adaptadores oficiales: https://svelte.dev/docs/kit/adapters
To deploy your app, you may need to install an adapter for your target environment.
Luego de crear un proyecto en supabase e instalar las dependencias; se puede rapidamente probar la conexion con los siguientes pasos:
.env.local
+page.svelte
, +page.server.ts
, supabaseClient.ts
y .env.local
+page.server.ts
;reemplazar "tableName" con el nombre de la tabla creada.bun run dev
)Se deberian ver los datos de la tabla tanto por consola en el cliente como en el servidor, estos logs estan en +page.svelte
[!WARNING] Una vez echo esto es importante volver a agregar el archivo .env.local al .gitignore
.
├── src/
│ ├── lib/
│ ├── routes/
│ │ ├── +layout.svelte
│ │ └── +page.svelte
│ ├── app.css
│ ├── app.d.ts
│ └── app.html
├── static/
├── .gitignore
├── .prettierignore
├── .prettierrc
├── bun.lock
├── package.json
├── README.MD
├── .env.local
├── svelte.config.js
├── tailwind-config.js
├── todo.md
├── tsconfig.json
└── viteconfig.json
A continuacion una definicion breve de cada carpeta o archivo
.gitignore
: Lista de archivos/carpetas ignorados por Git..prettierignore
: Lista de archivos/carpetas ignorados por Prettier..prettierrc
: Configuración de estilos de código para Prettier.bun.lock
: Versiones exactas de dependencias (Bun).package.json
: Metadatos y dependencias del proyectoREADME.md
: Documentación del proyecto..env.local
: Variables de entorno locales (deben ser ignoradas en .gitignore).svelte.config.js
: Configuración de svelte y SvelteKit. (adapters - aliases - output- etc... )tailwind.config.js
: Configuración de Tailwind CSS. (theme, variants, plugins, colors, breakpoints, and purge settings)todo.md
: Lista de tareas pendientes en formato opionado pero flexible.tsconfig.json
: Configuración de TypeScript.vite.config.json
: Configuración de Vite.src/
: Contiene el código fuente principal de la aplicación.lib/
: Componentes reutilizables y utilidades (se puede importar por default con el alias '$lib')routes/
: Páginas y rutas de la aplicación (cada ruta es una carpeta con un archivo +page.svelte).+layout.svelte
: Layout prinicipal (debe contener un children y es el unico layout que no se puede ignorar)+page.svelte
: primer pagina de la appapp.css
: Estilos globales de la aplicación.app.d.ts
: Declaraciones de tipos globales para TypeScript.app.html
: Plantilla HTML principal de la aplicación donde svelte renderiza todo lo que este en el layout.static/
: Archivos estáticos (imágenes, fuentes, etc.) que se sirven directamente sin optimizacion alguna.Supabase ofrece varios paquetes oficiales para diferentes casos de uso.
debido a que este template no asume que el proyecto necesita autenticacion, entonces solo se instala el paquete escencial @supabase-js
el cual permite realizar CRUDS sencillos a excepcion de aquellos que involucren Row Level Security con solo usuarios autenticados
En caso de necesitar otras funcionalidades probablemente alguno de los siguientes paquetes deberian de agregarse.
@supabase/ssr
: link@supabase/auth-ui-svelte
: link@supabase/auth-ui-shared
: link@supabase/storage-js
: link@supabase/functions-js
: link[!TIP] Para evitar imprevistos o aparentes bugs, es importante considerar las RLS actuales de la tabla y que el proyecto este habilitado
[!NOTE] Si se va a agregar autenticacion es necesario:
- Cambiar site URL dentro de URL configuration a la url actual: 'http://localhost:5174/' (en caso de que este deployado en un dominio sera otra la url)
- Cambiar redirect URLs a: 'http://localhost:5174/**' (para incluir todas las rutas generadas con sveltekit)
Hay una carpeta llamada .vscode
la cual no inclui en la estructura general del proyecto puesto que es optativa y deberia de eliminarse una vez configurado todo.
La misma tiene cuatro archivos, los cuales sugieren utilidades opcionales:
extensions.json
: extensiones recomendadas para el stack actualmarkdown.json
: snippets para poder trabajar comodamente en markdown , especificamente en el archivo todo.md settings.json
: Configuraciones para trabajar comodamente con svelte, markdown, typescript y vscodesvelte.json
: snippets utiles para trabajar en archivos.svelte