What is this?
🚜
3 major pieces
The stack Major & minor supporting libs / set of common dependencies Custom packages / utilities developed as needed (dw-cli, components, etc)
The boilerplate Blank app - Pre-wired auth, middleware etc Extendable Admin app
The philosophy
In practice, Darkwave is just a starter kit for Astro.
At a higher level, however, it’s an entire paradigm for building web applications.
When combined, this boilerplate and philosophy enable a very efficient and enjoyable workflow.
Building a reliable stack that makes it easy to take advantage of new opportunities (change directions, adapt to market shifts) Built to ship AND ALSO Built to last
The Stack
Section titled “The Stack”Darkwave is primarily a “stack,” or a pre-wired configuration of specific frameworks, libraries, and dev tools. We intentionally made straightforward responsible choices one might use to build a reliable CRUD app.
You don’t have to deal with the foundational minutae that comes with starting a new project. The boring problems are already solved: we’ve done the research, evaluated the available options, and gone to the trouble of putting together a good starting point to build an application.
Core Stack
Section titled “Core Stack”- Astro (SSR w/ Node.js adapter and TypeScript support)
- MySQL (8.0) with Kysely query builder & cli
- Better-Auth
- Tailwind CSS with FlyonUI
Supporting Libraries
Section titled “Supporting Libraries”The Boilerplate
Section titled “The Boilerplate”- app structure
- middleware
- config mgmt
- db schemas
- default CSP, CSRF validation for forms
- .env boilerplate & integration
- astro config
- Alias imports (@/ path resolution)
- Development mode conveniences (local cookie handling)
- auth system
- JWT-based authentication middleware
- role-based access control
- OAuth configured with Google login
- login/auth flow
- register/login templates and BE handlers wired with better-auth (& nodemailer)
- components
- basic form ui
- form validation
- input validation
- integrated form handling with back-end components (buttons that submit forms in a specific way, back-end routes that handle the data in a specific way)
- fancier components - photo uploads, gallery, audio, text editors, etc
- File upload handling with storage providers for S3/R2, Bunny.net, and, local filesystem
- Image processing handlers (optimization, cropping)
- backend
- helpers
- crud abstraction
- Email notifications TSX components
- admin app
- wannabe wordpress admin
- simple base you can extend as needed
- you can ignore it, too, who cares
The Philosophy / Workflow
Section titled “The Philosophy / Workflow”DW is basically just how I build web sites My best practices Codified in a a general way that other people can understand (including me)
- enough examples between the codebase and the docs for you to get the gist of how to build with this
- Clear coding standards and best practices