arrow_back Back to Guides
Integration

Get Started Building a Svelte Website with Directus

By Eron Powell & Azri Kahar on February 21, 2022

This example will show you how to link a simple Svelte frontend blog template to a Directus Project with a simple SQLite database containing a few blog posts.

Scope and Purpose

The purpose of this article is to focus on the bare basics of linking a Svelte frontend to Directus, then show you where to learn about more robust authentication methods, roles & permissions configurations, and API functionalities. It is important to stress to new users that Directus is a general purpose database wrapper, which mirrors any linked database. No matter your data model or use-case, Directus can serve as a backend (plus no-code admin panel) for any type of project and also connect to any (or many) different front-ends.

Please keep in mind that this is not a demo showing what Directus can be used for, but rather a low variable entry-point on the path to understanding how to do anything you want with it.

This example was created for demonstration purposes and is not intended to be production ready, but PRs that address this and any other issues are always welcome! See Contribution Guidelines.

Setup

  1. Clone the examples repo.

Every frontend template in theexamplesrepo references thesharedfolder. So moving these directories around from one location to another could break the relative file path.

  1. From that repo, setup the provided Directus instance and get it running. Instructions are on theREADME.mdpage.

  2. Install dependencies for this example.

cd svelte
npm install
  1. Create a.envfile for this Svelte template by copying and pasting the provided.env.examplefile. Nothing will need to be changed in the copied.envfile.

  2. Start the development server.

npm run dev
  1. Your Directus Svelte example is now running at http://localhost:3000.

Now that you have the frontend and backend linked up, let's touch on what's happening in this project and where to find more sophisticated options.

Svelte

Svelte is an incrementally adoptable framework for building webapps similar to React or Vue. However the difference is it compiles on build time instead of run time, producing highly-optimized vanilla JavaScript, smaller bundles, and better performance. Server-side rendering (SSR), routing and more is available as well with Sveltekit.

Also, please note the Directus JavaScript SDK is pulled in underexamples > svelte > src > services > directus.js. If you're interested, see thedirectus.jsfile on GitHub and read more in the Directus SDK Documentation.

Authentication

Aside from the defaultlocalauthentication mechanism, Directus also supports SSO throughoauth2,openid, andldap. To learn more about SSO options, read our SSO Documentation or follow our guide on how to setup SSO.

Users, Roles and Permissions

Directus Permissions

For simplicity's sake, this Directus instance provided has Public read permissions activated forarticlesanddirectus_users. Find Permissions in your local Directus Instance underSettings > Roles and Permissions.

Additionally, any number of Roles can be created and fully configured. Permissions are completely granular. Learn more about this in our documentation on Users, Roles and Permissions.

APIs

There are two simple requests in this example worth noting. The first is inhome.svelteand the other inArticle.svelte. If you'd like to see these, here are links to Home.svelte and Article.svelte on GitHub. However, please note that the Directus API is exhaustive for any database linked.

Directus uses Database Mirroring to dynamically generate REST endpoints and a GraphQL schema based on the connected database's architecture. This means the REST and the GraphQL APIs will both fit any project with any database schema, out of the box. Learn more in the API Reference.

More Help

Looking for technical support for your non-enterprise project? Please visit the Directus Discord Community.

Want to stay focused on your content and apps? Let Directus manage the platform with our Directus Cloud service.

Interested in contributing guides like this?

Just like our software, these guides are open-source! Getting started is as easy as submitting a pull-request to our Guides repository!

Press and Media
For any press or media inquiries, feel free to reach out via our contact form and we can discuss. Contact us
Brand Assets
Use the link below to download a zip file containing of our brand guidelines, vector logo, or other resources. Download brand assets

Take back control of your data.

No spam, just important updates regarding Directus.