Skip to content

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

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.

  • 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

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