Skip to main content
RapidDev - Software Development Agency
lovable-integrationsEdge Function Integration

How to Integrate Lovable with Skillshare

Integrate Skillshare with Lovable by creating an Edge Function that calls Skillshare's affiliate or partner API using credentials stored in Cloud → Secrets. You can build creative learning hubs, class recommendation widgets, and referral tracking dashboards. Skillshare's public API access is limited — the main integration path is through their affiliate program or a formal partner relationship for class catalog and enrollment data.

What you'll learn

  • How Skillshare's affiliate program works and how to obtain affiliate tracking credentials
  • How to store Skillshare affiliate tokens in Lovable's Cloud → Secrets
  • How to build an Edge Function that generates Skillshare referral links and fetches class metadata
  • How to create a creative learning hub with Skillshare class recommendations in Lovable
  • How to track referral clicks and conversions in your Supabase database
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Intermediate15 min read40 minutesEducationMarch 2026RapidDev Engineering Team
TL;DR

Integrate Skillshare with Lovable by creating an Edge Function that calls Skillshare's affiliate or partner API using credentials stored in Cloud → Secrets. You can build creative learning hubs, class recommendation widgets, and referral tracking dashboards. Skillshare's public API access is limited — the main integration path is through their affiliate program or a formal partner relationship for class catalog and enrollment data.

Build creative learning hubs and referral-tracked class recommendations with Skillshare

Skillshare is one of the leading platforms for creative skill development, with over 30,000 classes in illustration, graphic design, photography, film, animation, writing, and business. Unlike academic platforms, Skillshare focuses on project-based learning — each class ends with a student project — making it popular with creators, freelancers, and creative professionals seeking practical skills.

Skillshare's public API access is limited compared to enterprise LMS platforms. The primary integration path for most developers is through the Skillshare affiliate program, which provides affiliate tracking links, class metadata access, and commission tracking for new member referrals. If you are building an app for creative professionals that recommends relevant Skillshare classes and earns a commission on new subscriptions, the affiliate API is the right approach. For deeper integration — accessing enrollment data, user progress, or organizational billing — you need a formal Skillshare for Business partnership, which requires direct contact with Skillshare's enterprise team.

In Lovable, the integration pattern is an Edge Function that accepts class search queries or class IDs from your frontend, calls the Skillshare affiliate API or class catalog endpoint server-side, and returns class data along with affiliate-tagged URLs. Your React components display the class recommendations and link users to Skillshare with your affiliate tracking embedded. All referral click and conversion data is stored in your Supabase database for reporting.

Integration method

Edge Function Integration

Skillshare's API access is primarily through their affiliate program (for class recommendations and referral links) or a formal platform partner agreement (for deeper enrollment data). All API calls are proxied through a Deno Edge Function with affiliate tokens or partner credentials stored in Cloud → Secrets. For most Lovable integrations, the affiliate tracking approach is the most accessible path.

Prerequisites

  • A Lovable account with at least one project created and deployed
  • A Skillshare affiliate account (apply at skillshare.com/affiliates — free to join, approval usually within a few days)
  • Your Skillshare affiliate tracking ID from the affiliate dashboard
  • Understanding that deeper API access (enrollment data, user progress) requires a Skillshare for Business partnership
  • Optional: a Skillshare premium account to test class URLs and verify affiliate links work correctly

Step-by-step guide

1

Join the Skillshare affiliate program and get your tracking credentials

The most accessible way to integrate Skillshare into a Lovable app is through the affiliate program. Skillshare's affiliate program pays a commission for new Skillshare memberships that originate from your app's referral links. To join, go to skillshare.com/affiliates and click 'Apply Now'. Fill in your website or app details. The approval process typically takes 2-5 business days. Once approved, you will receive access to the affiliate dashboard where you can find: - Your affiliate tracking ID (used to create tracked URLs) - Deep link generator tool for creating class-specific affiliate links - Reporting dashboard showing clicks, sign-ups, and commissions Skillshare affiliate links follow this pattern: https://www.skillshare.com/en/classes/{class-slug}/{class-id}?via={yourAffiliateId}. You can also use Skillshare's Impact affiliate platform (impact.com) depending on how you are set up. For the affiliate tracking ID, look in your affiliate dashboard under Account or Tracking. It may be shown as a 'via' parameter value, an 'ambassador' ID, or similar depending on Skillshare's current affiliate platform setup. Note: If you need deeper API access beyond affiliate links — such as class catalog search by keyword, class metadata fetching, or enrollment data — contact Skillshare's business development team about API access. Some class metadata (title, description, teacher name, thumbnail) is accessible through Skillshare's oEmbed-compatible endpoints for linked URLs.

