Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

Bypass Framer's 1GB Bandwidth Limit 🤔 Deploy on Vercel or maybe even Cloudflare. Use Framer free forever with mix of Reverse Proxy + Caching :> Github Repo below ;)

22,271 görüntüleme • 3 ay önce •via X (Twitter)

0 Yorum

Yorum bulunmuyor

Orijinal gönderinin yorumları burada görünecek

Benzer Videolar

Everyone is talking about Vibe Coding (Using AI to Create Apps Only using AI) This is the most Comprehensive Guide for Vibe Coding with Cursor (By Far) 250 Minutes, All the vibe code basics of cursor, plus 4 Projects in one video! This is how I, as someone who has never written a line of code, approach building apps (every day). Part 1A Intro to Cursor, Composer, and some basics --------------------- 00:00 Intro 03:41 Downloading Cursor 06:09 What the hell is Composer? 10:47 A Note on Context and Keeping Composer Threads Small 11:38 Simple Desings with Cursor Composer From Blank Project 14:04 Editing a Simple Animation With Cursor Composer 16:35 Setting Up The Voice to Talk to Cursor Composer Whispr Flow 17:54 Lets an Early 2000's Landing Page Part 1B AI Image Generator --------------------- 23:59 Using the GitHub Template to Create a NextJS App 26:43 Template is Open, Let's Edit it 28:55 Drawing Out My Idea With Whimsical 30:11 First Prompt Using Place Holders For Image Generation 32:10 Accept All Vs Save All and Restoring in Composer (Saving your work) 33:54 Adding AI Feature (Brief Teaser, Deep Dive Later) 35:15 What is an API 37:22 Perplexity the best place to learn about API's 40:21 Api keys and running prompt for first AI Feature 42:48 Debugging, Woohoo! Learn to love this :) 43:20 Inspect - Console, In Browser Debugging Hack 48:02 AI Image Generation Works! Lets add more Part 2: Landing Page ---------------------- 51:03 Pause and Reflect, What have we done so far? 53:41 Plan for rest of video 54:34 Ok Let's Talk about (1) Designs 56:19 GitHub is like --sref for those who do image gen 58:20 Starting Cursor project from a GitHub Repo we found on Perplexity 01:00:48 Yolo Mode... Wtf is that? 01:02:38 Inspecting GitHub Repo's Examples, to use in our landing page 01:02:58 The Project We're making - A landing page 01:03:56 Landing Page from Screenshot 01:06:17 Making Changes to Landing Page 01:11:42 Making a more epic section 01:13:42 The Essence of Vibe Coding 01:15:17 Creating Cool Testimonials Section From Screenshot 01:18:18 Deploy to Vercel! But First New Repo on GitHub 01:20:45 Ok it's on GitHub... Now lets do vercel 01:21:17 Untechnical Explanation of what Vercel is Lol 01:24:18 Connecting Custom Domain (Bought on Name Cheap) To Vercel Deployment Part 3: App With Database and Authentication ---------------------- 01:27:59 Recap and Prep For The Bigger Project! 01:35:13 Getting Started from Template (Again) 01:38:52 Setting Up Database and Authentication (Firebase) 01:44:01 Back To Cursor, Let's Set up The Auth in the app 01:48:35 Switching to mermaid because compatibility issues 01:51:13 Using AI (Claude) to Generate Mermaid Diagrams 01:52:19 Adding Docs to Cursor to use AI Features over and over again 01:54:38 Let's Troubleshoot 01:56:10 Adding View Button and EDIT WITH AI 02:01:45 AI Diagram Edit Feature is DOPE 02:03:17 Using Search Feature on Cursor to find text in Codebase 02:05:55 Lets add ability to save these to Database 02:09:33 What does saved to Google Firebase even mean? 02:13:00 We can Export as PDF! 02:15:48 GitHub and Vercel Again! 02:17:27 Vercel with CLI From Cursor 02:20:52 Setting Vercel Domain as an Authorized Domain 02:27:34 How To Learn More

Riley Brown

368,141 görüntüleme • 1 yıl önce

