Pragmatic web application toolkit
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 14
Language:Astro
Type:project
Requires
- gumlet/php-image-resize: ^2.0
- hxgf/cookie: ^1.1
- hxgf/dbkit: ^1.2
- hxgf/http-request: ^1.2
- hxgf/slime-render: ^1.3
- hxgf/x-utilities: ^1.2
- rbdwllr/psr-jwt: ^2.0
- slim/psr7: ^1.5
- slim/slim: 4.*
- vlucas/phpdotenv: ^5.5
- zordius/lightncandy: ^1.2
README
Web application development kit
DW is a "batteries-included" tool kit for quickly developing data-driven web applications with Astro. We've carefully assembled a collection of reliable and approachable tools to create a professional-grade, full-stack boilerplate that provides pre-wired functionality for CRUD and SaaS features.
This assembly leverages proven patterns and workflows, helping developers focus on their unique business logic instead of rebuilding foundational infrastructure.
What's Included?
Core Stack
- Astro (SSR w/ Node.js adapter)
- TypeScript
- Tailwind CSS with FlyonUI
- Better-Auth for authentication
- MySQL (8.0) with Kysely query builder
Additional Utilities
- Alpine.js - JavaScript framework for enhanced interactivity
- HTMX - Modern approach to dynamic content without writing JavaScript
- Cropper.js - Image cropping library
- Dropzone - Drag & drop file uploads
- SortableJS - Drag & drop sorting library
- Validator.js - String validation
- Zod - Schema validation
- Iconify - Icon framework with Tabler icons set
- MJML for email templates
Features
Infrastructure
- Server-side rendering with Astro and Node.js adapter
- TypeScript support with enhanced type safety
- Tailwind CSS with FlyonUI theme integration
- Better-Auth authentication system with role-based access control and OAuth configured with Google login
- MySQL database integration with Kysely query builder
- Comprehensive security configurations (CSP, CSRF protection)
Form Components
- Text input fields with validation
- Single and gallery photo upload with cropping
- Select dropdown
- Checkbox group
- Submit and delete buttons with form validation
- Textarea inputs
UI Components
- Configuratble alert system
- Modal dialogs
- Button links
Backend Architecture
- JWT-based authentication middleware
- Secure cookie handling
- Role-based authorization system
- CSRF protection middleware
- Email notifications with MJML templating
- File upload handling with image processing (integrated with bunny.net cdn & image processor)
- Configurable environment variables
- Database schema management
Developer Ergonomics
- Alias imports (@/ path resolution)
- Organized project structure
- Type definitions for enhanced IDE support
- Development mode conveniences (local cookie handling)
- Clear coding standards and best practices
Getting Started
- Clone the repository
git clone https://github.com/jyoungblood/darkwave.git my-project
cd my-project
- Install dependencies
npm install
- Configure environment variables
cp .env.example .env
Edit .env
with your configuration values.
- Initialize the database
# Generate the database schema npx @better-auth/cli generate # Apply the migrations npx @better-auth/cli migrate
- Start development server
npm run dev
Project Structure
src/
├── components/ # Reusable UI components
│ ├── forms/ # Form-related components
│ └── ui/ # General UI components
├── config/ # Application configuration
├── email-templates/ # Email templates
├── layouts/ # Page layouts
├── lib/ # Shared utilities and helpers
├── middleware/ # Request middleware
├── pages/ # Application routes
Core Philosophy
- Security and performance as top priorities
- Professional, maintainable solutions without unnecessary complexity
- Code that is easy to understand and maintain over clever solutions
- Proven, stable patterns over bleeding-edge features
- Long-term maintainability and reliability
- Pragmatic solutions using "boring" techniques
License
This project is licensed under the MIT License - see the LICENSE file for details.
* . · : · . ☽ ✧
- DW Classic - legacy PHP-based version