You are browsing as a guest. Sign up (or log in) to start making projects!

Athan

@Athan

Joined July 11th, 2026

  • 18Devlogs
  • 5Projects
  • 4Ships
  • 36Votes
Building things I probably explained to myself at 2AM.
Code, caffeine, broken layouts, and the occasional working project.
Open comments for this post

1h 39m 29s logged

DEVLOGGG #2

// the board kinda woke up a little

last log was basically html bones sitting on a white page like a sad school assignment. now it actually looks like cipheros.

Cork wall is in. tape bar is in. the apps are polaroids pinned on the side, with red yarn doing the whole detective-board thing. i also made the windows look like manila folders instead of random browser boxes, so now the page has a personality and not just div div div energy.

then i made the dead stuff wake up:

[x] clock stopped saying --:--
[x] pins open their windows now
[x] the tiny x actually closes folders
[x] clicking a folder brings it to the front
[x] dragging from the folder tab works

mini chaos moment: the html got cursed for a bit and kept getting extra quote marks at the bottom. it was one of those bugs where everything works but the file looks haunted, so i cleaned that before calling it done +_+

still not doing the real apps yet. notebook doesnt save. CASE 0 is still just the missing hoodie folder waiting for photos. shredder is still empty, which is suspicious but fine.

next iamma make the windows actually contain stuff. notes, files, hoodie photos. the desk is awake now, it just needs evidence.

0
0
77
Open comments for this post

1h 38m 16s logged

devlog #1

started cipheros :)

ok so i wanted a WebOS that felt like a detective board, not another fake macos. Today I started with html only. no colors, no fonts, just boxes with names on them.

Tape bar has CipherOS and a clock that says --:-- like its buffering forever. four pins (notebook, files, hoodies, shredder). five windows dumped on the page so i can see them. vscode kept fighting me on tags ngl. it loads tho.

nothing works yet lol. next i make it look like cork. anyway thats the start :p:

0
0
47
Ship

Webgram is my instagram-shaped new tab. stories up top are shortcuts (google, youtube, github, etc). the feed is live bluesky posts, not widgets. search dumps you on google. clock in the corner is just the time nothing much great that that tbh.

One tap on a pic opens the real bluesky post. double tap likes it and a heart pops. like/save stay in the browser, im not hitting their servers. you tab lets you set a name, who you follow, and the story rings.

try it: https://webgram.techxtreme.me

Its just vanilla html/css/js. btw no nasa, no dashboard. just a phone on a desk that actually scrolls to decrease my instagram dependability :p

Try project → See source code →
Open comments for this post

1h 26m 54s logged

devlog #4 (final)

its actually on the internet now :D

last time you tab still said “thats you. profile later.” and the whole thing lived on localhost. felt unfinished so i finished it today itself.

you tab is a real profile now. display name, bluesky handles one per line, story rings you can add or hit x on. save this and home grabs a new mix. first ring on my laptop says athan lol.

wrote a readme that is not just a tutorial, put actual screenshots of the tab in it, pushed to github, threw it on vercel. people can actually open it without cloning anything.

demo: https://webgram-gamma.vercel.app
(waiting for dns to propogate so that it can be accessed using custom link, https://webgram.techxtreme.me )

code: https://github.com/its-techxtreme/WebGram

chrome empty new tab is fired. this is the one im using +_+

0
0
127
Open comments for this post

2h 41m 22s logged

devlog #3

the feed is actually scrolling now :D

last time it still said “feed goes here. not yet.” and the clock was stuck on --:-- like it was buffering forever. got bored of staring at a fake phone with nothing on it.clock ticks now.

search actually dumps you on google. the story rings open the apps (google, youtube, github, stardance, discord) and i put names under them because i kept mixing up which circle was which lol.

then i hooked up bluesky. public api, no login, just a list of people i follow on this laptop. mix of cats, nba, zoo animals, 90s anime, street food. photography only got old after like two refreshes. posts are a little polaroid-tilted. hover the rings and they spin. one tap on a pic opens the real bluesky post. double tap and a heart pops. like and save stay here, im not actually hitting their servers.saved tab shows what i bookmarked. you tab still just says “thats you. profile later.” thats next, then i put this on the internet instead of localhost.anyway. i open a new tab and theres stuff to scroll. thats the whole point +_+

0
0
116
Open comments for this post

46m 24s logged

devlog #2

it looks like a phone now :D

spent an hour just making it not ugly. no new buttons or anything. just css.

its a cream phone sitting on this wood-plank desk now, kinda tilted, with fake tape at the top like i stuck it there. lilita one for the WebGram wordmark (its a little crooked on purpose) and patrick hand for the rest so it doesnt look like a chrome theme from 2014. story rings have that rainbowish border. theres a sticker that says “new tab :D” and another that says “not ig” because people keep thinking im cloning instagram lol +_+

opened it locally and it actually looks like something now. you can still click the rings and type in search. feed is still “feed goes here. not yet.” clock still says --:--. next i make the clock tick and the stories actually open google / youtube / github / etc.anyway. it looks like a desk. im happy about that :p

0
0
53
Open comments for this post

1h 16m 1s logged

devlog #1

started webgram :)

