Skip to content
View JohnBra's full-sized avatar
💪
covert memester
💪
covert memester

Organizations

@smart-coffee

Block or report JohnBra

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JohnBra/README.md
  • 🖥️ Check out my blog/website at jebraat.com
  • 🚀 Some of the things I have worked on:
    • vite-web-extension - A minimal chrome/firefox extension template using React, TypeScript, Vite and TailwindCSS
    • Send URL to Things3 - Chrome extension to create a new task in the Things3 app

Socials

Pinned Loading

  1. vite-web-extension vite-web-extension Public template

    Vite web extension template. Setup with React, Typescript and TailwindCSS

    TypeScript 574 84

  2. raycast/extensions raycast/extensions Public

    Everything you need to extend Raycast.

    TypeScript 5.4k 3.1k

  3. Typed React useStorage hook for chro... Typed React useStorage hook for chrome extensions
    1
    import { Dispatch, SetStateAction, useState, useEffect, useCallback, useRef } from 'react';
    2
    
                  
    3
    export type StorageArea = 'sync' | 'local';
    4
    
                  
    5
    // custom hook to set chrome local/sync storage
  4. leonardokl/react-palette leonardokl/react-palette Public

    Extract prominent colors from an image

    TypeScript 172 30

  5. jebraat.com jebraat.com Public

    🚀 My personal website and blog - Nextjs, TailwindCSS, Supabase and Typescript

    MDX 17 1

  6. A TailwindCSS glowing gradient borde... A TailwindCSS glowing gradient border button
    1
    import React from 'react'
    2
    
                  
    3
    function cn(...classes: any[]) {
    4
      return classes.filter(Boolean).join(' ')
    5
    }