Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Full-stack todo app template built with Nuxt, featuring GitHub OAuth, Turso database with Drizzle ORM, and NuxtHub deployment.
Atidone is an open-source full-stack todo application template built with Nuxt that demonstrates server-side rendering, GitHub OAuth authentication, and SQL database querying with Turso and Drizzle ORM.
Atidone is a demonstration app by atinux that combines Nuxt's server-side rendering with GitHub OAuth login and a SQL database. As input it takes a GitHub OAuth application configuration and a Turso database connection; as output it produces a working multi-user todo manager with signed-in sessions. The project is MIT-licensed and can be deployed to Vercel or Cloudflare.
npx nuxthub deploy.npx nuxthub deploy to push the project to your Cloudflare account for free, then connect to the remote database locally with pnpm dev --remote.A developer installs dependencies with pnpm i, creates a GitHub OAuth application, and sets the three required environment variables. Running npm run dev starts the server on http://localhost:3000, where users sign in with GitHub and manage todos stored in Turso. Deployment is handled by Vercel's one-click flow or by npx nuxthub deploy to Cloudflare.
The main template ships GitHub OAuth only via nuxt-auth-utils. The author maintains a separate example called todo-passkeys that demonstrates Passkeys (WebAuthn) authentication if you need a passwordless alternative.
Atidone uses Turso, a SQLite-compatible distributed database, accessed through NuxtHub DB and modeled with Drizzle ORM. In development it runs as a local SQLite file, and you can connect to the remote Cloudflare-backed database with pnpm dev --remote.
The repository is released under the MIT License, so you can use and modify it freely. Deployment via NuxtHub to Cloudflare is described as free with zero configuration in the README.
The README suggests generating a random string of at least 32 characters with the command openssl rand -hex 32 and storing it as the NUXT_SESSION_PASSWORD environment variable.
A live demo of Atidone is hosted at https://todos.nuxt.dev, and the repository links a social preview image at https://todos.nuxt.dev/social-image.png.