ok so i open a new tab like a hundred times a day and chrome just gives me that empty search page. got bored of it. making my own for the challenge.

idea is instagram but for a new tab. not a clone, i just stole the layout because my brain already knows where stuff is. stories on top, feed in the middle, little nav at the bottom. the stories arent even stories tho. theyre shortcut buttons for google / youtube / github / discord / stardance. the feed is supposed to be live bluesky later so when i open a tab im actually scrolling something, not staring at widgets +_+

rn it was just html. like, only html. clock says --:-- like its buffering forever. search box is there but it doesnt search yet. feed is a placeholder that says “feed goes here. not yet.” opened it in the browser and it looks so unfinished its kinda funny. no colors, no fonts, just default browser stuff. clicked around anyway. story buttons work, i typed in the search, Saved in the nav jumped to #saved. vscode kept auto-closing my tags while i was writing index.html and the file looked so cooked. had to type the whole thing again. it loads now tho :p

next i make it look like a phone on a messy desk. then the feed gets real posts. anyway thats the start.

3
0
258
Open comments for this post

4h 43m 6s logged

Devlog #4 - crew DMs actually land in the queue now

last one was Captain’s Deck + Shorts geometry. this stretch was the thing i kept putting off: stop pasting reels by hand when the crew already DMs them. =_=

the collector

worker sits on the same laptop, same chrome, different profile. it does not steal the upload session. if ffmpeg or a YT/IG upload is mid-flight it waits. then it opens the crew chats and copies reel permalinks.

first version was dumb. it clicked the inbox list, grabbed whatever looked like a reel, and dumped garbage on Unsorted cargo. half of it was profile-grid junk and fake shortcodes. instagram said the link was broken. i stared at @unknown like the app was haunted. ツ

fix: open /direct/t/{id}/ for the known chats, scroll older messages, click the actual preview cards. real reel codes are 11 chars. anything else gets marked invalid. niche word under the reel (Anime / Sport / Meme) queues a job. no niche = Unsorted cargo, i pick it. we don’t invent a niche to make the dashboard look busy.

i added a Clip column and then yeeted it

instagram embeds in Ship’s log. looked cute. loaded maybe 50% of the time, with scrollbars. (._.) dropped it. dashboard is the old table again plus Unsorted cargo. open the reel on IG if you want to watch it.

where it stands

submit still public. demo still read-only. crew DMs now become jobs or unsorted rows instead of sitting in my DMs forever. still my pc. still playwright. but “the boys sent 10 reels” is closer to “they’re on the desk” than it was last week. =)

what I am planning Next ;D

Mostly gonna fix bugs in the collection worker that I encountering during use in the next few weeks, Also rn its really hard to setup project ap-i for yourself. So, I am gonna try to learn and make it into some kinda desktop app. But not sure as It took too much time just to understand how to make these automations etc 😭 and I need to study academics too 💀

live at : https://ap-i.techxtreme.me

0
0
51
Ship

Shipping OutreachOS again after ship #1.

I ripped the dark teal “ops console” look and rebuilt the whole app as a sketchbook (paper, doodles, sticky notes) based on my old high-school notebook portfolio. added sticky call scripts, status chips, optional weekly quests, and a one-click Try Demo so nobody hunts for passwords. You can upload the excel sheets and it automatically registers any niches or countries you target +_+

