Skip to content
/ atidone Public template

A full-stack application with Auth, SSR and SQL, running on the edge with Nuxt.

License

Notifications You must be signed in to change notification settings

atinux/atidone

Repository files navigation

Manage your Todos with Atidone ☑️

A demonstration using Nuxt with server-side rendering on the edge, authentication and database querying using Cloudflare D1 with Drizzle ORM.

Deploy to NuxtHub

Features

Live demo

https://todos.nuxt.dev

nuxt-todos-edge-demo.mp4

To see an example using Passkeys (WebAuthn) for authentication, checkout todo-passkeys.

Setup

Make sure to install the dependencies using pnpm:

pnpm i

Create a GitHub Oauth Application with:

  • Homepage url: http://localhost:3000
  • Callback url: http://localhost:3000/api/auth/github

Add the variables in the .env file:

NUXT_OAUTH_GITHUB_CLIENT_ID="my-github-oauth-app-id"
NUXT_OAUTH_GITHUB_CLIENT_SECRET="my-github-oauth-app-secret"

To create sealed sessions, you also need to add NUXT_SESSION_PASSWORD in the .env with at least 32 characters:

NUXT_SESSION_PASSWORD="your-super-long-secret-for-session-encryption"

Development

Start the development server on http://localhost:3000

npm run dev

In the Nuxt DevTools, you can see your tables by clicking on the Hub Database tab:

drizzle-meets-nuxt-devtools.mp4

Deploy

You can deploy this project on your Cloudflare account for free and with zero configuration using NuxtHub.

npx nuxthub deploy

It's also possible to leverage Cloudflare Pages CI for deploying, learn more about the different options on https://hub.nuxt.com/docs/getting-started/deploy

Remote Storage

Once you deployed your project, you can connect to your remote database locally running:

pnpm dev --remote

Learn more about remote storage on https://hub.nuxt.com/docs/getting-started/remote-storage

License

MIT License