The number one question I get in the Claude Code / Cowork Community: "how do I share my Cowork skills with my team?" Here's the problem. You build a great skill. You zip it up. You drop it in Slack. Your teammate downloads it, uploads it, and maybe it works. Maybe they upload it wrong. Maybe you update the skill next week and nobody gets the new version. You're now maintaining skills through chat messages and hoping for the best. That doesn't scale. I just put out a video breaking down the three methods I've tested for sharing skills and plugins across a team. From dead simple to fully synced. Method 1: Shared drive (Google Drive, SharePoint, etc). You put your skill files in a shared folder. Teammates download and upload them into Cowork. It works, but updates are manual and there's no version control. Method 2: Built-in sharing on Team and Enterprise plans. You can share any skill directly with a colleague or publish it to your org directory. When you update the skill, everyone gets the update automatically. This is the easiest path if you're on a paid plan. The catch: there's no approval workflow for org-wide sharing, so set a clear owner. Method 3: GitHub repo. This is what I use. Your entire Cowork workspace -- skills, plugins, claude.md, folder structure, project files -- lives in a private repo. Teammates clone it. When you push an update, they pull it. Everyone stays in sync. You get version history, access control, and a single source of truth. The GitHub method sounds technical, but it's really just two steps: clone the repo, point Cowork at the folder. I walk through the whole thing in the video, including how to use .gitignore to keep personal files (like your morning briefing) out of the shared repo. This works for Cowork, Claude Code, and Open Codex. The infrastructure is the same. Full video linked below. If you've found a different approach that works for your team, I want to hear about it. Comment or reply and let's figure out the best practices together.

JJ Englert

16,176 görüntüleme • 3 ay önce

I built a mobile app to check Paddle revenue (because they don't have one): 👉 - Use your Paddle API key (read-only and scoped) - Live data with beautiful and useful graphs built with native Swift UI. - Multi-account supported, unified revenue metrics. - Data stay on device, no server (api requests are sent directly from your phone) - Home widgets - I made it free to download on App Store (once it's approved) - Buy the source code for $19 and customize it however you want (save 5hrs of prompting if you try to do it yourself). Some interesting facts about this side project: - I vibe coded with 100% claude code remotely on my Mac Mini (with my AI assistant setup) in less than 24 hours. - I have read 0 line of code in this project and never opened Xcode myself. - My AI assistant designed the app with GPT Image 2, built the app with Swift UI, test it on simulator (via screenshots), send the test build to TestFlight for me to test, and invited me to the app store connect account so I can test on my phone, then the AI submitted the app to App Store and currently waiting for approval. - For the website, I ask it to come up with a domain name, I bought it via manually and give it access via Cloudflare API, the AI design and create a static website with GitHub, test it with lighthouse CLI, deploy via GitHub pages, config the domain DNS, deploy the website. - Then I sign up an account with Polar payment, create an API key and ask the AI to setup a store, add payment, link with the account, and add the payment to the website. The entire process happened in the last 24 hours with me only talking to the AI via Telegram. This is such a fun side project not only to create an app that I wish exists, but also to push the limit of what I can use AI for, and so far I'm very impressed. I'll create so much more apps! It feels like I have unlocked a super power.

Tony Dinh

43,787 görüntüleme • 2 ay önce

Toyota had a single access key sitting in a public GitHub repo. Nobody caught it for years. By the time it was found in 2022, customer data belonging to hundreds of thousands of people had been exposed the entire time. That’s not a hypothetical. That’s one hardcoded secret, forgotten in a repo, doing quiet damage for years. It’s called Infisical, and it exists because “just put it in a .env file” is how almost every credential leak starts. → Centralizes every API key, secret, and cert across dev, staging, and prod, with full versioning and point-in-time rollback → Scans 140+ secret types across your files, directories, and entire git history, the same kind of scanning that catches leaks like Toyota’s before they sit exposed for years → Agent Vault brokers your AI agents’ access to external APIs: the agent only ever sees a placeholder, the real secret gets injected at a proxy layer it never touches, so a prompt-injected agent can’t leak what it was never given → Honey tokens plant decoy credentials next to your real ones, so the second an attacker touches a fake key, your team gets an alert instead of a breach report → Full audit trail on every credential your team and your AI tools use, plus a private PKI to issue and manage certificates without a third-party CA GitGuardian tracked over 28 million new secrets leaked on public GitHub in 2025 alone. Most companies still find out the same way Toyota did: too late, by accident, years after the fact. MIT License (core). 12,700+ GitHub stars. Self-host free, unlimited users.

Harman

29,372 görüntüleme • 20 gün önce