Since then it’s been on a real domain (https://outreachos.techxtreme.me) , Premium works via email request (no KYC rabbit hole), and people actually used it. biggest bug from that: Excel import was picky about headers. a sheet with Number instead of Phone Number imported with empty phones and no warning. fixed that — messy labels map now, phones/addresses/maps links get cleaned, and you get a warning if something still looks wrong. UI Was laggy, compressed it and made it still retain the good UI :)
Also fixed some bugs in UX experience.

What it is (for those who are seeing it first time): Basically its a personal lead vault for cold outreach. dump an Excel sheet, filter by niche/country/status, dial with a sticky script, keep track of who you already hit. You go from bunch of excel rows and columns to a Full Lead manager (as one of the reviewers said :D)

how to test (2 min):

  1. open https://outreachos.techxtreme.me
  2. hit Peek the demo / Sign in as demo
  3. Poke the table, flip a status, open the sticky script, try vector view
  4. if you have a messy .xlsx, import it (or check /import-guide)

repo: https://github.com/its-techxtreme/OutreachOS

  • 4 devlogs
  • 13h
  • 9.84x multiplier
  • 126 Stardust
Try project → See source code →
Open comments for this post

1h 41m 34s logged

DEVLOG 6 — small fixes that impacted lags in some devices +_=

after some people’s reviews i sat with the real feedback. sketchbook looked cool but felt laggy on some devices. login was annoying. filters were confusing. tutorial glitched on phones. and yeah — a security issue popped up that i had to actually fix, not shrug off.
this update is the cleanup after that.

what reviews complained about

  • the UI felt heavy (scroll lag, blurry glass, doodles that somehow made the page wheeze)
  • password managers / paste on login were janky
  • niche + country filters felt empty or unclear until you’d imported something
  • demo tutorial broke on mobile / pointed at nothing sometimes
  • security issue found in review — patched and scrubbed

what i changed :)

speed without killing the vibe. ripped expensive paper grain / blur, dialed back idle vector vault work, kept the margin doodles with cheap CSS bobbing instead of Framer looping forever. doodles stay. lag mostly doesn’t.

auth that behaves. forms play nicer with autofill. signup/reset don’t overshare. login + username checks got rate limits. admin denials stay generic.

security + small UX. fixed the issue, cleaned public templates, tightened gates. logo in the header finally goes home when you click it.

filters + tutorial. niche/country lists make more sense post-import (searchable when long). demo tutorial doesn’t trap you on phones anymore.

still sketchbook

didn’t “simplify into a boring dashboard.” paper, doodles, sticky scripts — still there. just less of the stuff that made a laptop cry :D

0
0
7
Open comments for this post

23m 35s logged

Devlog

Revamped style.css and added 3 sections. Now it has atleast a bit proper design, earlier version was just really basic not much of a design at all.
Now it has proper section headings, a designed box for :


–> OutreachOS, I have added Live project link and stardance link and the og-image as project image.


–>Project AP-I, I have added only the Stardance link as it hasn’t been shipped yet, but demo available at project site.

0
0
33
Open comments for this post

5h 12m 34s logged

Devlog #3 - Captain’s Deck, Shorts that look like Shorts, and a queue i babysit less

devlog 1 and 2 were the “why is everything on fire” posts. this one is what i built after the pipeline stopped dying every hour: UI, demo voyage, edit preset, Drive auth, and ops controls that matter when the factory is still my laptop.

the dashboard stopped looking like a spreadsheet

i tore out the generic admin chrome and rebuilt it as Captain’s Deck - One Piece-inspired voyage language without ripping logos or characters. Crow’s nest, Ship’s log, Lost cargo, Crew, Sea lanes. day watch = turquoise sea + parchment; night watch = deep navy + lantern gold. Pirata One for display. sky washes, wave shimmer, ship-sail motion when something lands. still dense ops tables underneath, but it finally feels like a product.### demo mode + the crew briefingpublic submit was already open. missing piece: a safe admin poke. read-only demo watch - demo login boards you with write actions locked. Stretch, Navi, Cookie and the doodle crew run an interactive voyage tutorial (spotlight + mascots) when you land. replay tour is one click. filter Ship’s log, open Cargo bay - you just can’t smash retry/delete on live jobs. public demo without yeeting production. :)

shorts were uploading as normal youtube videos