Pro tip: Even before API access, you can build a working Skillshare integration by manually curating a list of Skillshare class URLs and storing their metadata in your Supabase database. The affiliate link construction works on any Skillshare URL — you do not need an API to add your tracking ID.

Expected result: You have a Skillshare affiliate account with a tracking ID. You can generate affiliate-tracked URLs for any Skillshare class. You are ready to store your affiliate ID in Lovable's Cloud → Secrets.

2

Store Skillshare credentials in Cloud → Secrets

Store your Skillshare affiliate tracking ID and any API credentials in Lovable's Cloud → Secrets panel. Even though an affiliate ID is semi-public (it appears in URLs), storing it as a secret keeps it out of your source code and allows you to change it without code deployments. In Lovable, click the '+' icon next to the Preview label to open the Cloud panel. Click the Secrets tab. Add: - Name: SKILLSHARE_AFFILIATE_ID — Value: your affiliate tracking ID (the value that goes in the via= or ambassador= parameter in Skillshare URLs) If you have obtained Skillshare Partner API credentials (for deeper catalog or enrollment access), also add: - Name: SKILLSHARE_API_KEY — Value: your partner API key - Name: SKILLSHARE_API_SECRET — Value: your partner API secret (if applicable) For affiliate-only integrations, just the SKILLSHARE_AFFILIATE_ID is sufficient. The Edge Function uses this to append your tracking ID to all Skillshare URLs it generates. Your affiliate ID is the core business value of this integration — it is what ensures your app receives commission credit for new Skillshare subscriptions. Storing it in Cloud → Secrets means you can update it without a code change, which is useful when switching affiliate platforms.

Pro tip: After adding your affiliate ID to Cloud → Secrets, test a Skillshare link by constructing it manually: https://www.skillshare.com/en/classes/any-class-name/12345?via=YOUR_AFFILIATE_ID. Click it and verify it opens Skillshare with your affiliate tracking active. Check your affiliate dashboard after a few minutes to confirm the click was recorded.

Expected result: SKILLSHARE_AFFILIATE_ID is stored in Cloud → Secrets. The Edge Function will append this tracking ID to all Skillshare URLs it generates.

3

Create the Skillshare class metadata Edge Function

Build an Edge Function that fetches Skillshare class metadata and generates affiliate-tagged URLs. Since Skillshare's public API is limited, this function works in two modes: (1) looking up metadata for a specific class URL using oEmbed or link preview techniques, and (2) for partner API users, searching the class catalog by keyword. Paste this prompt into Lovable's chat to generate the Edge Function: 'Create a Supabase Edge Function at supabase/functions/skillshare-api/index.ts. The function reads SKILLSHARE_AFFILIATE_ID from Deno.env. Accept POST requests with body { action: string, data: object }. Support two actions: (1) action: create_affiliate_link — takes data.classUrl and returns the URL with ?via={affiliateId} appended, along with any available class metadata. (2) action: fetch_class_metadata — takes data.classUrl and fetches the Skillshare oEmbed endpoint at https://www.skillshare.com/api/oembed?url={encodedUrl}&format=json to get title, thumbnail, author_name. Return the metadata plus an affiliate_url. Include CORS headers.' Skillshare supports oEmbed for their class URLs, which provides: title (class name), author_name (teacher name), thumbnail_url, and html (embed code for the class player). This is the most reliable way to fetch class metadata without a private API key. For apps that maintain a curated list of Skillshare classes in Supabase, consider pre-fetching the oEmbed data for each class URL when it is added to the database and storing it — this eliminates per-request oEmbed lookups and makes your app faster.

Lovable Prompt

Create a Supabase Edge Function at supabase/functions/skillshare-api/index.ts. Read SKILLSHARE_AFFILIATE_ID from Deno.env. Accept POST requests with body { action: 'create_affiliate_link' | 'fetch_class_metadata', data: { classUrl: string } }. For create_affiliate_link: append ?via={affiliateId} to the class URL and return it. For fetch_class_metadata: call Skillshare's oEmbed endpoint https://www.skillshare.com/api/oembed?url={encoded_classUrl}&format=json and return the response plus the affiliate URL. Include CORS headers.

Paste this in Lovable chat