CSS Trick 🤙 You can create these tab bar controls by using :has() to count the number of tabs ⭐️ .tabs:has(input:nth-of-type(3)){--count: 3;} .tabs:has(:checked:nth-of-type(3)){--active: 200%;} .tabs::after{ translate:var(--active) 0;} Let's break it down in this ! 📼 Couple of CSS :has() tricks here combined with custom properties 😎 First things first, lay out the tabs using display: grid. This gives you a way to create equal-width tabs 🙏 .tabs { display: grid; grid-auto-flow: column; } Then you use :has() to count the number of tabs and store that in a custom property 🤓 .tabs:has(input:nth-of-type(3)) { --count: 3; } .tabs:has(input:nth-of-type(4)) { --count: 4; } Using the cascade, the last valid :has() gives you the number of tabs 🫶 Using the tab count, you can size the tab indicator. For the tab indicator, use the tabs pseudoelement: .tabs::after { content: ""; position: absolute; height: 100%; width: calc(100% / var(--count)); } See how you can use --count to determine its size 📏 Next, use :has() to determine which tab is active or :checked with input [type=radio] .tabs:has(:checked:nth-of-type(2)) { --active: 1; } .tabs:has(:checked:nth-of-type(3)) { --active: 2; } You can use a zero-indexed translation here. If the second input is :checked, set --active: 1, then translate the pseudoelement on the tabs to that position 👉 .tabs::after { translate: calc(var(--active, 0) * 100%) 0; } Or you could set active to the translation: .tabs:has(:checked:nth-of-type(2)) { --active: 100%; } Setting the custom property allows you to use the index elsewhere if you need it 🤙 The final piece is using mix-blend-mode 👀 The tabs have a black background-color, the pseudoelement is white, and the label text is white. When you use mix-blend-mode: difference on the pseudoelement it will give this effect that the text transitions from white to black sliding across 😎 .tabs::after { color: hsl(0 0% 100%); mix-blend-mode: difference; } You can totally mix up the colors here though and go with a different effect. The mechanics of how you can use CSS :has() is the main point here 🙏 As always, any questions, suggestions, etc. let me know CodePen.IO link below! 👇 (There's even a Tailwind CSS play for this one too 👀)

jhey ʕ•ᴥ•ʔ

70,730 görüntüleme • 2 yıl önce

CSS Tip! 💪 You can create these tab controls with CSS :has() + radio buttons ✨ .tabs:has(input:nth-of-type(3)) { --count: 3; } .tabs:has(:checked:nth-of-type(3)) { --active: 2; } .tabs::after { translate: calc(var(--active, 0) * 100%) 0; width: calc(100% / var(--count)); } Two CSS :has() tricks here combined with a rendering trick 🤙 The tab control is a container using display: grid. You can use :has() to count the number of tabs in the container: .tabs:has(input:nth-of-type(3)) { --count: 3; } .tabs:has(input:nth-of-type(4)) { --count: 4; } Using the cascade, the last valid :has() gives you the number of tabs 🫶 Once you know the number of tabs, you know how to size the indicator: .tabs::after { content: ""; position: absolute; height: 100%; width: calc(100% / var(--count)); } It's a pseudoelement that uses --count to determine its size 📏 The next :has() trick is determining which tab is active or :checked as it's an input [type=radio] .tabs:has(:checked:nth-of-type(2)) { --active: 1; } .tabs:has(:checked:nth-of-type(3)) { --active: 2; } You can use a zero-indexed translation here. If the second input is :checked, set --active: 1, then translate the pseudoelement on the tabs to that position 👉 .tabs::after { translate: calc(var(--active, 0) * 100%) 0; } The last rendering trick is using mix-blend-mode 👀 The tabs have a black background-color, the pseudoelement is white, and the label text is white. When you use mix-blend-mode: difference on the pseudoelement it will give this effect that the text transitions from white to black sliding across 😎 .tabs::after { color: hsl(0 0% 100%); mix-blend-mode: difference; } You can totally mix up the colors here though and go with a different effect. The mechanics of how you can use CSS :has() is the main point here 🙏 As always, any questions, suggestions, etc. let me know CodePen.IO link below! 👇 (There's even a Tailwind CSS play for this one too 👀)

jhey ʕ•ᴥ•ʔ

437,533 görüntüleme • 2 yıl önce