caught it live in studio: short clip, landscape preview, regular upload not a Short. ffmpeg did speed + bgm but never forced 9:16. source stayed landscape, so youtube stayed “normal video.” shared edit now always outputs 1080x1920, asserts dimensions after encode, fails loud if not. IG gets the clean export. YT can still get niche brand c-text (ShonenSnaps / CrackleCrumb / ScoreMorsel) when there’s no burned-in hard captions. preset: 1.2x speed, stronger filter, original audio, quiet bgm (~5%), no logo watermark on IG. :D

drive auth + knowing if the laptop is awake

invalid_grant wiped jobs because the oauth refresh token was minted while the google app was still in Testing. publishing consent to Production does not resurrect old tokens - mint a new one after. worker health probes Drive; claim skips when Drive is dead. vercel can’t ping my private worker, so the topbar has a remote laptop signal (supabase heartbeat): offline vs connected and ready. if that light is dead, the queue is sleeping.

ops controls when soft limits park everything

rolling 24h soft daily upload cap still parks niches at the limit. sometimes i need one job through. Ship’s log swaps Retries for a Force button on those rows: one-shot soft-limit bypass for that job only (platform hard caps still apply). also pause / unpause / abort so one hung Playwright session doesn’t hold the door. deferred jobs recheck sooner so the queue doesn’t look cursed when a slot frees early. =_+

where it stands

submit is public. demo voyage read-only. real uploads still need my pc awake with chrome profiles + docker n8n. last stretch wasn’t another playwright ghost story - shape, Drive health, Captain’s Deck polish, and operator controls so the queue cooks without me hovering. still local. still weird. closer to “drop the link and walk away” than where #2 left me. ;)

the video attached is sped up 16x the orignal tho +_=

live: https://ap-i.techxtreme.me
github: https://github.com/its-techxtreme/project-ap-i

0
0
30
Open comments for this post

49m 39s logged

DEVLOG #5 — messy sheets, finally cleaned

I got some real feedback after people poked OutreachOS. Many people loved the Tutorial feature :D

one stuck tho: import was too picky about column names. someone uploaded a normal lead sheet with Number instead of Phone Number, and we silently imported leads with empty phones. that’s the opposite of “we clean your messy list.”

so #5 is basically: a bug fix where we stop being precious about headers, and actually clean the sheet.

flexible headers

import now treats common scrapes / hand labels as the same field:

  • phone: Number, Mob, Ph No, Contact, WhatsApp, Cell, Landline…
  • name: Shop, Firm, Brand, Client, Restaurant, Company…
  • maps: Gmaps, Maps Link, Place URL, Source URL, bare goo.gl…
  • address bits: City / State / PIN / Zip get merged when the sheet splits them

house / plot / GST “number” columns stay ignored so we don’t invent fake phones.

cleaning that actually helps

  • phones: scientific notation from Excel, leading 0 / 91, multi-value cells (a / b → first good one)
  • maps: HYPERLINK() formulas and scheme-less short links
  • junk cells: N/A, NULL, blanks stripped
  • if a column still looks like phones but didn’t map, the import result warns instead of pretending everything’s fine

other polish since #4

  • Premium email fallback when no mail app (“copy the draft”)
  • admin can disable accounts with a reason
  • OG preview image fixed + sized to 1200×630

try it- live: https://outreachos.techxtreme.me

if your sheet still confuses the mapper, send me the header row — that’s how this list grows.

0
0
86
Ship

Made a Html+CSS basic website from scratch, The challenge I mainly faced was mistyping a “<” at the end of a image tag and my link was pretty large so like I didnt see the whole ending and was wondering what went wrong =_=
Its a really basic website which just shows my project images and the link to the stardance project.

Try project → See source code →
Open comments for this post

58m 34s logged

Devlog

I made this website in html and css while attending the hackclub workshop (hosted by jenin) .

We made a index.html and style.css
Then we configured the background page and some text color and font family.
Then I added some images and links to showcase my stardance projects :D

0
0
13
Open comments for this post

4h 2m 20s logged

DEVLOG #4 — custom domain, premium, and the boring-but-necessary stuff ig

