FirefoxPWA
SendWhatsppTextByJavaScript
FirefoxPWA | SendWhatsppTextByJavaScript | |
---|---|---|
32 | 282 | |
553 | 10 | |
- | - | |
8.7 | 0.0 | |
over 2 years ago | about 3 years ago | |
JavaScript | JavaScript | |
Mozilla Public License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
FirefoxPWA
- FirefoxPWA: Progressive Web Apps for Firefox
-
Hacker News top posts: Dec 4, 2021
FirefoxPWA: Progressive Web Apps for Firefox\ (38 comments)
- FirefoxPWA: A tool to install, manage and use Progressive Web Apps (PWAs) in Mozilla Firefox
-
How to make desktop icons like chrome?
That's an old tutorial, the pref its asking you to toggle doesn't exist in the latest Nightly anymore. Your best bet is to use an extension but if that doesn't work, then you're screwed. Mozilla isn't continuing development of this feature.
-
Do firefox have something like --app switch in chrome?
Are you referring to PWA? Unfortunately, Firefox does not yet support it; however, you can use this for the feature. The exension isn't great and buggy, but it gets the job done.
- Is it just me or does someone else desires desktop PWA's like Microsoft Edge or Brave or whatever?
-
Bring back and improve PWA/SSB support
Just use https://github.com/filips123/FirefoxPWA if you so desperately need it
SendWhatsppTextByJavaScript
-
Selenium WebScraper for WhatsApp to atomatically add People in Group
def __init__(self, group_name=GN): self.group_name = group_name logging.info("Starting WhatsAppGroupManager") options = webdriver.ChromeOptions() options.add_argument("user-data-dir=" + PATH_TO_CHROME_DRIVER_USER_PROFILE) self.driver = webdriver.Chrome(options=options) # self.driver.maximize_window() self.driver.get('https://web.whatsapp.com/') logging.info("Opened WhatsApp Web") def manager_kill(self): self.driver.close() self.driver.quit() def open_group_chat(self): try: # Wait for the chat input field to be visible chat_input = WebDriverWait(self.driver,45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/div[2]/div[3]/div/div[1]/div/div[2]/div[2]/div/div[1]/p') ) ) time.sleep(sleep_time) chat_input.click() Logger.info("Clicked on the chat input field on the left side of WhatsApp") time.sleep(sleep_time) # Find the input field again after clicking on it chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/div[2]/div[3]/div/div[1]/div/div[2]/div[2]/div/div[1]/p') ) ) chat_input.send_keys(self.group_name) Logger.info("Inserted the group name into the search field") time.sleep(sleep_time) chat_input.send_keys(Keys.ENTER) Logger.info("Pressed ENTER") time.sleep(sleep_time) Logger.info("Opened the group chat") except Exception as e: Logger.error(f"Error: {e}") self.manager_kill() return None def open_group_info(self): try: # open group chat self.open_group_chat() time.sleep(sleep_time) chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/div[2]/div[4]/div/header/div[3]/div/div[3]/div/div/span') ) ) chat_input.click() Logger.info("Clicked on the group info button") time.sleep(sleep_time) # Find the input field again after clicking on it chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/span[5]/div/ul/div/div/li[1]/div') ) ) chat_input.click() Logger.info("In group info menu") time.sleep(sleep_time) except Exception as e: logging.error(f"Error in open_group_info: {e}") self.manager_kill() return None def open_add_telephone_numbers(self): self.open_group_info() time.sleep(sleep_time) try: chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/div[2]/div[5]/span/div/span/div/div/div/section/div[7]/div[2]/div[1]/div[2]/div/div') ) ) chat_input.click() Logger.info("Clicked on the add telephone numbers button") time.sleep(sleep_time) except Exception as e: logging.error(f"Error in open_add_telephone_numbers: {e}") self.manager_kill() return None def add_telephone_numbers(self, phone_numbers): if isinstance(phone_numbers, str): phone_numbers = [phone_numbers] # convert string to list self.open_add_telephone_numbers() time.sleep(sleep_time) try: for phone_number in phone_numbers: try: chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/span[2]/div/span/div/div/div/div/div/div/div[1]/div/div[2]/div[2]/div/div[1]/p') ) ) chat_input.click() Logger.info("Clicked on the search field") time.sleep(sleep_time) # Clear the text field chat_input.send_keys(Keys.CONTROL + 'a') chat_input.send_keys(Keys.DELETE) chat_input.send_keys(phone_number) Logger.info("Inserted the phone number into the search field") time.sleep(sleep_time) # Check if the phone number exists # Not Working try: WebDriverWait(self.driver, 2).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/span[2]/div/span/div/div/div/div/div/div/div[2]/div/div/div/div[2]/div/div[2]') ) ) Logger.info("Phone Number exist") time.sleep(sleep_time) # Send the ENTER key chat_input.send_keys(Keys.ENTER) Logger.info("Pressed ENTER to add the person into the group") time.sleep(sleep_time) continue except: Logger.info(f"Phone number does not exists: {phone_number}") time.sleep(sleep_time) pass except Exception as e: logging.error(f"Error in open_add_telephone_numbers: {e}") self.manager_kill() return None # Send the ENTER key chat_input.send_keys(Keys.ENTER) Logger.info("Pressed ENTER to add the person into the group") time.sleep(sleep_time) chat_input = WebDriverWait(self.driver, 45).until(EC.visibility_of_element_located( ( By.XPATH, '/html/body/div[1]/div/span[2]/div/span/div/div/div/div/div/div/span[2]/div/div/div/span') ) ) chat_input.click() Logger.info("Clicked on the add telephone numbers button") time.sleep(sleep_time) # Confirm the adding of the telephone numbers chat_input = WebDriverWait(self.driver, 45).until(EC.element_to_be_clickable( ( By.XPATH, '/html/body/div[1]/div/span[2]/div/span/div/div/div/div/div/div[2]/div/button[2]/div/div') ) ) time.sleep(5) Logger.info("Should click on the confirmation the add telephone numbers button") chat_input.click() Logger.info("Clicked on Confirmation the add telephone numbers button") time.sleep(4) except Exception as e: logging.error(f"Error in add_telephone_numbers: {e}") self.manager_kill() return None
-
User-facing/client-side tools for internet troubleshooting
Hi everyone. The other day a client of mine's employees started having issues with the "internet not working". After some detective work with traceroute and interviewing them about what sites they were having issues with, I determined that the actual issue was with the web.whatsapp.com service having downtime. I'm mentioning all this because I'm now thinking of making them a small video/article on our intranet about how to troubleshoot problems like this by themselves. Part of that strategy is deploying WinMTR on their machines so they can run it. I still don't know how I'll verify if it's installed, but maybe checking if it's in the target folder (intend to send it to System32 by creating an Intune package with IntuneWinAppUtil.exe) is a good start. There is a Tracert app on the Appstore but it's paid and I have no idea how one can pay for it in bulk without having each employee put in a credit card. Anyways just wanted to ask what you all are doing for this type of scenarios. Cheers. PS: anyone hiring for Intune/sysadmin type jobs or know where one can find remote jobs for non-US citizens?
-
Is WhatsApp Web down in Oman?
I believe web.whatsapp.com is being blocked by local telecom companies in order to protect their duopoly and keep Oman in tech--stone-age. If fewer people know how else the rest of the world uses the internet, then they don't have to make an effort to improve their offerings. Omantel is definitely blocking this web.whatsapp.com.
-
Open Letter to WhatsApp: Need for a Linux Desktop App
What's wrong with https://web.whatsapp.com/ ?
-
Simplistic
{"nightTab":true,"version":"7.3.0","state":{"layout":{"area":{"header":{"width":74,"justify":"center"},"bookmark":{"width":100,"justify":"center"}},"alignment":"center-center","order":"header-bookmark","direction":"horizontal","size":91,"width":99,"padding":49,"gutter":49,"breakpoint":"lg","scrollbar":"none","title":"Launchpad","favicon":"https://cdn-icons-png.flaticon.com/512/7397/7397876.png","overscroll":false},"header":{"item":{"justify":"center"},"greeting":{"show":true,"type":"good","custom":"","name":"Avnes","size":146,"newLine":true},"transitional":{"show":false,"type":"time-and-date","size":100,"newLine":false},"clock":{"hour":{"show":true,"display":"number"},"minute":{"show":true,"display":"number"},"second":{"show":true,"display":"number"},"separator":{"show":true,"text":":"},"meridiem":{"show":false},"hour24":{"show":true},"size":362,"newLine":true},"date":{"day":{"show":true,"display":"word","weekStart":"monday","length":"long"},"date":{"show":true,"display":"number","ordinal":true},"month":{"show":true,"display":"word","length":"short","ordinal":true},"year":{"show":true,"display":"number"},"separator":{"show":true,"text":":"},"format":"date-month","size":121,"newLine":true},"search":{"show":true,"width":{"by":"custom","size":82},"engine":{"selected":"google","custom":{"name":"","url":"","queryName":""}},"text":{"justify":"center"},"size":86,"newLine":true,"newTab":false,"string":"partial derivative symbol"},"order":["greeting","clock","date","search"],"edit":false},"bookmark":{"size":56,"url":{"show":true},"line":{"show":true},"shadow":{"show":true},"hoverScale":{"show":true},"orientation":"bottom","style":"block","newTab":false,"edit":false,"add":false,"show":true,"item":{}},"group":{"area":{"justify":"left"},"order":"header-body","name":{"size":100},"toolbar":{"size":100},"edit":false,"add":false},"toolbar":{"location":"corner","position":"bottom-right","size":76,"accent":{"show":true},"add":{"show":true},"edit":{"show":true},"newLine":false},"theme":{"color":{"range":{"primary":{"h":218,"s":60}},"contrast":{"start":11,"end":68},"shades":14},"accent":{"hsl":{"h":270,"s":100,"l":68},"rgb":{"r":173,"g":92,"b":255},"random":{"active":false,"style":"any"},"cycle":{"active":false,"speed":300,"step":10}},"font":{"display":{"name":"Montserrat","weight":250,"style":"normal"},"ui":{"name":"Montserrat","weight":400,"style":"normal"}},"background":{"type":"image","color":{"rgb":{"r":0,"g":0,"b":0},"hsl":{"h":0,"s":0,"l":0}},"gradient":{"angle":160,"start":{"hsl":{"h":206,"s":16,"l":40},"rgb":{"r":86,"g":104,"b":118}},"end":{"hsl":{"h":219,"s":28,"l":12},"rgb":{"r":22,"g":28,"b":39}}},"image":{"url":"https://source.unsplash.com/random/1920x1080/?landscape,nature,wallpaper","blur":0,"opacity":69,"scale":100,"grayscale":0,"accent":0,"vignette":{"opacity":21,"start":100,"end":90}},"video":{"url":"","blur":0,"opacity":100,"scale":100,"grayscale":0,"accent":0,"vignette":{"opacity":0,"start":90,"end":70}}},"opacity":{"general":0},"layout":{"color":{"by":"theme","blur":6,"opacity":0,"hsl":{"h":195,"s":100,"l":55},"rgb":{"r":26,"g":198,"b":255}},"divider":{"size":0}},"header":{"color":{"by":"custom","opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"search":{"opacity":34}},"bookmark":{"color":{"by":"theme","opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"item":{"border":1,"opacity":50}},"group":{"toolbar":{"opacity":0}},"toolbar":{"opacity":18},"style":"dark","radius":73,"shadow":171,"shade":{"opacity":1,"blur":0},"custom":{"all":[],"edit":false}},"search":false,"modal":false,"menu":true},"bookmark":[{"name":{"text":"","show":true},"collapse":false,"toolbar":{"openAll":{"show":false},"collapse":{"show":false}},"items":[{"url":"https://web.whatsapp.com/","display":{"alignment":"bottom-left","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"icon","size":48,"letter":{"text":"Whatsapp"},"icon":{"name":"whatsapp","prefix":"fab","label":"What's App"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":121,"s":99,"l":69},"rgb":{"r":98,"g":254,"b":100}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":false},"timestamp":1700054080534},{"url":"https://www.ahaguru.com/signin","display":{"alignment":"bottom-right","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"letter","size":25,"letter":{"text":"AG ©"},"icon":{"name":"","prefix":"","label":""},"image":{"url":""},"shadow":{"size":36}}},"accent":{"by":"custom","hsl":{"h":192,"s":99,"l":56},"rgb":{"r":32,"g":209,"b":254}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":false},"timestamp":1700054310774},{"url":"https://class.ahaguru.com/","display":{"alignment":"bottom-right","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"letter","size":25,"letter":{"text":"AG Ⓛ"},"icon":{"name":"500px","prefix":"fab","label":"500px"},"image":{"url":""},"shadow":{"size":34}}},"accent":{"by":"custom","hsl":{"h":176,"s":98,"l":51},"rgb":{"r":8,"g":253,"b":236}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":false},"timestamp":1700054253962},{"url":"https://artsexperiments.withgoogle.com/periodic-table/","display":{"alignment":"bottom-left","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":12,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"image","size":62,"letter":{"text":""},"icon":{"name":"","prefix":"","label":""},"image":{"url":"https://cdn-icons-png.flaticon.com/512/4535/4535867.png?ga=GA1.1.677380455.1700120484"},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":322,"s":97,"l":72},"rgb":{"r":253,"g":114,"b":202}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":true,"tall":false},"timestamp":1700925270146},{"url":"https://app.raindrop.io","display":{"alignment":"bottom-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"image","size":54,"letter":{"text":""},"icon":{"name":"","prefix":"","label":""},"image":{"url":"https://miro.medium.com/v2/resize:fit:1024/1*JtxOMEcB0N7yoGiHjFf1Gg.png"},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":195,"s":100,"l":61},"rgb":{"r":56,"g":205,"b":255}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":true},"timestamp":1700491631679},{"url":"https://desmos.com/scientific","display":{"alignment":"bottom-left","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":7},"visual":{"show":true,"type":"icon","size":34,"letter":{"text":""},"icon":{"name":"square-root-alt","prefix":"fas","label":"Alternate Square Root"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":154,"s":72,"l":38},"rgb":{"r":27,"g":167,"b":106}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":true,"tall":false},"timestamp":1701435891254},{"url":"https://unsplash.com","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":30,"name":{"show":true,"text":"","size":7},"visual":{"show":true,"type":"image","size":45,"letter":{"text":""},"icon":{"name":"","prefix":"","label":""},"image":{"url":"https://cdn.icon-icons.com/icons2/2566/PNG/512/unsplash_icon_153496.png"},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"custom","hsl":{"h":0,"s":8,"l":85},"rgb":{"r":220,"g":214,"b":214},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":false},"timestamp":1701421863143},{"url":"https://mail.google.com/","display":{"alignment":"bottom-right","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":13},"visual":{"show":true,"type":"icon","size":44,"letter":{"text":"GM"},"icon":{"name":"envelope","prefix":"fas","label":"Envelope"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":281,"s":100,"l":64},"rgb":{"r":197,"g":71,"b":255}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":true,"tall":false},"timestamp":1626298011293},{"url":"https://doc.rust-lang.org/stable/book/","display":{"alignment":"bottom-left","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"image","size":90,"letter":{"text":""},"icon":{"name":"","prefix":"","label":"rust"},"image":{"url":"https://www.fpcomplete.com/wp-content/uploads/2023/04/rust-logo-512x512_white.png"},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":0,"s":99,"l":69},"rgb":{"r":254,"g":98,"b":98}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":true,"tall":true},"timestamp":1700491471508},{"url":"https://netaccess.iitm.ac.in/account/login","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":12},"visual":{"show":true,"type":"icon","size":36,"letter":{"text":""},"icon":{"name":"wifi","prefix":"fas","label":"WiFi"},"image":{"url":""},"shadow":{"size":46}}},"accent":{"by":"custom","hsl":{"h":220,"s":100,"l":65},"rgb":{"r":77,"g":136,"b":255}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":true},"timestamp":1700054179807},{"url":"https://chromewebstore.google.com/","display":{"alignment":"top-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"","size":7},"visual":{"show":true,"type":"image","size":41,"letter":{"text":""},"icon":{"name":"","prefix":"","label":""},"image":{"url":"https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Google_Chrome_Web_Store_icon_2015.svg/512px-Google_Chrome_Web_Store_icon_2015.svg.png?20220227092509"},"shadow":{"size":0}}},"accent":{"by":"custom","hsl":{"h":0,"s":0,"l":100},"rgb":{"r":255,"g":255,"b":255}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":50},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":1,"shape":{"wide":false,"tall":true},"timestamp":1701422504835}]}]}
-
Best app, like, ever?
Whatsapp (Free) - chat. although some people prefer iMessage and other ones.
-
WhatsApp Mac Client - can I have it installed two times?
use browser for one account https://web.whatsapp.com/ and app for the other
-
Can a PC get infected by Malware or Virus by watching a video via WhatsApp Web?
I've received a video via WhatsApp from an untrusted source. I used my personal PC to open the video (via "WhatsApp Web" website). I should mention that I didn't download the video to my PC, I just opened the video online, watched it then closed the web browser.
-
Unable to link any devices (browser, windows app)
I have recently moved from iPhone to Pixel 8, and when I try to link a device, for example my browser (web.whatsapp.com) or the windows app, the Whatsapp App on the phone crashes and restarts, and the linking process does not succeed.
-
https://web.whatsapp.com/ --- Search is not working
on my chrome browser i have linked device https://web.whatsapp.com/ and when i select search button (magnifying glass) i type a word and i can see search is looking for messages... but the search never completes and no messages are found.
What are some alternatives?
nativefier - Make any web page a desktop application
curl-impersonate - curl-impersonate: A special build of curl that can impersonate Chrome & Firefox
webapp-manager
Cobalt - Standalone unofficial fully-featured Whatsapp Web and Mobile API for Java and Kotlin
blurredfox - A sleek, modern and elegant Firefox CSS theme
DNSlock-PiHole-whitelist
webcatalog-legacy - Legacy code of the WebCatalog app.
Ferdium - Ferdium is a desktop app that helps you organize how you use your favourite apps by combining them into one application.
FirefoxCSS-Store - A collection site of Firefox userchrome themes, mostly from FirefoxCSS Reddit community.
watomatic - Auto reply app helping you move away from less private messengers like WhatsApp and Facebook Messenger
Firefox-UI-Fix - 🦊 I respect proton UI and aim to improve it.
challenge-bypass-extension - DEPRECATED - Client for Privacy Pass protocol providing unlinkable cryptographic tokens