Skip to content

Collection of Curated Tools for Creators, Entrepreneurs, and Indie Hackers, to get to market faster and take your business to the next level.

Notifications You must be signed in to change notification settings

derpycoder/derpy_tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DerpyTools

GitHub commit activity (branch) GitHub top language GitHub GitHub repo size GitHub Repo stars

Elixir Phoenix LiveView Sqlite Tailwind CSS

Metadata Checker

Run Locally

  1. brew install go-task
  2. task install:tools
  3. task install:deps

  1. task generate:caddy_cert
  2. task setup:hosts

  1. task start:meilisearch
  2. task start:imgproxy
  3. task start:caddy
  4. task start:server

Visit localhost:4000 or https://derpytools.site

Architecture

graph TD

U(User) <---> |Proxy| C{Caddy}

subgraph VPS
  C{Caddy} <---> |Admin| LiveBook
  Phoenix <---> |Search| Meilisearch

  C{Caddy} <---> |Server| Phoenix
  Phoenix <---> |Database| Sqlite
  Sqlite <---> |Backup| Litestream

  C{Caddy} <---> |Cache| Varnish
  Varnish <---> |Image Transformer| Imgproxy

  C{Caddy} <---> |Monitoring| Netdata
end

Phoenix <---> |S3| S3((Object Store))
Imgproxy <---> |S3| S3((Object Store))
Litestream <---> |S3| S3((Object Store))
Loading

Meta Routes

  • /stats
  • /version
  • /health
  • /release

TODO (App)

Blog

Table of Contents

  • Reach feature parity with Ghost Blog
    • Routing
    • Table of Contents
    • Reading time estimation
    • Human readable dates & relative time
    • Footer Nav Button
    • Related Posts
    • Resizable Images using Imgproxy
    • Routing
    • HTTP/3, Brotli, AVIF like modern features achieved
    • Keyboard Shortcuts
    • Meilisearch for Command Palette
    • Command Palette
    • Proper code snippet embed
    • Code snippet copy button
    • Recent Posts
    • Blog main page
    • Tags page
    • Metadata
      • LD Json
      • Atom feed
      • Sitemap
    • Componetize all blog post elements
    • URL auto-embed, with auto image extraction
    • File uploader with cropping & compression
    • Lqip

  • Move blog posts
    • Taskfile
    • Multipass
    • Image Compression

  • Move misc pages from Ghost Blog
    • Privacy Policy
    • Terms & Conditions
    • About
    • Social Share
    • Cookie Consent
    • Contact Form

Tools

Command Palette Keyboard Shortcut

  • URL Beaver
    • Metadata Analyzer (WIP)
    • UTM Builder (WIP)
    • URL Shortener
    • Referral link manager
    • Wordle

Authentication & Authorization

Auth Flow

  • Authentication

    • Basic Auth
    • Google OAuth
    • GitHub OAuth
    • Designed Auth pages to look fabulous
  • Authorization

    • Add policies to restrict apps and routes to certain users
    • Add super user through an env variable

Misc

Derpy Tools

  • Heartbeat
  • Offline Indicator
  • Dark Mode
  • Content Security Policy
  • Permissions Policy
  • Source Code Inspect
  • Image lazy loading
  • Tailwind Custom Config
  • CSP Nonce added to Live Dashboard & Inline Styles/Scripts
  • Caddy Error Routes
  • Varnish cache to cache Images
  • Added meta routes
  • Moved to Bandit server
  • Env variables split into multiple files
  • 404 & 500 Pages added
  • UUID7
  • Local storage to persist user inputs
  • Build Server Side Analytics using Clickhouse

TODO (Local)

  • Litestream backup download to get a copy of production db for local testing
  • Setup live book & live documentation/playground

TODO (Stg / Prod)

  • Add commands to run in staging & production
  • Setup Varnish
  • Setup Imgproxy
  • Systemd encryption of env files
  • Reduce the number of bash scripts using variables

About

Collection of Curated Tools for Creators, Entrepreneurs, and Indie Hackers, to get to market faster and take your business to the next level.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published