after #3 i thought i was mostly done. then reality showed up with a checklist: put it on a real domain, try to make money somehow without blowing up KYC 😅, stop looking sketchy to Google, and clean the security alerts GitHub kept waving at me =_+
so this update is less “new shiny feature” and more “make it feel like an actual product.”

domain

OutreachOS now lives at https://outreachos.techxtreme.me (not just the random vercel.app link). feels way better saying that out loud.

premium (without card chaos)

I wanted paid plans but razorpay needs PAN/KYC and i wasn’t doing that yet. so /pricing is live (₹1499 / $15) and “buy” just opens an email request with your username filled in. i grant Premium from an admin dashboard after payment. not fancy but works i hope so.

admin + SEO + accessibility

Built a small Google-only admin console for managing users / Premium. submitted the sitemap in Search Console. added an accessibility notice in the footer because i had heard that not inlcuding one can get you sued 😭 😭

security

Dependabot was yelling about Next.js (and some other packages). upgraded properly and fixed it :)
also tightened a few CodeQL things (sanitization, api key hashing, logging). npm audit is clean on my end now.

chatgpt agent

the old Custom GPT → API intake isn’t a product feature anymore. excel import is the real path. i left the agent code in the repo as scaffolding if i bring GPT intake back in v2.

tiny personal note

the sketchbook UI idea didn’t come from a template. i found my 10th-grade japanese paper notebook portfolio while cleaning my laptop files, and it finally clicked — paper notes for contacts just fits outreach :D

try it-

live: https://outreachos.techxtreme.me

if something’s weird, tell me. i’m still polishing the edges, but the core is solid.


ready to ship?

yeah. for real this time ig.
the app is on a proper domain, signup/demo/login work, excel import + vault features are live, Premium has a path that doesn’t depend on unfinished KYC, admin can actually manage accounts, SEO/accessibility aren’t invisible, and the scary dependency alerts got patched instead of shrugged off.

not claiming it’s perfect forever — just that OutreachOS is in a state where i’m comfortable saying: ship it. poke holes if you find them.

0
0
57
Open comments for this post

6h 16m 49s logged

DEVLOG #3 — ship got rejected so i rebuilt the vibe

ok so after #2 i actually shipped OutreachOS and got changes requested pretty fast. shipwrights said:
➤ the css looked like every other ai-made site  
➤ add a couple features i came up with to make it more fun  
➤ stop making people use demo creds  

that stung a little but they were right. this whole stretch was just me answering those instead of pretending it was finished :-D

the ui glowup :)

the biggest thing was the ui. before it was this dark teal ops console look. clean but soulless, like a saas template trying too hard.
I tried to think of a idea, then I remembered my high school portfolio, I based in on a notebook pages style ppt theme.
i ripped that dead ui out and went sketchbook / doodle for basically the whole app.

Now its paper backgrounds, doodle borders, sticky note energy, little hand-drawn characters hanging around. landing is brand first with the constellation field and doodles floating so it feels like mine instead of a product pitch. login and signup match that vibe now too, same paper/doodle language instead of looking bolted on.
dashboard feels like a notebook you actually use on call days instead of glass cards stacked forever. lead table is still built for real work but the chrome around it looks hand drawn. vector view (the niche/country constellation graph) is still there, it just fits better now. settings and account got the same treatment so flipping between pages doesnt feel like you teleported into a different app.
Basically whole point was stop looking generated.

the fun features

then the fun features. sticky call scripts were the one i wanted most. you get a general sticky plus niche ones, with placeholders like business, niche, location, phone that you speak through live. edit, save, reset. no ai writing your pitch. just a note that stays while you dial, which sounds small until youre mid call and dont want to lose your place.

call statuses got real too: New, Called, No Answer, Callback, Replied, Converted, Archived, and theyre one click chips so youre not hunting a dropdown mid call.

also built a quest board (To gamify cold-calling). optional on purpose. opt in when you set a username or later in account, get 3 random quests a week, progress when you move lead statuses. kinda dumb, kinda motivating, weirdly keeps me dialing cuz its easy to get discouraged while cold-calling T_T

import path got better too. any niche/country still works, clearer row errors when excel is messy, filters refresh after import, PLUS an import guide page and an excel template so people stop guessing columns.

signup / demo (no cred treasure hunt)

