This is my first project using Svelte. It's a reading list app using Firestore and Google's Books API.
If you have any feedback, hit me up on Twitter @alexandraabbas.
If you'd like to run this app locally, create a .env
file in the root folder with the following necessary variables:
FIREBASE_API_KEY
FIREBASE_AUTH_DOMAIN
FIREBASE_DATABASE_URL
FIREBASE_PROJECT_ID
FIREBASE_BUCKET
FIREBASE_SENDER_ID
FIREBASE_APP_ID
BOOKS_API_KEY
Your BOOKS_API_KEY
will probably be the same as your FIREBASE_API_KEY
is you're using the same Google Cloud project.
For more more information about how to generate your Firabase config object, visit the Firebase documentation.
After configuring Firebase, create a Firestore instance and a collection named books
. Visit the Cloud Firestore documentation for more information.
Install the dependencies...
cd svelte-reading-app
npm install
...then start Rollup:
npm run dev
Navigate to localhost:5000. You should see the app running.
To create an optimised version of the app:
npm run build
You can run the newly built app with npm run start
. This uses sirv, which is included in your package.json's dependencies
so that the app will work when you deploy to platforms like Heroku.
By default, sirv will only respond to requests that match files in public
. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere.
If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for any path. You can make it so by editing the "start"
command in package.json:
"start": "sirv public --single"
Install now
if you haven't already:
npm install -g now
Then, from within your project folder:
cd public
now deploy --name my-project
As an alternative, use the Now desktop client and simply drag the unzipped project folder to the taskbar icon.
Install surge
if you haven't already:
npm install -g surge
Then, from within your project folder:
npm run build
surge public my-project.surge.sh