supabase/functions/skillshare-api/index.ts
1// supabase/functions/skillshare-api/index.ts
2const corsHeaders = {
3 'Access-Control-Allow-Origin': '*',
4 'Access-Control-Allow-Headers': 'authorization, x-client-info, apikey, content-type',
5};
6
7function createAffiliateUrl(classUrl: string, affiliateId: string): string {
8 const url = new URL(classUrl);
9 url.searchParams.set('via', affiliateId);
10 return url.toString();
11}
12
13Deno.serve(async (req) => {
14 if (req.method === 'OPTIONS') {
15 return new Response('ok', { headers: corsHeaders });
16 }
17
18 try {
19 const affiliateId = Deno.env.get('SKILLSHARE_AFFILIATE_ID');
20 if (!affiliateId) {
21 return new Response(
22 JSON.stringify({ error: 'SKILLSHARE_AFFILIATE_ID not configured' }),
23 { status: 500, headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
24 );
25 }
26
27 const { action, data } = await req.json();
28
29 if (action === 'create_affiliate_link') {
30 const affiliateUrl = createAffiliateUrl(data.classUrl, affiliateId);
31 return new Response(
32 JSON.stringify({ affiliate_url: affiliateUrl }),
33 { headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
34 );
35 }
36
37 if (action === 'fetch_class_metadata') {
38 const oEmbedUrl = `https://www.skillshare.com/api/oembed?url=${encodeURIComponent(data.classUrl)}&format=json`;
39
40 const response = await fetch(oEmbedUrl, {
41 headers: { 'User-Agent': 'Mozilla/5.0 (compatible; LovableApp/1.0)' },
42 });
43
44 if (!response.ok) {
45 const affiliateUrl = createAffiliateUrl(data.classUrl, affiliateId);
46 return new Response(
47 JSON.stringify({ error: 'Could not fetch class metadata', affiliate_url: affiliateUrl }),
48 { status: 200, headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
49 );
50 }
51
52 const metadata = await response.json();
53 const affiliateUrl = createAffiliateUrl(data.classUrl, affiliateId);
54
55 return new Response(
56 JSON.stringify({ ...metadata, affiliate_url: affiliateUrl }),
57 { headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
58 );
59 }
60
61 return new Response(
62 JSON.stringify({ error: 'Unknown action' }),
63 { status: 400, headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
64 );
65 } catch (error) {
66 return new Response(
67 JSON.stringify({ error: error.message }),
68 { status: 500, headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
69 );
70 }
71});

Pro tip: Cache fetched class metadata in your Supabase database. Add a skillshare_classes table with: id, class_url, title, teacher_name, thumbnail_url, affiliate_url, description, and fetched_at. Pre-populate it with your curated classes and serve metadata from Supabase rather than calling the oEmbed endpoint every time a user visits the page.

Expected result: The skillshare-api Edge Function is deployed. It successfully generates affiliate-tagged URLs and fetches class metadata via oEmbed. Class titles, teacher names, and thumbnails are returned to the frontend.

4

Build the creative class recommendation UI

With the Edge Function ready, build the React components that display Skillshare class recommendations with affiliate tracking. Paste this prompt into Lovable's chat: 'Create a SkillshareRecommendations React component. Fetch a curated list of Skillshare classes from a Supabase table called skillshare_classes (columns: id, title, teacher_name, thumbnail_url, affiliate_url, category, description). Group classes by category and display them in horizontal scrolling rows per category (like a Netflix-style layout). Each class card shows: thumbnail, title, teacher name, and a Watch on Skillshare button that opens the affiliate URL in a new tab. When the button is clicked, log a click event to a Supabase affiliate_clicks table with class_id, user_id (if logged in), and clicked_at. Show the total click count next to each class for social proof.' For the Supabase skillshare_classes table, include a featured boolean column. Show featured classes prominently (e.g., as larger hero cards) and standard classes in the scrolling grid below. For affiliate click tracking, the clicks table lets you measure which classes drive the most engagement and refine your curation over time. Combine this with Skillshare's affiliate dashboard data to see the complete funnel: clicks from your app → Skillshare visits → subscription conversions. For complex affiliate tracking setups with UTM parameters, referral attribution, or multi-step conversion funnels across a community platform, RapidDev's team can help design the tracking architecture.

Lovable Prompt

Create a SkillshareRecommendations component. Fetch classes from a Supabase skillshare_classes table grouped by category. Display as Netflix-style horizontal rows with category headers. Each card shows thumbnail, title, teacher, and a Watch on Skillshare button with the affiliate URL. Clicking a card logs to a Supabase affiliate_clicks table. Show click count on each card. Add an empty state prompting admin to add classes.

Paste this in Lovable chat

Pro tip: Use rel='noopener noreferrer' on all Skillshare outbound links (target='_blank'). This is both a security best practice and required by most affiliate program terms to prevent tab-nabbing vulnerabilities.

Expected result: A Netflix-style class recommendation grid appears showing Skillshare classes organized by category. Clicking the Watch button opens Skillshare with your affiliate ID in the URL. Click events are logged to Supabase.

5

Add affiliate performance reporting

Complete the integration with a reporting dashboard that shows your affiliate program performance — how many clicks your app is generating and which classes drive the most engagement. Paste this prompt into Lovable's chat: 'Create an affiliate performance dashboard page. Query the Supabase affiliate_clicks table to show: total clicks this month, clicks by class (top 10 table with class title and click count), clicks over time (line chart for the last 30 days), and a comparison vs last month. Add a note explaining that actual conversion and commission data comes from the Skillshare affiliate dashboard (with a link). Also show the curated class inventory with an Add Class button that: takes a Skillshare URL, calls the skillshare-api Edge Function with action fetch_class_metadata, and saves the metadata to skillshare_classes.' The gap between your Lovable click data and actual Skillshare conversions is normal — Skillshare's affiliate dashboard shows what happened after the click (sign-ups, subscriptions, commissions). Your Supabase data shows what happened before the click (which pages and features drove traffic to Skillshare). For the class inventory management, the Add Class flow — paste URL → fetch metadata → save to Supabase — gives you a simple CMS for your class recommendations without building a full admin panel. Consider adding a sort_order column to skillshare_classes to control the display order of classes within each category.

Lovable Prompt

Create an Admin Learning page with: (1) Affiliate stats: total clicks today/this week/this month from Supabase affiliate_clicks table, and a clicks-over-time chart for the last 30 days. (2) Class manager: a table of all Skillshare classes in skillshare_classes with edit/delete controls. An Add Class form that takes a Skillshare URL, calls skillshare-api Edge Function to fetch metadata, and saves it to the database. All admin features protected by a Supabase RLS policy checking for admin role.

Paste this in Lovable chat

Pro tip: Add Google UTM parameters to your affiliate URLs for more detailed tracking in Google Analytics: add utm_source=your-app&utm_medium=affiliate&utm_campaign=skillshare-recommendations to each affiliate URL alongside the via= parameter.

Expected result: An admin dashboard shows affiliate click statistics and a class management interface. Admins can add new Skillshare classes by pasting URLs. The metadata is fetched automatically and the class appears in the recommendation grid immediately after saving.

Common use cases

Creative skills recommendation hub

Build a learning resources page that recommends relevant Skillshare classes based on user interests or profession, with affiliate-tracked enrollment links that generate commissions on new Skillshare subscriptions.

Lovable Prompt

Create a creative learning hub page. Call the skillshare-api Edge Function to fetch Skillshare classes by category (design, photography, illustration). Display classes in a grid with thumbnail, title, teacher name, student count, and duration. Each class card links to Skillshare with my affiliate tag embedded in the URL. When a user clicks a class link, log the click to a Supabase affiliate_clicks table with: class_id, class_title, user_id, clicked_at, and the affiliate URL. Show a referral stats widget showing this month's clicks.

Copy this prompt to try it in Lovable

Portfolio tool with recommended learning paths

Build a portfolio or skills assessment tool where users identify skill gaps and get personalized Skillshare class recommendations to address them — with affiliate commission tracking on any subscriptions that result.

Lovable Prompt

Add a Learning Recommendations section to my portfolio app. When a user marks a skill as wanting to improve (e.g., 'Typography', 'Color Theory', 'Motion Graphics'), call the skillshare-api Edge Function to search for relevant classes. Show 3 recommended Skillshare classes per skill gap with class title, teacher, duration, and a Learn on Skillshare button with affiliate link. Store the recommendation-to-click conversion in Supabase to track which skill gaps drive the most Skillshare referrals.

Copy this prompt to try it in Lovable

Freelancer community learning board

Build a community feature in a freelancer platform where members can share Skillshare classes they have taken, rate them, and recommend them to peers — with affiliate tracking on all outbound links.

Lovable Prompt

Add a Community Picks section to my freelancer platform. Members can share a Skillshare class by pasting the class URL. The app calls the skillshare-api Edge Function to fetch the class metadata (title, teacher, thumbnail, description). Save it to a Supabase community_picks table with the member's user_id, a short review they write, and the affiliate-tagged class URL. Display community picks in a feed sorted by upvotes.

Copy this prompt to try it in Lovable

Troubleshooting

oEmbed requests return 404 or empty responses for valid Skillshare class URLs

Cause: Skillshare's oEmbed endpoint has inconsistent coverage — not all class URLs return oEmbed metadata, particularly for newer classes or when the URL format has changed.

Solution: Store class metadata manually in your Supabase database for classes that do not return oEmbed data. Use Skillshare's class page title and teacher information as visible on the website. Pre-populate your skillshare_classes table with metadata copied from the class page rather than relying entirely on the oEmbed API. This gives you full control over the displayed content.

Affiliate tracking clicks are not showing up in the Skillshare affiliate dashboard

Cause: The affiliate ID is not being correctly appended to the URL, the affiliate account is not active/approved, or the click occurred from a bot or crawler that Skillshare's system filters out.

Solution: Test by clicking an affiliate link from your deployed app yourself and checking the Skillshare affiliate dashboard after 15-30 minutes for the click to appear. Verify the URL contains your affiliate ID as a query parameter (?via=YOUR_ID). Check that your Skillshare affiliate account is approved and active — pending approval means clicks are tracked but may not show in the dashboard. Also check if your affiliate is tracked through Impact.com rather than Skillshare's own dashboard.

SKILLSHARE_AFFILIATE_ID secret returns undefined in the Edge Function

Cause: The secret was not saved correctly in Cloud → Secrets, or there is a name mismatch between the secret name and the Deno.env.get() call.

Solution: Open Cloud → Secrets and verify the secret name is exactly SKILLSHARE_AFFILIATE_ID with no extra spaces. Check the Edge Function code to confirm it uses Deno.env.get('SKILLSHARE_AFFILIATE_ID') with the exact same capitalization and spelling. After updating a secret, the Edge Function picks up the new value on the next cold start — redeploy by making a minor code change if you do not see the update take effect.

Best practices

  • Store Skillshare class metadata in Supabase rather than fetching it live from oEmbed on every page load — this makes your app faster and more resilient to Skillshare API availability
  • Always use rel='noopener noreferrer' on affiliate links that open in new tabs — this is both a security best practice and commonly required by affiliate program terms
  • Add UTM parameters alongside your affiliate ID to get more granular tracking in Google Analytics about which sections of your app drive the most Skillshare referrals
  • Test your affiliate links from a private browser window to avoid cookie-based attribution conflicts with your own Skillshare account
  • Build a simple admin interface for managing your curated class list — a paste-URL-and-save flow prevents the need to manually edit database records
  • Track affiliate clicks in your own Supabase database in addition to relying on Skillshare's affiliate dashboard — this gives you click data for your own analytics without dependency on Skillshare's reporting
  • Refresh class metadata in your Supabase database periodically (e.g., monthly) since Skillshare class titles, thumbnails, and teacher names occasionally change

Alternatives

Frequently asked questions

Does Skillshare have a public REST API available to all developers?

No. Skillshare does not offer a public REST API for general developer access. The main integration paths are: (1) the affiliate program for class recommendations and referral tracking, which is free to join, and (2) a formal Skillshare for Business or platform partner agreement for deeper enrollment and catalog data access. Most Lovable integrations use the affiliate approach.

How much commission does the Skillshare affiliate program pay?

Skillshare's affiliate program pays a flat fee for each new Skillshare membership that originates from your referral link. The commission structure and amounts are detailed in your affiliate dashboard after joining. Rates change over time, so check the current terms in your affiliate account. The program is managed through Impact.com (formerly Impact Radius) for most affiliates.

Can I use Skillshare class thumbnails and titles in my app without permission?

As an affiliate, you are generally permitted to use Skillshare's class titles and thumbnails for promotional purposes as part of the affiliate program. Review the specific terms in your Skillshare affiliate agreement. For non-affiliate uses, Skillshare's standard copyright terms apply — reproducing class content without permission is not allowed, but linking to classes with attribution is generally acceptable.

What is the difference between Skillshare's affiliate program and Skillshare for Business?

The affiliate program is for creators and developers who want to earn commissions by recommending Skillshare to new subscribers — you refer people to Skillshare and earn money when they sign up. Skillshare for Business is an enterprise product for organizations that want to provide Skillshare access to their employees, with a company-wide subscription, usage reporting, and a curated content library. API access for tracking team progress is typically part of the Skillshare for Business offering.

Can I embed Skillshare class videos directly in my Lovable app?

Embedding full Skillshare class videos in third-party apps is not permitted under Skillshare's terms of service. You can embed class preview clips through oEmbed (which provides the embed HTML via the oEmbed endpoint), but full class content is only accessible to Skillshare Premium subscribers on Skillshare's own platform. The recommended approach is to link users to Skillshare with your affiliate tag rather than embedding content.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.