for the demo creds complaint i added a Try Demo button that just signs you in. shipwrights and anyone bored can open the site and click once. no more copying email/password out of a post.
you can also signup normally or continue with google if you want your own vault.
also pushed google oauth out of testing only so random google accounts actually work now, which took longer than it should have because google cloud is annoying.

tiny invisible stuff nobody screenshots: passwords still go through supabase auth hashed, secrets stay in env, mfa secrets encrypted at rest.
boring but i slept better after doing it ^_^

try it

site is https://outreachos-online.vercel.app

if you try it: open it, hit Try Demo or signup, pick a lead, flip a status chip, open the sticky script, peek at quests. tell me if anything feels weird or still looks template-y. im trying to catch that before i reship.

im hyped to ship again. still got a few final polish bits (maybe a student .me domain, google brand verification for the logo, tiny ui cleanup) then im hitting request re-certification. if youre free break it before then. i actually want the feedback this time tbh.

0
0
11
Open comments for this post

1h 25m 22s logged

Devlog #2 — breakages, fixes, and where it stands

continuing from #1,
Because apparently the pipeline had more ways to die than i budgeted my mental piece for 😭 =_= 😭

pipeline breakages that made me feel cursed

a non-exhaustive list of things that broke autonomy (these are the majot ones, many more small things too):

  1. claim SQL bug — null failure_code made healthy queued jobs invisible to claim_next_job. queue looked alive. nothing claimed. i checked daily upload limits, n8n, worker health… everything green. the bug was one boolean expression treating SQL NULL like false.
  2. retry after login recovery did nothing — youtube was login_required, instagram already uploaded, admin hit retry, worker said “no platforms need upload” because login_required wasn’t in the retryable set. i fixed the session, clicked retry, watched nothing happen, questioned my life choices.
  3. zombie uploading jobs — crash mid-instagram after youtube succeeded. status stayed uploading. claim blocked. daily limit logic counted the zombie as an inflight upload. cascade of sadness overflowed.
  4. drive cleanup count lying — overview said “6 files need cleanup” and half were old cancelled junk. made the ops panel feel broken even when it wasn’t (fake failures T_T).
  5. yt-dlp randomly failing on some instagram urls with “no video formats found.” not a glamorous issue. still ate an hour.

each time the dashboard looked calm and the logs were quiet for 30+ minutes, that was the tell. silence usually meant a stuck lock, not “everything is fine.”

how i actually got past it (atleast for the meanwhile)

i stopped trying to be clever and started treating the worker like a hostile roommate.

  • if an upload hangs longer than ~12 minutes, kill it and mark that platform failed
  • if a job is still uploading after the lock expires / goes stale, auto-recover it on the next claim instead of waiting for me to notice
  • if studio shows Create and we’re not on an auth URL, we’re logged in — stop screaming about 2fa banners
  • scrape share urls from anchors, inputs, and page text, because youtube’s dialog is allergic to consistent DOM
  • keep secrets and playwright profiles off github. public repo + demo read-only login so people can poke the UI without yeeting my jobs

also: verify delay went from 30 minutes to 5 for local testing because waiting half an hour to learn the upload silently failed was making me insane.

where it stands

it kinda works. not “enterprise reliable.” more like “if my pc is awake and chrome profiles are healthy, videos move.” submit is public. admin dashboard shows queue / failed review / accounts. demo user can look, can’t smash retry/delete. real uploads still need my laptop + n8n and docker which runs on it.

frustrations that still remain (T_T) :
local dependency, playwright flakiness, platforms changing UI for sport, and the eternal fear that tomorrow’s youtube banner invents a new sentence that trips the detector again.

but i went from “i will paste this reel into six tabs” to “drop the link and let the queue cook.” for a broke-student compromise architecture, that’s the win i care about.

This devlog shows only 1hr, cuz actually 60-70% of work was done in previous timed devlog, but I hit the character limit.

try the demo

if you want to click around without breaking anything:

submit page is public. dashboard demo login is read-only (you can browse, you cannot smash retry/delete/account buttons).

thanks for reading these long-ass devlogs. seriously fr !!
if you made it through both, you now know more about my chrome profiles than my friends do :)

0
0
136
Ship

This project is called OutreachOS, if you have every tried starting your business or freelancing, there’s always this major question: So how are we going to get clients?

