Skip to content

Instantly share code, notes, and snippets.

View birukbelay's full-sized avatar
🎯
Focusing

Biruk Belay birukbelay

🎯
Focusing
View GitHub Profile
@birukbelay
birukbelay / bs-word-formatter.html
Last active August 20, 2025 23:56
word formatter
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Format & Count Words (Preserve Links)</title>
<style>
:root {
--border: #ccc;
--muted: #777;
@birukbelay
birukbelay / node_nginx_ssl.md
Created April 3, 2024 10:45 — forked from bradtraversy/node_nginx_ssl.md
Node app deploy with nginx & SSL

Node.js Deployment

Steps to deploy a Node.js app to DigitalOcean using PM2, NGINX as a reverse proxy and an SSL from LetsEncrypt

1. Sign up for Digital Ocean

If you use the referal link below, you get $10 free (1 or 2 months) https://m.do.co/c/5424d440c63a

2. Create a droplet and log in via ssh

I will be using the root user, but would suggest creating a new user

<div class="">
<div class="p-8 lg:w-1/2 mx-auto">
<div class="bg-white rounded-t-lg p-8">
<p class="text-center text-sm text-gray-400 font-light">Sign in with</p>
<div>
<div class="flex items-center justify-center space-x-4 mt-3">
<button
class="flex items-center py-2 px-4 text-sm uppercase rounded bg-white hover:bg-gray-100 text-indigo-500 border border-transparent hover:border-transparent hover:text-gray-700 shadow-md hover:shadow-lg font-medium transition transform hover:-translate-y-0.5"
>
<svg
<div class="bg-gray-800">
<div class="p-8 lg:w-1/2 mx-auto">
<div class="bg-white rounded-t-lg p-8">
<p class="text-center text-sm text-gray-400 font-light">Sign up with</p>
<div>
<div class="flex items-center justify-center space-x-4 mt-3">
<button class="flex items-center py-2 px-4 text-sm uppercase rounded bg-white hover:bg-gray-100 text-indigo-500 border border-transparent hover:border-transparent hover:text-gray-700 shadow-md hover:shadow-lg font-medium transition transform hover:-translate-y-0.5" >
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="w-6 h-6 mr-3" >
<path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.3
@birukbelay
birukbelay / TimeLine.jsx
Created August 17, 2022 00:23 — forked from adrianhajdin/TimeLine.jsx
Portfolio Website - JSM
import React, { useState, useRef, useEffect } from 'react';
import { CarouselButton, CarouselButtonDot, CarouselButtons, CarouselContainer, CarouselItem, CarouselItemImg, CarouselItemText, CarouselItemTitle, CarouselMobileScrollNode } from './TimeLineStyles';
import { Section, SectionDivider, SectionText, SectionTitle } from '../../styles/GlobalComponents';
import { TimeLineData } from '../../constants/constants';
const TOTAL_CAROUSEL_COUNT = TimeLineData.length;
const Timeline = () => {
const [activeItem, setActiveItem] = useState(0);