Most of the people stumble upon the same idea, which is Cold Calling, Cold messaging or something on the similar side. This is because its the most common way to ACTUALLY get clients without spending funds on running ads, etc.
This method, though it works, requires lots of effort. You have to find contact information of people that might me interested in your services, save the numbers, call them, shoot your shot, and much more.

But to make it actually feasible, you have to manage a lot of contact and potential client information. I was dealing with the same issue. So, I came up with this Idea, What if I could just feed my excel sheets (like many due to separate batches of calls) have one place to easily search up some client’s info when i need it (like in case of a callback), also be able to export my complete database in Just ONE CLICK to my scraper & Wallah ! there you have it, that’s Exactly what OutreachOS is. Tho I went ahead and added more features to proper categorize each lead based on country, niche, date, etc as well as added to vector view to easily visualise what categories we have been targeting and where we can focus more.

Since OutreachOS involves importing contact information, I have made it so that it has a built in authentication system, so only you can log into your database.


But if you want to test it out I have created a demo account (it has some restrictions unlike the admin/owner account to prevent destructive use) with some of my old lead contact data, Please use the following credentials to log in :

Email:[email protected]
Password:OutreachOS@13

Thank you for checking out my project, I am really glad you did ;)

  • 2 devlogs
  • 3h
  • 14.69x multiplier
  • 36 Stardust
Try project → See source code →
Open comments for this post

7h 26m 39s logged

Devlog #1 — shipping this without a VPS budget

ok so i will be honest about how this project actually felt to build, because if i write the clean “i learned so much” version nobody will believe it, so anyways lets move on ;)

Basciallyy, i started Project AP-I because managing short form content for three niches (memes, anime, sports) was eating my brain at very very fast rate.
Every day was the same monotonous loop: find an approved clip, download it, slap a watermark, write a caption, open youtube studio, open instagram, upload twice, pray nothing asks for 2fa. doing that by hand for multiple accounts is how you lose a whole evening and still miss one niche. i wanted a queue. drop the link once, pick the niche, walk away.
sounds simple, but fr it was nott 😭 +_=

the money problem / why everything runs on my laptop

my first instinct was “just rent a VPS, put chrome + playwright there, done.” then i looked at prices for a box that can actually run headed chrome without dying, plus storage for temp video, plus sitting there 24/7. for a student project that was a hard no. so i compromised.

So the architecture became weird on purpose:

  • vercel = public submit form + admin UI (free, fine for that)
  • supabase = source of truth for jobs / accounts / audit logs
  • my trusty windows laptop = native worker with real chrome profiles + ffmpeg + yt-dlp
  • docker n8n on the same laptop = cron that claims jobs and calls the worker

so the so called “cloud” part is mostly the website in my project sadly =_=. the actual factory is under my desk. if my pc sleeps, the queue sleeps. that sucks. but it meant i could ship real uploads without burning money i don’t have. i’d rather have an ugly local stack that works than a pretty architecture diagram and empty wallet :)

playwright almost made me quit

ngl browser automation for youtube studio + instagram is genuinely mean. docs make it look like page.click('#upload') and you’re done.
lemme give u a look at reality:-

-youtube throws a red banner that says turn on 2-step verification while you’re fully logged in, and my detector treated that like a login wall. i watched chrome sitting there logged in, create button visible, video already published… and the job still flipped to login_required. i wanted to throw the laptop.

  • sometimes it does publish, then fails because it couldn’t scrape the youtu.be link from the share dialog. so the video is live on the channel and the database says failed. truly was a nightmare for me.
  • instagram will hang mid-upload. worker restarts. job stuck in uploading forever. claim logic sees “someone is uploading” and refuses to take the next job. whole pipeline frozen for like an hour while five videos sit in queued doing nothing. i stared at the dashboard thinking n8n died. n8n was fine. one ghost job was holding the me at the edge of Cyberpsychosis (anime reference :D)

every “one more small fix” turned into another edge case. captcha? stop and mark login_required. real verify-it’s-you interstitial? same. security upsell notification? ignore it or you false-positive yourself into a corner =_=
i had to rewrite the challenge detector like three times until it stopped panicking at youtube’s “your account is at greater risk” banner.

and that was just the browser drama.
Since I have reached the charcter limit I will continue in next devpost.

2
0
117
Loading more…

Followers

Loading…